about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--test/Containerfile26
-rwxr-xr-xtest/test14
-rwxr-xr-xtest/test.run2
3 files changed, 42 insertions, 0 deletions
diff --git a/test/Containerfile b/test/Containerfile
new file mode 100644
index 0000000..3e99209
--- /dev/null
+++ b/test/Containerfile
@@ -0,0 +1,26 @@
+FROM docker.io/library/alpine:3 AS openrc
+# run openrc inside container
+RUN apk add openrc mdevd-openrc
+RUN sed -i '/getty/d' /etc/inittab
+RUN sed -i \
+	-e 's/#rc_sys=".*"/rc_sys="docker"/g' \
+	-e 's/#rc_crashed_stop=.*/rc_crashed_stop=NO/g' \
+	-e 's/#rc_crashed_start=.*/rc_crashed_start=YES/g' \
+	/etc/rc.conf
+RUN sed -i 's/cgroup_add_service /# cgroup_add_service /g' /lib/rc/sh/openrc-run.sh
+RUN sed -i 's/VSERVER/DOCKER/Ig' /lib/rc/sh/init.sh
+VOLUME ["/sys/fs/cgroup"]
+CMD ["/sbin/init"]
+
+FROM openrc AS svtree
+# install svtree
+COPY ./openrc.service /etc/init.d/svtree
+RUN rc-update add svtree default
+
+FROM svtree AS test
+# setup test service
+RUN mkdir -p /etc/s6-rc/. /etc/s6-rc/generate /etc/s6-rc/services
+RUN touch /etc/s6-rc/generate/service.test
+COPY ./test/test.run /etc/s6-rc/services/test.run
+
+LABEL test="podman run --rmi --interactive --tty \${IMAGE}"
diff --git a/test/test b/test/test
new file mode 100755
index 0000000..e2504bd
--- /dev/null
+++ b/test/test
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -eu
+
+main() {
+	local i cwd
+
+	i=svtree-test:latest
+	cwd="$(dirname "$(readlink -e -- "${0}")")"
+
+	podman build -t "$i" -f "$cwd"/Containerfile "$cwd"/..
+	podman container runlabel test "$i"
+}
+
+main
diff --git a/test/test.run b/test/test.run
new file mode 100755
index 0000000..ccf6cf0
--- /dev/null
+++ b/test/test.run
@@ -0,0 +1,2 @@
+#!/bin/execline -P
+foreground { true }