From 822d179a2b6da82171c063d3084d0cff297c1448 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Mon, 22 May 2017 12:02:17 +0100 Subject: [PATCH] tests: Add initial hyperkit tun test This uses 'expect' instead of 'grep' because hyperkit is a bit finicky with re-directing the output (it expects a tty). 'expect' handles this and is installed on macOS by default. Signed-off-by: Rolf Neugebauer --- .../010_hyperkit/000_run_kernel/test.exp | 31 +++++++++++++++++++ .../010_hyperkit/000_run_kernel/test.sh | 27 ++++++++++++++++ .../010_hyperkit/000_run_kernel/test.yml | 16 ++++++++++ 3 files changed, 74 insertions(+) create mode 100755 test/cases/010_platforms/010_hyperkit/000_run_kernel/test.exp create mode 100644 test/cases/010_platforms/010_hyperkit/000_run_kernel/test.sh create mode 100644 test/cases/010_platforms/010_hyperkit/000_run_kernel/test.yml 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