weston/.gitlab-ci/virtme-scripts/run-weston-tests.sh

40 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
# folders that are necessary to run Weston tests
mkdir -p /tmp/tests
mkdir -p /tmp/.X11-unix
chmod -R 0700 /tmp
# set environment variables to run Weston tests
export XDG_RUNTIME_DIR=/tmp/tests
export WESTON_TEST_SUITE_DRM_DEVICE=card0
export LIBSEAT_BACKEND=seatd
# ninja test depends on meson, and meson itself looks for its modules on folder
# $HOME/.local/lib/pythonX.Y/site-packages (the Python version may differ).
# virtme starts with HOME=/tmp/roothome, but as we installed meson on user root,
# meson can not find its modules. So we change the HOME env var to fix that.
export HOME=/root
export PATH=$HOME/.local/bin:$PATH
# start seatd and wait for its socket to be available before running the test
/usr/local/bin/seatd &
while ! [ -e /run/seatd.sock ]; do sleep 0.1; done
export ASAN_OPTIONS=detect_leaks=0,atexit=1
# run the tests and save the exit status
# we give ourselves a very generous timeout multiplier due to ASan overhead
meson test --no-rebuild --timeout-multiplier 4
TEST_RES=$?
# create a file to keep the result of this script:
# - 0 means the script succeeded
# - 1 means the tests failed, so the job itself should fail
TESTS_RES_PATH=$(pwd)/tests-res.txt
echo $TEST_RES > $TESTS_RES_PATH
# shutdown virtme
sync
poweroff -f