test/devmon.sh: new test

Issue #185

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2022-12-19 17:20:21 +01:00
parent 17c69fef3d
commit f98be8540f
3 changed files with 74 additions and 0 deletions
+2
View File
@@ -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
Executable
+67
View File
@@ -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
+5
View File
@@ -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" • "$@"