tests/multiboot: Test exit code for every qemu run

Testing the exit code only once after a whole group of tests has
completed is not enough, it catches errors only in the very last qemu
invocation. We need to have the check after each qemu run.

The logging and diff with the reference output is still done once per
group to keep things more managable. This is not a problem because the
log file accumulates the output of all runs.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Jack Schwartz <jack.schwartz@oracle.com>
This commit is contained in:
Kevin Wolf 2018-03-14 13:29:46 +01:00
parent dbf2dce7aa
commit 49713c413a

View File

@ -38,6 +38,17 @@ run_qemu() {
ret=$?
cat test.out >> test.log
debugexit=$((ret & 0x1))
ret=$((ret >> 1))
if [ $debugexit != 1 ]; then
printf %b "\e[31m ?? \e[0m $kernel $* (no debugexit used, exit code $ret)\n"
pass=0
elif [ $ret != 0 ]; then
printf %b "\e[31mFAIL\e[0m $kernel $* (exit code $ret)\n"
pass=0
fi
}
mmap() {
@ -61,19 +72,8 @@ make all
for t in mmap modules; do
echo > test.log
$t
debugexit=$((ret & 0x1))
ret=$((ret >> 1))
pass=1
if [ $debugexit != 1 ]; then
printf %b "\e[31m ?? \e[0m $t (no debugexit used, exit code $ret)\n"
pass=0
elif [ $ret != 0 ]; then
printf %b "\e[31mFAIL\e[0m $t (exit code $ret)\n"
pass=0
fi
$t
if ! diff $t.out test.log > /dev/null 2>&1; then
printf %b "\e[31mFAIL\e[0m $t (output difference)\n"