test: Move test support files to separate dir and keep tests in /test

Signed-off-by: Jacques de Laval <jacques@de-laval.se>
This commit is contained in:
Jacques de Laval committed 2021-02-27 14:50:49 +01:00
1 parent 4aa17a84ab
commit 7fe1189f7b
15 files changed
+62 -65

No files matched your search

+1 -1
View File
@@ -6,4 +6,4 @@
/test.env /test.env
/checkself.sh /checkself.sh
/testenv-root /tenv-root
+15 -15
View File
@@ -1,16 +1,16 @@
EXTRA_DIST = lib.sh testenv_exec.sh testenv_start.sh EXTRA_DIST = tenv/lib.sh tenv/exec.sh tenv/start.sh
EXTRA_DIST += testenv-root.mk busybox-x86_64.md5 EXTRA_DIST += tenv/root.mk tenv/busybox-x86_64.md5
EXTRA_DIST += chrootsetup.sh EXTRA_DIST += tenv/chrootsetup.sh
EXTRA_DIST += setup-root.sh EXTRA_DIST += setup-root.sh
EXTRA_DIST += common/service.conf common/service.sh EXTRA_DIST += common/service.conf common/service.sh
EXTRA_DIST += checkself.sh EXTRA_DIST += checkself.sh
EXTRA_DIST += add-remove-dynamic-service/test.sh EXTRA_DIST += add-remove-dynamic-service.sh
EXTRA_DIST += add-remove-dynamic-service-sub-config/test.sh EXTRA_DIST += add-remove-dynamic-service-sub-config.sh
EXTRA_DIST += start-stop-service/test.sh EXTRA_DIST += start-stop-service.sh
EXTRA_DIST += start-stop-service-sub-config/test.sh EXTRA_DIST += start-stop-service-sub-config.sh
AM_TESTS_ENVIRONMENT = TESTENV_ROOT='$(abs_builddir)/testenv-root/'; AM_TESTS_ENVIRONMENT = TENV_ROOT='$(abs_builddir)/tenv-root/';
AM_TESTS_ENVIRONMENT += export TESTENV_ROOT; AM_TESTS_ENVIRONMENT += export TENV_ROOT;
AM_TESTS_ENVIRONMENT += export LD_LIBRARY_PATH; AM_TESTS_ENVIRONMENT += export LD_LIBRARY_PATH;
AM_TESTS_ENVIRONMENT += top_srcdir=$(top_srcdir); AM_TESTS_ENVIRONMENT += top_srcdir=$(top_srcdir);
AM_TESTS_ENVIRONMENT += export top_srcdir; AM_TESTS_ENVIRONMENT += export top_srcdir;
@@ -19,16 +19,16 @@ AM_TESTS_ENVIRONMENT += export top_builddir;
checkself.sh: checkself.sh:
echo '#!/bin/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 $@ chmod +x $@
TEST_EXTENSIONS = .sh TEST_EXTENSIONS = .sh
TESTS = checkself.sh TESTS = checkself.sh
TESTS += setup-root.sh TESTS += setup-root.sh
TESTS += add-remove-dynamic-service/test.sh TESTS += add-remove-dynamic-service.sh
TESTS += add-remove-dynamic-service-sub-config/test.sh TESTS += add-remove-dynamic-service-sub-config.sh
TESTS += start-stop-service/test.sh TESTS += start-stop-service.sh
TESTS += start-stop-service-sub-config/test.sh TESTS += start-stop-service-sub-config.sh
clean-local: clean-local:
-rm -rf $(builddir)/testenv-root/ -rm -rf $(builddir)/tenv-root/
@@ -2,10 +2,10 @@
set -eu set -eu
TEST_DIR=$(dirname "$0")/.. TEST_DIR=$(dirname "$0")
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "$TEST_DIR/lib.sh" . "$TEST_DIR/tenv/lib.sh"
test_teardown() { test_teardown() {
say "Test done $(date)" say "Test done $(date)"
@@ -17,7 +17,7 @@ test_teardown() {
say "Test start $(date)" 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" 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" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_RCSD/service.conf"
@@ -2,10 +2,10 @@
set -eu set -eu
TEST_DIR=$(dirname "$0")/.. TEST_DIR=$(dirname "$0")
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "$TEST_DIR/lib.sh" . "$TEST_DIR/tenv/lib.sh"
test_teardown() { test_teardown() {
say "Test done $(date)" say "Test done $(date)"
@@ -17,7 +17,7 @@ test_teardown() {
say "Test start $(date)" 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" say "Add a dynamic service in $FINIT_CONF"
texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_CONF" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_CONF"
-1
View File
@@ -1 +0,0 @@
ea7e2353af0067a926d3e021e504290e bin/busybox-x86_64
+2 -2
View File
@@ -3,6 +3,6 @@
set -eu set -eu
# shellcheck disable=SC2154 # shellcheck disable=SC2154
make -C "$top_builddir" DESTDIR="$TESTENV_ROOT" install make -C "$top_builddir" DESTDIR="$TENV_ROOT" install
# shellcheck disable=SC2154 # 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"
@@ -2,10 +2,10 @@
set -eu set -eu
TEST_DIR=$(dirname "$0")/.. TEST_DIR=$(dirname "$0")
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "$TEST_DIR/lib.sh" . "$TEST_DIR/tenv/lib.sh"
test_teardown() { test_teardown() {
say "Test done $(date)" say "Test done $(date)"
@@ -17,7 +17,7 @@ test_teardown() {
say "Test start $(date)" 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" 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" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_RCSD/service.conf"
@@ -2,10 +2,10 @@
set -eu set -eu
TEST_DIR=$(dirname "$0")/.. TEST_DIR=$(dirname "$0")
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "$TEST_DIR/lib.sh" . "$TEST_DIR/tenv/lib.sh"
test_teardown() { test_teardown() {
say "Test done $(date)" say "Test done $(date)"
@@ -17,7 +17,7 @@ test_teardown() {
say "Test start $(date)" 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" say "Add service stanza in $FINIT_CONF"
texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_CONF" texec sh -c "echo 'service [2345] kill:20 log /test_assets/service.sh' > $FINIT_CONF"
+1
View File
@@ -0,0 +1 @@
ea7e2353af0067a926d3e021e504290e busybox-x86_64
File renamed without changes.
+5 -4
View File
@@ -10,7 +10,9 @@ else
shift shift
fi 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 if [ -f "$PID_FILE" ] ; then
target=$(cat "$PID_FILE") target=$(cat "$PID_FILE")
@@ -20,7 +22,6 @@ else
exit 1 exit 1
fi fi
PATH="$TESTENV_PATH" source "$TEST_DIR/test.env"
export PATH
"$(dirname "$0")"/testenv_exec.sh "$target" "$cmd" "$@" "$(dirname "$0")"/exec.sh "$target" "$cmd" "$@"
+3 -3
View File
@@ -10,8 +10,8 @@ fi
target="$1" target="$1"
shift shift
TEST_DIR=$(dirname "$0") TEST_DIR=$(dirname "$0"../)
TESTENV_ROOT="${TESTENV_ROOT:-$(pwd)/${TEST_DIR}/testenv-root}" TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}"
nsenter=$(command -v nsenter) nsenter=$(command -v nsenter)
chroot=$(command -v chroot) chroot=$(command -v chroot)
@@ -33,4 +33,4 @@ export PATH
--net \ --net \
--pid \ --pid \
-w -t "$target" \ -w -t "$target" \
"$chroot" "$TESTENV_ROOT" "$@" "$chroot" "$TENV_ROOT" "$@"
+11 -19
View File
@@ -6,7 +6,7 @@ assert_num_children() {
texec() { texec() {
# shellcheck disable=SC2154 # shellcheck disable=SC2154
"$TEST_DIR/testenv_exec.sh" "$finit_pid" "$@" "$TEST_DIR/tenv/exec.sh" "$finit_pid" "$@"
} }
pause() { pause() {
@@ -25,7 +25,7 @@ fg_red='\e[1;31m'
fg_green='\e[1;32m' fg_green='\e[1;32m'
fg_yellow='\e[1;33m' fg_yellow='\e[1;33m'
log() { 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() { assert() {
@@ -90,38 +90,30 @@ teardown() {
wait wait
if [ -d "$TESTENV_ROOT/var/lock" ]; then if [ -d "$TENV_ROOT/var/lock" ]; then
chmod +r "$TESTENV_ROOT/var/lock" chmod +r "$TENV_ROOT/var/lock"
fi fi
rm -f "$TESTENV_ROOT"/running_test.pid rm -f "$TENV_ROOT"/running_test.pid
} }
trap teardown EXIT trap teardown EXIT
TESTENV_ROOT="${TESTENV_ROOT:-$(pwd)/${TEST_DIR}/testenv-root}" TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}"
export TESTENV_ROOT export TENV_ROOT
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "$TESTENV_ROOT/../test.env" . "$TENV_ROOT/../test.env"
TEST_NAME="$(dirname "$0")"
TEST_NAME=${TEST_NAME#*/}
export TEST_NAME
# Setup test environment
# Setup test environment # Setup test environment
if [ -n "${DEBUG:-}" ]; then if [ -n "${DEBUG:-}" ]; then
FINIT_ARGS="${FINIT_ARGS:-} finit.debug=on" FINIT_ARGS="${FINIT_ARGS:-} finit.debug=on"
fi fi
# shellcheck disable=2086 # shellcheck disable=2086
"$TEST_DIR/testenv_start.sh" finit ${FINIT_ARGS:-} & "$TEST_DIR/tenv/start.sh" finit ${FINIT_ARGS:-} &
finit_ppid=$! 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 "Hint: Execute 'TENV_ROOT=$TENV_ROOT $TEST_DIR/tenv/enter.sh' to enter the test namespace"
>&2 echo "finit conf '$FINIT_CONF'"
>&2 echo "finit_conf dir '$FINIT_RCSD'"
log "$color_reset" 'Setup of test environment done' '' log "$color_reset" 'Setup of test environment done' ''
finit_pid=$(retry "pgrep -P $finit_ppid") finit_pid=$(retry "pgrep -P $finit_ppid")
+9 -5
View File
@@ -1,7 +1,7 @@
.PHONY: clean check .PHONY: clean check
DEST ?= ./testenv-root DEST ?= ../tenv-root
srcdir ?= ./ srcdir ?= ../
ARCH ?= x86_64 ARCH ?= x86_64
@@ -49,13 +49,17 @@ all: $(dirs) $(binaries) $(libs) $(DEST)/bin/chrootsetup.sh
$(dirs): $(dirs):
mkdir -p $@ mkdir -p $@
$(DEST)/bin/$(BBBIN): $(DEST)/bin/$(BBBIN).md5:
cp $(srcdir)/tenv/$(notdir $@) $@
$(DEST)/bin/$(BBBIN): $(DEST)/bin/$(BBBIN).md5
wget -O $@ $(BBURL) wget -O $@ $(BBURL)
chmod +x $@ chmod +x $@
# md5sum -c $(BBBIN).md5 cd $(dir $@); \
md5sum -c $(BBBIN).md5
$(DEST)/bin/chrootsetup.sh: $(DEST)/bin/chrootsetup.sh:
cp $(srcdir)/$(notdir $@) $@ cp $(srcdir)/tenv/$(notdir $@) $@
$(binaries): $(DEST)/bin/$(BBBIN) $(binaries): $(DEST)/bin/$(BBBIN)
cd $(DEST)/bin; \ cd $(DEST)/bin; \
+3 -3
View File
@@ -2,8 +2,8 @@
set -eu set -eu
TEST_DIR=$(dirname "$0") TEST_DIR=$(dirname "$0"../)
TESTENV_ROOT="${TESTENV_ROOT:-$(pwd)/${TEST_DIR}/testenv-root}" TENV_ROOT="${TENV_ROOT:-$(pwd)/${TEST_DIR}/tenv-root}"
unshare=$(command -v unshare) unshare=$(command -v unshare)
chroot=$(command -v chroot) chroot=$(command -v chroot)
@@ -24,4 +24,4 @@ exec "$unshare" \
--mount \ --mount \
--mount-proc \ --mount-proc \
--uts --ipc --net \ --uts --ipc --net \
"$chroot" "$TESTENV_ROOT" /bin/chrootsetup.sh "$@" "$chroot" "$TENV_ROOT" /bin/chrootsetup.sh "$@"