diff options
author | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-10-26 16:08:46 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-10-26 16:48:58 +1100 |
commit | d8830fde02f498cf657fd3141370289173688970 (patch) | |
tree | 4b2db196606020f70e24734fa7bfc34e205d2b83 /test | |
parent | 5a76659c0c2322f7c70d634cc51779582d25174d (diff) | |
download | talos-skiboot-d8830fde02f498cf657fd3141370289173688970.tar.gz talos-skiboot-d8830fde02f498cf657fd3141370289173688970.zip |
Support PowerNV Qemu for running tests
We now run tests under both Mambo and QEMU PowerNV model.
Also added are scripts in opal-ci/ for building powernv model qemu.
Currently, this is not yet in upstream qemu, so we build from Ben's branch.
You can start using qemu along with/instead of Mambo by:
1) (cd ./opal-ci; sudo ./install-deps-qemu-powernv.sh; ./build-qemu-powernv.sh)
2) Pointing QEMU_PATH and QEMU_BINARY environment variables to appropriate
qemu binary with powernv model
When building qemu ourselves, we build a *specific* known good tag from
the open-power tree. This should ensure that into the future existing test
scripts should continue to function.
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.check | 9 | ||||
-rw-r--r-- | test/hello_world/Makefile.check | 11 | ||||
-rwxr-xr-x | test/hello_world/run_mambo_hello_world.sh (renamed from test/hello_world/run_hello_world.sh) | 0 | ||||
-rwxr-xr-x | test/hello_world/run_qemu_hello_world.sh | 45 | ||||
-rwxr-xr-x | test/run_mambo_boot_test.sh (renamed from test/run_boot_test.sh) | 0 | ||||
-rwxr-xr-x | test/run_qemu_boot_test.sh | 60 |
6 files changed, 118 insertions, 7 deletions
diff --git a/test/Makefile.check b/test/Makefile.check index de23bfba..429e3809 100644 --- a/test/Makefile.check +++ b/test/Makefile.check @@ -1,12 +1,15 @@ -check: boot-check +check: boot-check qemu-boot-check boot-check: skiboot.lid - ./test/run_boot_test.sh + ./test/run_mambo_boot_test.sh + +qemu-boot-check: skiboot.lid + ./test/run_qemu_boot_test.sh OP_BUILD_BOOT_CHECK=op-build-v1.0 op-build-v1.1 op-build-v1.2 op-build-v1.2.1 boot-check-%: skiboot.lid skiboot.map - SKIBOOT_MEM_DUMP=skiboot-$(@:boot-check-%=%).dump SKIBOOT_ZIMAGE=`pwd`/opal-ci/images/$(@:boot-check-%=%)/zImage.epapr ./test/run_boot_test.sh + SKIBOOT_MEM_DUMP=skiboot-$(@:boot-check-%=%).dump SKIBOOT_ZIMAGE=`pwd`/opal-ci/images/$(@:boot-check-%=%)/zImage.epapr ./test/run_mambo_boot_test.sh boot-tests: boot-check $(OP_BUILD_BOOT_CHECK:%=boot-check-%) diff --git a/test/hello_world/Makefile.check b/test/hello_world/Makefile.check index 5b330ed3..41913035 100644 --- a/test/hello_world/Makefile.check +++ b/test/hello_world/Makefile.check @@ -1,11 +1,14 @@ HELLO_WORLD_TEST := test/hello_world/hello_kernel/hello_kernel -check: $(HELLO_WORLD_TEST:%=%-check) +check: $(HELLO_WORLD_TEST:%=%-check-mambo) $(HELLO_WORLD_TEST:%=%-check-qemu) -boot-tests: $(HELLO_WORLD_TEST:%=%-check) +boot-tests: $(HELLO_WORLD_TEST:%=%-check-mambo) $(HELLO_WORLD_TEST:%=%-check-qemu) -$(HELLO_WORLD_TEST:%=%-check) : %-check: % skiboot.lid - ./test/hello_world/run_hello_world.sh +$(HELLO_WORLD_TEST:%=%-check-mambo) : %-check-mambo: % skiboot.lid + ./test/hello_world/run_mambo_hello_world.sh + +$(HELLO_WORLD_TEST:%=%-check-qemu) : %-check-qemu: % skiboot.lid + ./test/hello_world/run_qemu_hello_world.sh test/hello_world/hello_kernel/hello_kernel.o: test/hello_world/hello_kernel/hello_kernel.S test/hello_world/hello_kernel/hello_kernel.ld $(call Q,CC, $(CC) -m64 -c -MMD -o $@ $< ,$@) diff --git a/test/hello_world/run_hello_world.sh b/test/hello_world/run_mambo_hello_world.sh index e6f4d860..e6f4d860 100755 --- a/test/hello_world/run_hello_world.sh +++ b/test/hello_world/run_mambo_hello_world.sh diff --git a/test/hello_world/run_qemu_hello_world.sh b/test/hello_world/run_qemu_hello_world.sh new file mode 100755 index 00000000..32921785 --- /dev/null +++ b/test/hello_world/run_qemu_hello_world.sh @@ -0,0 +1,45 @@ +#!/bin/bash + + +if [ -z "$QEMU_PATH" ]; then + QEMU_PATH=`pwd`/opal-ci/qemu/ppc64-softmmu/ +fi + +if [ -z "$QEMU_BINARY" ]; then + QEMU_BINARY="qemu-system-ppc64" +fi + +if [ ! -x "$QEMU_PATH/$QEMU_BINARY" ]; then + echo 'Could not find executable QEMU_BINARY. Skipping hello_world test'; + exit 0; +fi + +if [ -n "$KERNEL" ]; then + echo 'Please rebuild skiboot without KERNEL set. Skipping hello_world test'; + exit 0; +fi + +if [ ! `command -v expect` ]; then + echo 'Could not find expect binary. Skipping hello_world test'; + exit 0; +fi + + +export SKIBOOT_ZIMAGE=`pwd`/test/hello_world/hello_kernel/hello_kernel + + +( +cat <<EOF | expect +set timeout 30 +spawn $QEMU_PATH/$QEMU_BINARY -m 1G -M powernv -kernel $SKIBOOT_ZIMAGE -nographic +expect { +timeout { send_user "\nTimeout waiting for hello world\n"; exit 1 } +eof { send_user "\nUnexpected EOF\n;" exit 1 } +"Hello World!" +} +close +wait +exit 0 +EOF +) +exit 0; diff --git a/test/run_boot_test.sh b/test/run_mambo_boot_test.sh index 8ae7fdab..8ae7fdab 100755 --- a/test/run_boot_test.sh +++ b/test/run_mambo_boot_test.sh diff --git a/test/run_qemu_boot_test.sh b/test/run_qemu_boot_test.sh new file mode 100755 index 00000000..4809810f --- /dev/null +++ b/test/run_qemu_boot_test.sh @@ -0,0 +1,60 @@ +#!/bin/bash + + +if [ -z "$QEMU_PATH" ]; then + QEMU_PATH=`pwd`/opal-ci/qemu/ppc64-softmmu/ +fi + +if [ -z "$QEMU_BINARY" ]; then + QEMU_BINARY="qemu-system-ppc64" +fi + +if [ ! -x "$QEMU_PATH/$QEMU_BINARY" ]; then + echo 'Could not find executable QEMU_BINARY. Skipping hello_world test'; + exit 0; +fi + +if [ -n "$KERNEL" ]; then + echo 'Please rebuild skiboot without KERNEL set. Skipping hello_world test'; + exit 0; +fi + +if [ ! `command -v expect` ]; then + echo 'Could not find expect binary. Skipping hello_world test'; + exit 0; +fi + +if [ -z "$SKIBOOT_ZIMAGE" ]; then + export SKIBOOT_ZIMAGE=`pwd`/zImage.epapr +fi + +if [ ! -f "$SKIBOOT_ZIMAGE" ]; then + echo "No $SKIBOOT_ZIMAGE, skipping boot test"; + exit 0; +fi + +T=`mktemp --tmpdir skiboot_qemu_boot_test.XXXXXXXXXX` + +( cat <<EOF | expect +set timeout 600 +spawn $QEMU_PATH/$QEMU_BINARY -m 1G -M powernv -kernel $SKIBOOT_ZIMAGE -nographic +expect { +timeout { send_user "\nTimeout waiting for petitboot\n"; exit 1 } +eof { send_user "\nUnexpected EOF\n;" exit 1 } +"Welcome to Petitboot" +} +close +wait +exit 0 +EOF +) 2>&1 > $T +E=$? + +if [ $E -eq 0 ]; then + rm $T +else + echo "Boot Test FAILED. Results in $T"; +fi + +echo +exit $E; |