diff options
-rw-r--r-- | .travis.yml | 1 | ||||
-rwxr-xr-x | opal-ci/fetch-debian-jessie-installer.sh | 3 | ||||
-rw-r--r-- | test/Makefile.check | 5 | ||||
-rwxr-xr-x | test/run_qemu-jessie-debian-installer_boot_test.sh | 67 |
4 files changed, 75 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml index 1f0d7b8..1640097 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ env: script: - (cd opal-ci; ./build-qemu-powernv.sh) + - ./opal-ci/fetch-debian-jessie-installer.sh - make -j4 all check ; (make clean; cd external/gard && make) ; (make clean; cd external/pflash && make) - make clean && SKIBOOT_GCOV=1 make && SKIBOOT_GCOV=1 make check - make clean && rm -rf builddir && mkdir builddir && make SRC=`pwd` -f ../Makefile -C builddir diff --git a/opal-ci/fetch-debian-jessie-installer.sh b/opal-ci/fetch-debian-jessie-installer.sh new file mode 100755 index 0000000..6140ebd --- /dev/null +++ b/opal-ci/fetch-debian-jessie-installer.sh @@ -0,0 +1,3 @@ +#!/bin/bash +wget http://ftp.debian.org/debian/dists/jessie/main/installer-ppc64el/current/images/netboot/debian-installer/ppc64el/vmlinux -O debian-jessie-vmlinux +wget http://ftp.debian.org/debian/dists/jessie/main/installer-ppc64el/current/images/netboot/debian-installer/ppc64el/initrd.gz -O debian-jessie-initrd.gz diff --git a/test/Makefile.check b/test/Makefile.check index 429e380..8dc540a 100644 --- a/test/Makefile.check +++ b/test/Makefile.check @@ -1,4 +1,4 @@ -check: boot-check qemu-boot-check +check: boot-check qemu-boot-check debian-jessie-boot-check boot-check: skiboot.lid ./test/run_mambo_boot_test.sh @@ -6,6 +6,9 @@ boot-check: skiboot.lid qemu-boot-check: skiboot.lid ./test/run_qemu_boot_test.sh +debian-jessie-boot-check: skiboot.lid + ./test/run_qemu-jessie-debian-installer_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 diff --git a/test/run_qemu-jessie-debian-installer_boot_test.sh b/test/run_qemu-jessie-debian-installer_boot_test.sh new file mode 100755 index 0000000..7609125 --- /dev/null +++ b/test/run_qemu-jessie-debian-installer_boot_test.sh @@ -0,0 +1,67 @@ +#!/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 boot test'; + exit 0; +fi + +if [ ! `command -v expect` ]; then + echo 'Could not find expect binary. Skipping boot test'; + exit 0; +fi + +if [ ! -f debian-jessie-vmlinux ]; then + echo 'No debian-jessie-vmlinux kernel! Run opal-ci/fetch-debian-jessie-installer.sh : Skipping test.'; + exit 0; +fi + +if [ ! -f debian-jessie-initrd.gz ]; then + echo 'No debian-jessie-initrd.gz! Run opal-ci/fetch-debian-jessie-installer.sh : Skipping test'; + exit 0; +fi + +T=`mktemp --tmpdir skiboot_qemu_debian-jessie-boot_test.XXXXXXXXXX` +D=`mktemp --tmpdir debian-jessie-install.qcow2.XXXXXXXXXX` + +# In future we should do full install: +# FIXME: -append "DEBIAN_FRONTEND=text locale=en_US keymap=us hostname=OPALtest domain=unassigned-domain rescue/enable=true" + +$QEMU_PATH/../qemu-img create -f qcow2 $D 128G 2>&1 > $T + +( cat <<EOF | expect +set timeout 600 +spawn $QEMU_PATH/$QEMU_BINARY -m 2G -M powernv -kernel debian-jessie-vmlinux -initrd debian-jessie-initrd.gz -nographic -hda $D +expect { +timeout { send_user "\nTimeout waiting for petitboot\n"; exit 1 } +eof { send_user "\nUnexpected EOF\n;" exit 1 } +"Starting system log daemon" +} +close +wait +exit 0 +EOF +) 2>&1 >> $T +E=$? + +if [ $E -eq 0 ]; then + rm $T $D +else + echo "Boot Test FAILED. Results in $T, Disk $D"; +fi + +echo +exit $E; |