blob: 836b38353b79ac5dc90fd7c4dcf45538532c822b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#!/usr/bin/bash
set -e
DIRNAME="$(dirname "$0")"
IMAGE="$1"
WRAPPER="$2"
WRAPPER_ARGS="$3"
TEST_BUILD_DIR="$4"
VM_ENV="$5"
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 \
MUTTER_DEBUG=$MUTTER_DEBUG \
$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
SCRIPT="\
env $VIRTME_ENV $DIRNAME/run-kvm-test.sh \
\\\"$WRAPPER\\\" \\\"$WRAPPER_ARGS\\\" \
\\\"$TEST_RESULT_FILE\\\" \
$(printf "\"%s\" " "${@:6}")\
"
echo Running tests in virtual machine ...
virtme-run \
--memory=1024M \
--rw \
--pwd \
--kimg "$IMAGE" \
--script-sh "sh -c \"$SCRIPT\"" \
--qemu-opts -cpu host,pdcm=off -smp 2
VM_RESULT=$?
if [ $VM_RESULT != 0 ]; then
echo Virtual machine exited with a failure: $VM_RESULT
else
echo Virtual machine terminated.
fi
TEST_RESULT="$(cat "$TEST_RESULT_FILE")"
rm "$TEST_RESULT_FILE"
echo Test result exit status: $TEST_RESULT
exit "$TEST_RESULT"
|