70 lines
1.8 KiB
Bash
Executable File
70 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -ex
|
|
|
|
mount -t proc none /proc
|
|
mount -t sysfs none /sys
|
|
mount -t devtmpfs none /dev || echo possibly already mounted
|
|
mkdir -p /dev/pts
|
|
mount -t devpts devpts /dev/pts
|
|
mount -t tmpfs tmpfs /tmp
|
|
|
|
. /set-job-env-vars.sh
|
|
|
|
[ -z "$BM_KERNEL_MODULES" ] || echo -n $BM_KERNEL_MODULES | xargs -d, -n1 /usr/sbin/modprobe
|
|
|
|
# Store Mesa's disk cache under /tmp, rather than sending it out over NFS.
|
|
export XDG_CACHE_HOME=/tmp
|
|
|
|
echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
|
|
|
# Not all DUTs have network
|
|
sntp -sS pool.ntp.org || true
|
|
|
|
# Start a little daemon to capture the first devcoredump we encounter. (They
|
|
# expire after 5 minutes, so we poll for them).
|
|
./capture-devcoredump.sh &
|
|
|
|
# If we want Xorg to be running for the test, then we start it up before the
|
|
# BARE_METAL_TEST_SCRIPT because we need to use xinit to start X (otherwise
|
|
# without using -displayfd you can race with Xorg's startup), but xinit will eat
|
|
# your client's return code
|
|
if [ -n "$BM_START_XORG" ]; then
|
|
echo "touch /xorg-started; sleep 100000" > /xorg-script
|
|
env \
|
|
LD_LIBRARY_PATH=/install/lib/ \
|
|
LIBGL_DRIVERS_PATH=/install/lib/dri/ \
|
|
xinit /bin/sh /xorg-script -- /usr/bin/Xorg -noreset -dpms -logfile /Xorg.0.log &
|
|
|
|
# Wait for xorg to be ready for connections.
|
|
for i in 1 2 3 4 5; do
|
|
if [ -e /xorg-started ]; then
|
|
break
|
|
fi
|
|
sleep 5
|
|
done
|
|
export DISPLAY=:0
|
|
fi
|
|
|
|
if sh $BARE_METAL_TEST_SCRIPT; then
|
|
OK=1
|
|
else
|
|
OK=0
|
|
fi
|
|
|
|
# upload artifacts via webdav
|
|
WEBDAV=$(cat /proc/cmdline | tr " " "\n" | grep webdav | cut -d '=' -f 2 || true)
|
|
if [ -n "$WEBDAV" ]; then
|
|
find /results -type f -exec curl -T {} $WEBDAV/{} \;
|
|
fi
|
|
|
|
if [ $OK -eq 1 ]; then
|
|
echo "bare-metal result: pass"
|
|
else
|
|
echo "bare-metal result: fail"
|
|
fi
|
|
|
|
# Wait until the job would have timed out anyway, so we don't spew a "init
|
|
# exited" panic.
|
|
sleep 6000
|