diff --git a/test/.gitignore b/test/.gitignore index ef7327fc..04ae7baf 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -6,4 +6,4 @@ /test.env /checkself.sh -/testenv-root +/tenv-root diff --git a/test/Makefile.am b/test/Makefile.am index f2eb8b6e..d5518ab0 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,16 +1,16 @@ -EXTRA_DIST = lib.sh testenv_exec.sh testenv_start.sh -EXTRA_DIST += testenv-root.mk busybox-x86_64.md5 -EXTRA_DIST += chrootsetup.sh +EXTRA_DIST = tenv/lib.sh tenv/exec.sh tenv/start.sh +EXTRA_DIST += tenv/root.mk tenv/busybox-x86_64.md5 +EXTRA_DIST += tenv/chrootsetup.sh EXTRA_DIST += setup-root.sh EXTRA_DIST += common/service.conf common/service.sh EXTRA_DIST += checkself.sh -EXTRA_DIST += add-remove-dynamic-service/test.sh -EXTRA_DIST += add-remove-dynamic-service-sub-config/test.sh -EXTRA_DIST += start-stop-service/test.sh -EXTRA_DIST += start-stop-service-sub-config/test.sh +EXTRA_DIST += add-remove-dynamic-service.sh +EXTRA_DIST += add-remove-dynamic-service-sub-config.sh +EXTRA_DIST += start-stop-service.sh +EXTRA_DIST += start-stop-service-sub-config.sh -AM_TESTS_ENVIRONMENT = TESTENV_ROOT='$(abs_builddir)/testenv-root/'; -AM_TESTS_ENVIRONMENT += export TESTENV_ROOT; +AM_TESTS_ENVIRONMENT = TENV_ROOT='$(abs_builddir)/tenv-root/'; +AM_TESTS_ENVIRONMENT += export TENV_ROOT; AM_TESTS_ENVIRONMENT += export LD_LIBRARY_PATH; AM_TESTS_ENVIRONMENT += top_srcdir=$(top_srcdir); AM_TESTS_ENVIRONMENT += export top_srcdir; @@ -19,16 +19,16 @@ AM_TESTS_ENVIRONMENT += export top_builddir; checkself.sh: echo '#!/bin/sh' > $@ - echo shellcheck $(addprefix '"$$srcdir"'/,$(filter %$(TEST_EXTENSIONS),$(filter-out $@, $(EXTRA_DIST)))) >> $@ + echo shellcheck $(addprefix '"$$srcdir"'/,$(filter %.sh,$(filter-out $@, $(EXTRA_DIST)))) >> $@ chmod +x $@ TEST_EXTENSIONS = .sh TESTS = checkself.sh TESTS += setup-root.sh -TESTS += add-remove-dynamic-service/test.sh -TESTS += add-remove-dynamic-service-sub-config/test.sh -TESTS += start-stop-service/test.sh -TESTS += start-stop-service-sub-config/test.sh +TESTS += add-remove-dynamic-service.sh +TESTS += add-remove-dynamic-service-sub-config.sh +TESTS += start-stop-service.sh +TESTS += start-stop-service-sub-config.sh clean-local: - -rm -rf $(builddir)/testenv-root/ + -rm -rf $(builddir)/tenv-root/ diff --git a/test/add-remove-dynamic-service-sub-config/test.sh b/test/add-remove-dynamic-service-sub-config.sh similarity index 86% rename from test/add-remove-dynamic-service-sub-config/test.sh rename to test/add-remove-dynamic-service-sub-config.sh index 7e319470..24df838c 100755 --- a/test/add-remove-dynamic-service-sub-config/test.sh +++ b/test/add-remove-dynamic-service-sub-config.sh @@ -2,10 +2,10 @@ set -eu -TEST_DIR=$(dirname "$0")/.. +TEST_DIR=$(dirname "$0") # shellcheck source=/dev/null -. "$TEST_DIR/lib.sh" +. "$TEST_DIR/tenv/lib.sh" test_teardown() { say "Test done $(date)" @@ -17,7 +17,7 @@ test_teardown() { say "Test start $(date)" -cp "$TEST_DIR"/common/service.sh "$TESTENV_ROOT"/test_assets/ +cp "$TEST_DIR"/common/service.sh "$TENV_ROOT"/test_assets/ say "Add a dynamic service in $FINIT_RCSD/service.conf" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_RCSD/service.conf" diff --git a/test/add-remove-dynamic-service/test.sh b/test/add-remove-dynamic-service.sh similarity index 85% rename from test/add-remove-dynamic-service/test.sh rename to test/add-remove-dynamic-service.sh index fc17f5ff..b3a8bbc5 100755 --- a/test/add-remove-dynamic-service/test.sh +++ b/test/add-remove-dynamic-service.sh @@ -2,10 +2,10 @@ set -eu -TEST_DIR=$(dirname "$0")/.. +TEST_DIR=$(dirname "$0") # shellcheck source=/dev/null -. "$TEST_DIR/lib.sh" +. "$TEST_DIR/tenv/lib.sh" test_teardown() { say "Test done $(date)" @@ -17,7 +17,7 @@ test_teardown() { say "Test start $(date)" -cp "$TEST_DIR"/common/service.sh "$TESTENV_ROOT"/test_assets/ +cp "$TEST_DIR"/common/service.sh "$TENV_ROOT"/test_assets/ say "Add a dynamic service in $FINIT_CONF" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_CONF" diff --git a/test/busybox-x86_64.md5 b/test/busybox-x86_64.md5 deleted file mode 100644 index 9ad31f90..00000000 --- a/test/busybox-x86_64.md5 +++ /dev/null @@ -1 +0,0 @@ -ea7e2353af0067a926d3e021e504290e bin/busybox-x86_64 diff --git a/test/setup-root.sh b/test/setup-root.sh index 83c5e3d8..b4ca97da 100755 --- a/test/setup-root.sh +++ b/test/setup-root.sh @@ -3,6 +3,6 @@ set -eu # shellcheck disable=SC2154 -make -C "$top_builddir" DESTDIR="$TESTENV_ROOT" install +make -C "$top_builddir" DESTDIR="$TENV_ROOT" install # shellcheck disable=SC2154 -FINITBIN="$(pwd)/$top_builddir/src/finit" DEST="$TESTENV_ROOT" make -f "$srcdir/testenv-root.mk" +FINITBIN="$(pwd)/$top_builddir/src/finit" DEST="$TENV_ROOT" make -f "$srcdir/tenv/root.mk" diff --git a/test/start-stop-service-sub-config/test.sh b/test/start-stop-service-sub-config.sh similarity index 86% rename from test/start-stop-service-sub-config/test.sh rename to test/start-stop-service-sub-config.sh index 80585ec5..c91ce955 100755 --- a/test/start-stop-service-sub-config/test.sh +++ b/test/start-stop-service-sub-config.sh @@ -2,10 +2,10 @@ set -eu -TEST_DIR=$(dirname "$0")/.. +TEST_DIR=$(dirname "$0") # shellcheck source=/dev/null -. "$TEST_DIR/lib.sh" +. "$TEST_DIR/tenv/lib.sh" test_teardown() { say "Test done $(date)" @@ -17,7 +17,7 @@ test_teardown() { say "Test start $(date)" -cp "$TEST_DIR"/common/service.sh "$TESTENV_ROOT"/test_assets/ +cp "$TEST_DIR"/common/service.sh "$TENV_ROOT"/test_assets/ say "Add service stanza in $FINIT_RCSD/service.conf" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_RCSD/service.conf" diff --git a/test/start-stop-service/test.sh b/test/start-stop-service.sh similarity index 85% rename from test/start-stop-service/test.sh rename to test/start-stop-service.sh index c429a695..64177133 100755 --- a/test/start-stop-service/test.sh +++ b/test/start-stop-service.sh @@ -2,10 +2,10 @@ set -eu -TEST_DIR=$(dirname "$0")/.. +TEST_DIR=$(dirname "$0") # shellcheck source=/dev/null -. "$TEST_DIR/lib.sh" +. "$TEST_DIR/tenv/lib.sh" test_teardown() { say "Test done $(date)" @@ -17,7 +17,7 @@ test_teardown() { say "Test start $(date)" -cp "$TEST_DIR"/common/service.sh "$TESTENV_ROOT"/test_assets/ +cp "$TEST_DIR"/common/service.sh "$TENV_ROOT"/test_assets/ say "Add service stanza in $FINIT_CONF" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_CONF" diff --git a/test/tenv/busybox-x86_64.md5 b/test/tenv/busybox-x86_64.md5 new file mode 100644 index 00000000..0ecfec84 --- /dev/null +++ b/test/tenv/busybox-x86_64.md5 @@ -0,0 +1 @@ +ea7e2353af0067a926d3e021e504290e busybox-x86_64 diff --git a/test/chrootsetup.sh b/test/tenv/chrootsetup.sh similarity index 100% rename from test/chrootsetup.sh rename to test/tenv/chrootsetup.sh diff --git a/test/testenv_enter.sh b/test/tenv/enter.sh similarity index 55% rename from test/testenv_enter.sh rename to test/tenv/enter.sh index fc2fef7d..f1188a3c 100755 --- a/test/testenv_enter.sh +++ b/test/tenv/enter.sh @@ -10,7 +10,9 @@ else shift fi -PID_FILE=$(dirname "$0")/testenv-root/running_test.pid +TEST_DIR=$(dirname "$0")/.. +TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}" +PID_FILE="$TENV_ROOT/running_test.pid" if [ -f "$PID_FILE" ] ; then target=$(cat "$PID_FILE") @@ -20,7 +22,6 @@ else exit 1 fi -PATH="$TESTENV_PATH" -export PATH +source "$TEST_DIR/test.env" -"$(dirname "$0")"/testenv_exec.sh "$target" "$cmd" "$@" +"$(dirname "$0")"/exec.sh "$target" "$cmd" "$@" diff --git a/test/testenv_exec.sh b/test/tenv/exec.sh similarity index 78% rename from test/testenv_exec.sh rename to test/tenv/exec.sh index b2454bfe..87e8197e 100755 --- a/test/testenv_exec.sh +++ b/test/tenv/exec.sh @@ -10,8 +10,8 @@ fi target="$1" shift -TEST_DIR=$(dirname "$0") -TESTENV_ROOT="${TESTENV_ROOT:-$(pwd)/${TEST_DIR}/testenv-root}" +TEST_DIR=$(dirname "$0"../) +TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}" nsenter=$(command -v nsenter) chroot=$(command -v chroot) @@ -33,4 +33,4 @@ export PATH --net \ --pid \ -w -t "$target" \ - "$chroot" "$TESTENV_ROOT" "$@" + "$chroot" "$TENV_ROOT" "$@" diff --git a/test/lib.sh b/test/tenv/lib.sh similarity index 73% rename from test/lib.sh rename to test/tenv/lib.sh index 3970d12c..2701d457 100755 --- a/test/lib.sh +++ b/test/tenv/lib.sh @@ -6,7 +6,7 @@ assert_num_children() { texec() { # shellcheck disable=SC2154 - "$TEST_DIR/testenv_exec.sh" "$finit_pid" "$@" + "$TEST_DIR/tenv/exec.sh" "$finit_pid" "$@" } pause() { @@ -25,7 +25,7 @@ fg_red='\e[1;31m' fg_green='\e[1;32m' fg_yellow='\e[1;33m' log() { - printf "< $TEST_NAME > %b%b%b %s\n" "$1" "$2" "$color_reset" "$3" + printf "< %s > %b%b%b %s\n" "$0" "$1" "$2" "$color_reset" "$3" } assert() { @@ -90,38 +90,30 @@ teardown() { wait - if [ -d "$TESTENV_ROOT/var/lock" ]; then - chmod +r "$TESTENV_ROOT/var/lock" + if [ -d "$TENV_ROOT/var/lock" ]; then + chmod +r "$TENV_ROOT/var/lock" fi - rm -f "$TESTENV_ROOT"/running_test.pid + rm -f "$TENV_ROOT"/running_test.pid } trap teardown EXIT -TESTENV_ROOT="${TESTENV_ROOT:-$(pwd)/${TEST_DIR}/testenv-root}" -export TESTENV_ROOT +TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}" +export TENV_ROOT # shellcheck source=/dev/null -. "$TESTENV_ROOT/../test.env" - -TEST_NAME="$(dirname "$0")" -TEST_NAME=${TEST_NAME#*/} -export TEST_NAME - -# Setup test environment +. "$TENV_ROOT/../test.env" # Setup test environment if [ -n "${DEBUG:-}" ]; then FINIT_ARGS="${FINIT_ARGS:-} finit.debug=on" fi # shellcheck disable=2086 -"$TEST_DIR/testenv_start.sh" finit ${FINIT_ARGS:-} & +"$TEST_DIR/tenv/start.sh" finit ${FINIT_ARGS:-} & finit_ppid=$! -echo "$finit_ppid" > "$TESTENV_ROOT"/running_test.pid +echo "$finit_ppid" > "$TENV_ROOT"/running_test.pid ->&2 echo "Hint: Execute 'test/testenv_enter.sh' to enter the test namespace" ->&2 echo "finit conf '$FINIT_CONF'" ->&2 echo "finit_conf dir '$FINIT_RCSD'" +>&2 echo "Hint: Execute 'TENV_ROOT=$TENV_ROOT $TEST_DIR/tenv/enter.sh' to enter the test namespace" log "$color_reset" 'Setup of test environment done' '' finit_pid=$(retry "pgrep -P $finit_ppid") diff --git a/test/testenv-root.mk b/test/tenv/root.mk similarity index 84% rename from test/testenv-root.mk rename to test/tenv/root.mk index da5c716c..0c4097cb 100644 --- a/test/testenv-root.mk +++ b/test/tenv/root.mk @@ -1,7 +1,7 @@ .PHONY: clean check -DEST ?= ./testenv-root -srcdir ?= ./ +DEST ?= ../tenv-root +srcdir ?= ../ ARCH ?= x86_64 @@ -49,13 +49,17 @@ all: $(dirs) $(binaries) $(libs) $(DEST)/bin/chrootsetup.sh $(dirs): mkdir -p $@ -$(DEST)/bin/$(BBBIN): +$(DEST)/bin/$(BBBIN).md5: + cp $(srcdir)/tenv/$(notdir $@) $@ + +$(DEST)/bin/$(BBBIN): $(DEST)/bin/$(BBBIN).md5 wget -O $@ $(BBURL) chmod +x $@ - # md5sum -c $(BBBIN).md5 + cd $(dir $@); \ + md5sum -c $(BBBIN).md5 $(DEST)/bin/chrootsetup.sh: - cp $(srcdir)/$(notdir $@) $@ + cp $(srcdir)/tenv/$(notdir $@) $@ $(binaries): $(DEST)/bin/$(BBBIN) cd $(DEST)/bin; \ diff --git a/test/testenv_start.sh b/test/tenv/start.sh similarity index 72% rename from test/testenv_start.sh rename to test/tenv/start.sh index cf3ac71d..962964de 100755 --- a/test/testenv_start.sh +++ b/test/tenv/start.sh @@ -2,8 +2,8 @@ set -eu -TEST_DIR=$(dirname "$0") -TESTENV_ROOT="${TESTENV_ROOT:-$(pwd)/${TEST_DIR}/testenv-root}" +TEST_DIR=$(dirname "$0"../) +TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}" unshare=$(command -v unshare) chroot=$(command -v chroot) @@ -24,4 +24,4 @@ exec "$unshare" \ --mount \ --mount-proc \ --uts --ipc --net \ - "$chroot" "$TESTENV_ROOT" /bin/chrootsetup.sh "$@" + "$chroot" "$TENV_ROOT" /bin/chrootsetup.sh "$@"