3 # Copyright (c) 2013 Kevin Wolf <kwolf@redhat.com>
5 # Permission is hereby granted, free of charge, to any person obtaining a copy
6 # of this software and associated documentation files (the "Software"), to deal
7 # in the Software without restriction, including without limitation the rights
8 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 # copies of the Software, and to permit persons to whom the Software is
10 # furnished to do so, subject to the following conditions:
12 # The above copyright notice and this permission notice shall be included in
13 # all copies or substantial portions of the Software.
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 QEMU
=${QEMU:-"../../qemu-system-x86_64"}
29 printf %b
"\n\n=== Running test case: $kernel $* ===\n\n" >> test.log
34 -device isa-debugcon
,chardev
=stdio \
35 -chardev file,path
=test.out
,id
=stdio \
36 -device isa-debug-exit
,iobase
=0xf4,iosize
=0x4 \
40 cat test.out
>> test.log
42 debugexit
=$
((ret
& 0x1))
45 if [ $debugexit != 1 ]; then
46 printf %b
"\e[31m ?? \e[0m $kernel $* (no debugexit used, exit code $ret)\n"
48 elif [ $ret != 0 ]; then
49 printf %b
"\e[31mFAIL\e[0m $kernel $* (exit code $ret)\n"
56 run_qemu mmap.elf
-m 1.1M
57 run_qemu mmap.elf
-m 2G
58 run_qemu mmap.elf
-m 4G
59 run_qemu mmap.elf
-m 8G
64 run_qemu modules.elf
-initrd module.txt
65 run_qemu modules.elf
-initrd "module.txt argument"
66 run_qemu modules.elf
-initrd "module.txt argument,,with,,commas"
67 run_qemu modules.elf
-initrd "module.txt,module.txt argument,module.txt"
71 for i
in $
(seq 1 9); do
72 run_qemu aout_kludge_
$i.bin
78 for t
in mmap modules aout_kludge
; do
84 if ! diff $t.out
test.log
> /dev
/null
2>&1; then
85 printf %b
"\e[31mFAIL\e[0m $t (output difference)\n"
86 diff -u $t.out
test.log
90 if [ $pass == 1 ]; then
91 printf %b
"\e[32mPASS\e[0m $t\n"