From f98be8540fe9fffb658f00f0107561f18bee9a07 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 19 Dec 2022 17:20:21 +0100 Subject: [PATCH] test/devmon.sh: new test Issue #185 Signed-off-by: Joachim Wiberg --- test/Makefile.am | 2 ++ test/devmon.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ test/tenv/lib.sh | 5 ++++ 3 files changed, 74 insertions(+) create mode 100755 test/devmon.sh diff --git a/test/Makefile.am b/test/Makefile.am index e0447609..4e867d25 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -23,6 +23,7 @@ EXTRA_DIST += add-remove-dynamic-service-sub-config.sh EXTRA_DIST += cond-start-task.sh EXTRA_DIST += crashing.sh EXTRA_DIST += depserv.sh +EXTRA_DIST += devmon.sh EXTRA_DIST += failing-sysv.sh EXTRA_DIST += global-envs.sh EXTRA_DIST += initctl-status-subset.sh @@ -57,6 +58,7 @@ TESTS += add-remove-dynamic-service-sub-config.sh TESTS += cond-start-task.sh TESTS += crashing.sh TESTS += depserv.sh +TESTS += devmon.sh TESTS += failing-sysv.sh TESTS += global-envs.sh TESTS += initctl-status-subset.sh diff --git a/test/devmon.sh b/test/devmon.sh new file mode 100755 index 00000000..c308ce67 --- /dev/null +++ b/test/devmon.sh @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Verify device monitor (built-in plugin) +# + +set -eu + +TEST_DIR=$(dirname "$0") + +# shellcheck source=/dev/null +. "$TEST_DIR/tenv/lib.sh" + +test_setup() +{ + say "Test start $(date)" +} + +test_teardown() +{ + say "Test done $(date)" + say "Running test teardown." + + texec rm -f "$FINIT_CONF" "/tmp/post" +} + +# Cannot run mknod as non-root even in a chroot +# touch is close enough for our needs +mkdev() +{ + dir=$(dirname "$1") + run "mkdir -p $dir" + run "touch $1" +} + +rmdev() +{ + run "rm $1" +} + +test_one() +{ + cond="$1" + node="/$cond" + + say "Checking cond $cond and device $node ..." + run "echo service log:null \<$cond\> serv -np >> $FINIT_CONF" + run "cat $FINIT_CONF" + run "initctl reload" + + assert_status "serv" "waiting" + + mkdev "$node" + assert_status "serv" "running" + + rmdev "$node" + assert_status "serv" "waiting" + + say "Cleaning up ..." + run "rm $FINIT_CONF" + run "initctl reload" +} + +sep +test_one "dev/fbsplash" +sep +test_one "dev/subdir/42" +sep diff --git a/test/tenv/lib.sh b/test/tenv/lib.sh index 4eafab50..acdf983b 100755 --- a/test/tenv/lib.sh +++ b/test/tenv/lib.sh @@ -121,6 +121,11 @@ log() printf "\e[2m[%s]\e[0m %b%b%b %s\n" "$test" "$1" "$2" "$color_reset" "$3" } +sep() +{ + printf "\e[2m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\e[0m\n" +} + say() { log "$fg_yellow" • "$@"