mutter/src/tests/kvm/virtme-run.sh
Jonas Ådahl 9966c8717b tests/kms: Run tests both using simple and atomic KMS
Two sanity checks to make sure the debug env vars still work are added
too.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2456>
2022-07-28 23:59:24 +00:00

45 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/bash
set -e
DIRNAME="$(dirname "$0")"
IMAGE="$1"
WRAPPER="$2"
WRAPPER_ARGS="$3"
TEST_EXECUTABLE="$4"
TEST_BUILD_DIR="$5"
VM_ENV="$6"
TEST_RESULT_FILE=$(mktemp -p "$TEST_BUILD_DIR" -t test-result-XXXXXX)
echo 1 > "$TEST_RESULT_FILE"
VIRTME_ENV="\
HOME=$HOME \
LD_LIBRARY_PATH=$LD_LIBRARY_PATH \
XDG_DATA_DIRS=$XDG_DATA_DIRS \
$VM_ENV \
"
if [ ! -v $MUTTER_DEBUG_FORCE_KMS_MODE ]; then
VIRTME_ENV="$VIRTME_ENV MUTTER_DEBUG_FORCE_KMS_MODE=$MUTTER_DEBUG_FORCE_KMS_MODE"
fi
if [[ "$(stat -c '%t:%T' -L /proc/$$/fd/0)" == "0:0" ]]; then
mkfifo $XDG_RUNTIME_DIR/fake-stdin.$$
exec 0<> $XDG_RUNTIME_DIR/fake-stdin.$$
rm -f $XDG_RUNTIME_DIR/fake-stdin.$$
fi
virtme-run \
--memory=256M \
--rw \
--pwd \
--kimg "$IMAGE" \
--script-sh "sh -c \"env $VIRTME_ENV $DIRNAME/run-kvm-test.sh \\\"$WRAPPER\\\" \\\"$WRAPPER_ARGS\\\" \\\"$TEST_EXECUTABLE\\\" \\\"$TEST_RESULT_FILE\\\"\"" \
--qemu-opts -cpu host,pdcm=off -smp 2
TEST_RESULT="$(cat "$TEST_RESULT_FILE")"
rm "$TEST_RESULT_FILE"
exit "$TEST_RESULT"