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:
parent
dbf2dce7aa
commit
49713c413a
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user