diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..c7ec943dd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +test.log diff --git a/Dockerfile.test b/Dockerfile.test new file mode 100644 index 000000000..5741f73a7 --- /dev/null +++ b/Dockerfile.test @@ -0,0 +1,6 @@ +FROM justincormack/alpine-qemu + +COPY alpine/initrd.img.gz . +COPY alpine/kernel/vmlinuz64 . + +ENTRYPOINT [ "qemu-system-x86_64", "-serial", "stdio", "-kernel", "vmlinuz64", "-initrd", "initrd.img.gz", "-m", "1024", "-append", "earlyprintk=serial console=ttyS0 noapic mobytest=true", "-vnc", "none" ] diff --git a/Makefile b/Makefile index 13be8b1a5..59b3756b6 100644 --- a/Makefile +++ b/Makefile @@ -22,10 +22,14 @@ qemu-arm: Dockerfile.qemu.armhf arm docker build -f Dockerfile.qemu.armhf -t mobyarmqemu:build . docker run -it --rm mobyarmqemu:build +test: Dockerfile.test all + docker build -f Dockerfile.test -t mobytest:build . + docker run -it --rm mobytest:build | tee test.log | grep 'Moby test suite PASSED' + .PHONY: clean clean: $(MAKE) -C alpine clean $(MAKE) -C xhyve clean docker images -q mobyqemu:build | xargs docker rmi -f || true - docker images -q justincormack/remora | xargs docker rmi -f || true + docker images -q mobytest:build | xargs docker rmi -f || true diff --git a/alpine/Dockerfile b/alpine/Dockerfile index b86896610..f37ddf69b 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -74,6 +74,8 @@ COPY packages/bootflag/bootflag /usr/bin COPY packages/gummiboot/gummiboot.tar.gz /usr/share/src/ COPY packages/oom/etc /etc COPY packages/9pmount-vsock/9pmount-vsock /sbin +COPY packages/test/etc /etc +COPY packages/test/mobytest /usr/bin RUN \ rc-update add swap boot && \ @@ -109,6 +111,7 @@ RUN \ rc-update add hv_kvp_daemon default && \ rc-update add hv_vss_daemon default && \ rc-update add oom default && \ + rc-update add test default && \ true # we do not need to restart syslog, as probably not running diff --git a/alpine/packages/test/etc/init.d/test b/alpine/packages/test/etc/init.d/test new file mode 100755 index 000000000..3e43970c2 --- /dev/null +++ b/alpine/packages/test/etc/init.d/test @@ -0,0 +1,25 @@ +#!/sbin/openrc-run + +depend() +{ + need docker +} + +start() +{ + cat /proc/cmdline | grep -q 'mobytest' || exit 0 + + ebegin "Running tests" + + if mobytest + then + printf "Moby test suite PASSED\n" + else + printf "Moby test suite FAILED\n" + fi + + eend "Tests completed" + + # now terminate with extreme prejudice + poweroff -f +} diff --git a/alpine/packages/test/mobytest b/alpine/packages/test/mobytest new file mode 100755 index 000000000..46e0083b1 --- /dev/null +++ b/alpine/packages/test/mobytest @@ -0,0 +1,5 @@ +#!/bin/sh + +set -e + +docker ps