diff --git a/test/cases/010_platforms/000_qemu/000_run_kernel/test.sh b/test/cases/010_platforms/000_qemu/000_run_kernel/test.sh index f3f033164..a9ebb6823 100644 --- a/test/cases/010_platforms/000_qemu/000_run_kernel/test.sh +++ b/test/cases/010_platforms/000_qemu/000_run_kernel/test.sh @@ -14,7 +14,7 @@ NAME=qemu-kernel clean_up() { # remove any files, containers, images etc - rm -rf "${NAME}*" || true + rm -rf ${NAME}* || true } trap clean_up EXIT diff --git a/test/cases/010_platforms/000_qemu/010_run_iso/test.sh b/test/cases/010_platforms/000_qemu/010_run_iso/test.sh index dae34b3d1..b660acda3 100644 --- a/test/cases/010_platforms/000_qemu/010_run_iso/test.sh +++ b/test/cases/010_platforms/000_qemu/010_run_iso/test.sh @@ -13,7 +13,7 @@ set -e NAME=qemu-iso clean_up() { - rm -rf "${NAME}*" || true + rm -rf ${NAME}* || true } trap clean_up EXIT diff --git a/test/cases/010_platforms/000_qemu/020_run_efi/test.sh b/test/cases/010_platforms/000_qemu/020_run_efi/test.sh index 4bef989cd..93e885a47 100644 --- a/test/cases/010_platforms/000_qemu/020_run_efi/test.sh +++ b/test/cases/010_platforms/000_qemu/020_run_efi/test.sh @@ -14,14 +14,14 @@ NAME=qemu-efi clean_up() { # remove any files, containers, images etc - rm -rf "${NAME}*" || true + rm -rf ${NAME}* || true } trap clean_up EXIT -if command -v qemu; then +if command -v qemu-system-x86_64; then if [ ! -f /usr/share/ovmf/bios.bin ]; then - exit RT_CANCEL + exit $RT_CANCEL fi fi diff --git a/test/cases/010_platforms/000_qemu/100_container/test.sh b/test/cases/010_platforms/000_qemu/100_container/test.sh new file mode 100644 index 000000000..dc2c091cf --- /dev/null +++ b/test/cases/010_platforms/000_qemu/100_container/test.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# SUMMARY: Check that qemu runs containerised +# LABELS: +# AUTHOR: Rolf Neugebauer + +set -e + +# Source libraries. Uncomment if needed/defined +#. "${RT_LIB}" +. "${RT_PROJECT_ROOT}/_lib/lib.sh" + +NAME=qemu-kernel + +clean_up() { + # remove any files, containers, images etc + rm -rf ${NAME}* || true +} + +trap clean_up EXIT + +# check if qemu is installed locally +QEMU=$(command -v qemu-system-x86_64 || true) +if [ -z "${QEMU}" ]; then + # No qemu installed so don't bother to test as all the other + # qemu tests would have been run containerised + echo "No locally installed qemu" + exit $RT_CANCEL +fi + +moby build -name "${NAME}" test.yml +[ -f "${NAME}-kernel" ] || exit 1 +[ -f "${NAME}-initrd.img" ] || exit 1 +[ -f "${NAME}-cmdline" ]|| exit 1 +linuxkit run qemu -containerized "${NAME}" | grep -q "Welcome to LinuxKit" +exit 0 diff --git a/test/cases/010_platforms/000_qemu/100_container/test.yml b/test/cases/010_platforms/000_qemu/100_container/test.yml new file mode 100644 index 000000000..5f5a5da05 --- /dev/null +++ b/test/cases/010_platforms/000_qemu/100_container/test.yml @@ -0,0 +1,16 @@ +kernel: + image: "linuxkit/kernel:4.9.x" + cmdline: "console=ttyS0 console=tty0 page_poison=1" +init: + - linuxkit/init:cbd7ae748f0a082516501a3e914fa0c924ee941e + - linuxkit/runc:24dfe632ed3ff53a026ee3fac046fd544434e2d6 + - linuxkit/containerd:f1130450206d4f64f0ddc13d15bb68435aa1ff61 +onboot: + - name: poweroff + image: "linuxkit/poweroff:a8f1e4ad8d459f1fdaad9e4b007512cb3b504ae8" + command: ["/bin/sh", "/poweroff.sh", "3"] +trust: + image: + - linuxkit/kernel +outputs: + - format: kernel+initrd diff --git a/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.exp b/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.exp new file mode 100755 index 000000000..1385259a3 --- /dev/null +++ b/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.exp @@ -0,0 +1,31 @@ +#!/usr/bin/env expect +spawn linuxkit run hyperkit hyperkit-kernel +set pid [exp_pid] +set timeout 30 + +expect { + timeout { + puts "FAILED boot" + exec kill -9 $pid + exit 1 + } + "Welcome to LinuxKit" { + puts "SUCCESS boot" + } +} +expect { + timeout { + puts "FAILED poweroff" + exec kill -9 $pid + exit 1 + } + "Power down" { + puts "SUCCESS poweroff" + } + eof { + puts "SUCCESS poweroff" + } +} +set waitval [wait -i $spawn_id] +set exval [lindex $waitval 3] +exit $exval diff --git a/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.sh b/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.sh new file mode 100644 index 000000000..032a39301 --- /dev/null +++ b/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# SUMMARY: Check that the kernel+initrd image boots on hyperkit +# LABELS: +# AUTHOR: Rolf Neugebauer + +set -e +set -x + +# Source libraries. Uncomment if needed/defined +#. "${RT_LIB}" +. "${RT_PROJECT_ROOT}/_lib/lib.sh" + +NAME=hyperkit-kernel + +clean_up() { + echo $(pwd) + # remove any files, containers, images etc + rm -rf "${NAME}"* || true +} +trap clean_up EXIT + +moby build -name "${NAME}" test.yml +[ -f "${NAME}-kernel" ] || exit 1 +[ -f "${NAME}-initrd.img" ] || exit 1 +[ -f "${NAME}-cmdline" ]|| exit 1 +./test.exp +exit 0 diff --git a/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.yml b/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.yml new file mode 100644 index 000000000..a372778b5 --- /dev/null +++ b/test/cases/010_platforms/010_hyperkit/000_run_kernel/test.yml @@ -0,0 +1,16 @@ +kernel: + image: "linuxkit/kernel:4.9.x" + cmdline: "console=ttyS0 console=tty0 page_poison=1" +init: + - linuxkit/init:f71c3b30ac1ba4ef16c160c89610fa4976f9752f + - linuxkit/runc:b0fb122e10dbb7e4e45115177a61a3f8d68c19a9 + - linuxkit/containerd:60e2486a74c665ba4df57e561729aec20758daed +onboot: + - name: poweroff + image: "linuxkit/poweroff:a8f1e4ad8d459f1fdaad9e4b007512cb3b504ae8" + command: ["/bin/sh", "/poweroff.sh", "10"] +trust: + image: + - linuxkit/kernel +outputs: + - format: kernel+initrd diff --git a/test/cases/020_kernel/000_config_4.4.x/test-kernel-config.yml b/test/cases/020_kernel/000_config_4.4.x/test-kernel-config.yml new file mode 100644 index 000000000..6c0db2dfb --- /dev/null +++ b/test/cases/020_kernel/000_config_4.4.x/test-kernel-config.yml @@ -0,0 +1,16 @@ +kernel: + image: "linuxkit/kernel:4.4.x" + cmdline: "console=ttyS0" +init: + - linuxkit/init:cbd7ae748f0a082516501a3e914fa0c924ee941e + - linuxkit/runc:24dfe632ed3ff53a026ee3fac046fd544434e2d6 + - linuxkit/containerd:f1130450206d4f64f0ddc13d15bb68435aa1ff61 +onboot: + - name: check-kernel-config + image: "linuxkit/test-kernel-config:ecff41279ccbc408079a3996a956432651c6eb9c" + readonly: true + - name: poweroff + image: "linuxkit/poweroff:a8f1e4ad8d459f1fdaad9e4b007512cb3b504ae8" + command: ["/bin/sh", "/poweroff.sh", "3"] +outputs: + - format: kernel+initrd diff --git a/test/cases/020_kernel/000_config/test.sh b/test/cases/020_kernel/000_config_4.4.x/test.sh similarity index 100% rename from test/cases/020_kernel/000_config/test.sh rename to test/cases/020_kernel/000_config_4.4.x/test.sh diff --git a/test/cases/020_kernel/000_config/test-kernel-config.yml b/test/cases/020_kernel/001_config_4.9.x/test-kernel-config.yml similarity index 60% rename from test/cases/020_kernel/000_config/test-kernel-config.yml rename to test/cases/020_kernel/001_config_4.9.x/test-kernel-config.yml index 8146aa2fb..ac928292b 100644 --- a/test/cases/020_kernel/000_config/test-kernel-config.yml +++ b/test/cases/020_kernel/001_config_4.9.x/test-kernel-config.yml @@ -5,19 +5,7 @@ init: - linuxkit/init:cbd7ae748f0a082516501a3e914fa0c924ee941e - linuxkit/runc:24dfe632ed3ff53a026ee3fac046fd544434e2d6 - linuxkit/containerd:f1130450206d4f64f0ddc13d15bb68435aa1ff61 - - linuxkit/ca-certificates:4e9a83e890e6477dcd25029fc4f1ced61d0642f4 onboot: - - name: dhcpcd - image: "linuxkit/dhcpcd:cb96c09a33c166eca6530f166f0f79927c3e83b0" - binds: - - /var:/var - - /tmp:/etc - capabilities: - - CAP_NET_ADMIN - - CAP_NET_BIND_SERVICE - - CAP_NET_RAW - net: host - command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"] - name: check-kernel-config image: "linuxkit/test-kernel-config:ecff41279ccbc408079a3996a956432651c6eb9c" readonly: true diff --git a/test/cases/020_kernel/001_config_4.9.x/test.sh b/test/cases/020_kernel/001_config_4.9.x/test.sh new file mode 100644 index 000000000..7883df33b --- /dev/null +++ b/test/cases/020_kernel/001_config_4.9.x/test.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# SUMMARY: Sanity check on the kernel config file +# LABELS: +# REPEAT: +# AUTHOR: Dave Tucker + +set -e + +# Source libraries. Uncomment if needed/defined +#. "${RT_LIB}" +. "${RT_PROJECT_ROOT}/_lib/lib.sh" + +clean_up() { + find . -iname "test-kernel-config*" -not -iname "*.yml" -exec rm -rf {} \; +} +trap clean_up EXIT + +# Test code goes here +moby build test-kernel-config +RESULT="$(linuxkit run qemu test-kernel-config)" +echo "${RESULT}" | grep -q "suite PASSED" + +exit 0 diff --git a/test/cases/020_kernel/002_config_4.10.x/test-kernel-config.yml b/test/cases/020_kernel/002_config_4.10.x/test-kernel-config.yml new file mode 100644 index 000000000..f54ef34a3 --- /dev/null +++ b/test/cases/020_kernel/002_config_4.10.x/test-kernel-config.yml @@ -0,0 +1,16 @@ +kernel: + image: "linuxkit/kernel:4.10.x" + cmdline: "console=ttyS0" +init: + - linuxkit/init:cbd7ae748f0a082516501a3e914fa0c924ee941e + - linuxkit/runc:24dfe632ed3ff53a026ee3fac046fd544434e2d6 + - linuxkit/containerd:f1130450206d4f64f0ddc13d15bb68435aa1ff61 +onboot: + - name: check-kernel-config + image: "linuxkit/test-kernel-config:ecff41279ccbc408079a3996a956432651c6eb9c" + readonly: true + - name: poweroff + image: "linuxkit/poweroff:a8f1e4ad8d459f1fdaad9e4b007512cb3b504ae8" + command: ["/bin/sh", "/poweroff.sh", "3"] +outputs: + - format: kernel+initrd diff --git a/test/cases/020_kernel/002_config_4.10.x/test.sh b/test/cases/020_kernel/002_config_4.10.x/test.sh new file mode 100644 index 000000000..7883df33b --- /dev/null +++ b/test/cases/020_kernel/002_config_4.10.x/test.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# SUMMARY: Sanity check on the kernel config file +# LABELS: +# REPEAT: +# AUTHOR: Dave Tucker + +set -e + +# Source libraries. Uncomment if needed/defined +#. "${RT_LIB}" +. "${RT_PROJECT_ROOT}/_lib/lib.sh" + +clean_up() { + find . -iname "test-kernel-config*" -not -iname "*.yml" -exec rm -rf {} \; +} +trap clean_up EXIT + +# Test code goes here +moby build test-kernel-config +RESULT="$(linuxkit run qemu test-kernel-config)" +echo "${RESULT}" | grep -q "suite PASSED" + +exit 0 diff --git a/test/cases/020_kernel/003_config_4.11.x/test-kernel-config.yml b/test/cases/020_kernel/003_config_4.11.x/test-kernel-config.yml new file mode 100644 index 000000000..412fb2a11 --- /dev/null +++ b/test/cases/020_kernel/003_config_4.11.x/test-kernel-config.yml @@ -0,0 +1,16 @@ +kernel: + image: "linuxkit/kernel:4.11.x" + cmdline: "console=ttyS0" +init: + - linuxkit/init:cbd7ae748f0a082516501a3e914fa0c924ee941e + - linuxkit/runc:24dfe632ed3ff53a026ee3fac046fd544434e2d6 + - linuxkit/containerd:f1130450206d4f64f0ddc13d15bb68435aa1ff61 +onboot: + - name: check-kernel-config + image: "linuxkit/test-kernel-config:ecff41279ccbc408079a3996a956432651c6eb9c" + readonly: true + - name: poweroff + image: "linuxkit/poweroff:a8f1e4ad8d459f1fdaad9e4b007512cb3b504ae8" + command: ["/bin/sh", "/poweroff.sh", "3"] +outputs: + - format: kernel+initrd diff --git a/test/cases/020_kernel/003_config_4.11.x/test.sh b/test/cases/020_kernel/003_config_4.11.x/test.sh new file mode 100644 index 000000000..7883df33b --- /dev/null +++ b/test/cases/020_kernel/003_config_4.11.x/test.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# SUMMARY: Sanity check on the kernel config file +# LABELS: +# REPEAT: +# AUTHOR: Dave Tucker + +set -e + +# Source libraries. Uncomment if needed/defined +#. "${RT_LIB}" +. "${RT_PROJECT_ROOT}/_lib/lib.sh" + +clean_up() { + find . -iname "test-kernel-config*" -not -iname "*.yml" -exec rm -rf {} \; +} +trap clean_up EXIT + +# Test code goes here +moby build test-kernel-config +RESULT="$(linuxkit run qemu test-kernel-config)" +echo "${RESULT}" | grep -q "suite PASSED" + +exit 0 diff --git a/test/cases/020_kernel/010_kmod/Dockerfile b/test/cases/020_kernel/010_kmod_4.9.x/Dockerfile similarity index 100% rename from test/cases/020_kernel/010_kmod/Dockerfile rename to test/cases/020_kernel/010_kmod_4.9.x/Dockerfile diff --git a/test/cases/020_kernel/010_kmod/check.sh b/test/cases/020_kernel/010_kmod_4.9.x/check.sh similarity index 100% rename from test/cases/020_kernel/010_kmod/check.sh rename to test/cases/020_kernel/010_kmod_4.9.x/check.sh diff --git a/test/cases/020_kernel/010_kmod/kmod.yml b/test/cases/020_kernel/010_kmod_4.9.x/kmod.yml similarity index 100% rename from test/cases/020_kernel/010_kmod/kmod.yml rename to test/cases/020_kernel/010_kmod_4.9.x/kmod.yml diff --git a/test/cases/020_kernel/010_kmod/src/Makefile b/test/cases/020_kernel/010_kmod_4.9.x/src/Makefile similarity index 100% rename from test/cases/020_kernel/010_kmod/src/Makefile rename to test/cases/020_kernel/010_kmod_4.9.x/src/Makefile diff --git a/test/cases/020_kernel/010_kmod/src/hello_world.c b/test/cases/020_kernel/010_kmod_4.9.x/src/hello_world.c similarity index 100% rename from test/cases/020_kernel/010_kmod/src/hello_world.c rename to test/cases/020_kernel/010_kmod_4.9.x/src/hello_world.c diff --git a/test/cases/020_kernel/010_kmod/test.sh b/test/cases/020_kernel/010_kmod_4.9.x/test.sh similarity index 100% rename from test/cases/020_kernel/010_kmod/test.sh rename to test/cases/020_kernel/010_kmod_4.9.x/test.sh