mirror of
https://github.com/troglobit/finit.git
synced 2026-09-30 21:13:01 +07:00
test: new regression test for issue #351
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
@@ -2,6 +2,7 @@ SUBDIRS = lib src
|
||||
|
||||
EXTRA_DIST = skel/bin/busybox-x86_64.sha256 skel/sbin/service.sh skel/etc/env \
|
||||
skel/bin/pre.sh skel/bin/post.sh skel/bin/ready.sh skel/bin/slay \
|
||||
skel/sbin/fail.sh \
|
||||
skel/cdrom/.empty skel/dev/shm/.empty skel/dev/pts/.empty \
|
||||
skel/etc/inittab skel/etc/hostname skel/etc/fstab \
|
||||
skel/etc/init.d/rcS skel/etc/init.d/rcK skel/tmp/.empty \
|
||||
@@ -34,6 +35,7 @@ EXTRA_DIST += pre-post-serv.sh
|
||||
EXTRA_DIST += ready-serv.sh
|
||||
EXTRA_DIST += restart-self.sh
|
||||
EXTRA_DIST += runlevel.sh
|
||||
EXTRA_DIST += run-restart-forever.sh
|
||||
EXTRA_DIST += start-stop-service.sh
|
||||
EXTRA_DIST += start-stop-service-sub-config.sh
|
||||
EXTRA_DIST += start-kill-service.sh
|
||||
@@ -71,6 +73,7 @@ TESTS += pre-post-serv.sh
|
||||
TESTS += ready-serv.sh
|
||||
TESTS += restart-self.sh
|
||||
TESTS += runlevel.sh
|
||||
TESTS += run-restart-forever.sh
|
||||
TESTS += start-stop-service.sh
|
||||
TESTS += start-stop-service-sub-config.sh
|
||||
TESTS += start-kill-service.sh
|
||||
|
||||
@@ -57,6 +57,11 @@ assert_restarts()
|
||||
assert "Finit has registered restarts" "$(texec initctl status "$2" | awk '/Restarts/{print $3;}')" -ge "$1"
|
||||
}
|
||||
|
||||
assert_restart_cnt()
|
||||
{
|
||||
assert "Finit restart cnt $1" "$(texec initctl status "$2" | awk '/Restarts/{print $4;}')" = "($1)"
|
||||
}
|
||||
|
||||
assert_norestart()
|
||||
{
|
||||
assert "Service $1 is stable, no restarts" "$(texec initctl status "$1" | awk '/Restarts/{print $3;}')" -eq "0"
|
||||
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
# Regression test for issue #351 - verify that a dirty run/task in
|
||||
# runlevel S is not restarted forever jus because it exits with a
|
||||
# non-zero error code.
|
||||
set -eu
|
||||
|
||||
#export DEBUG=true
|
||||
TEST_DIR=$(dirname "$0")
|
||||
|
||||
test_setup()
|
||||
{
|
||||
say "Test start $(date)"
|
||||
run "mkdir -p /etc/default"
|
||||
export TEST_TIMEOUT=5
|
||||
}
|
||||
|
||||
test_teardown()
|
||||
{
|
||||
say "Test done $(date)"
|
||||
|
||||
say "Running test teardown."
|
||||
run "rm -f $FINIT_CONF"
|
||||
}
|
||||
|
||||
check_restarts()
|
||||
{
|
||||
assert "serv restarts" "$(texec cat "$1" | awk '{print $1;}')" -ge "$2"
|
||||
}
|
||||
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
. "$TEST_DIR/lib/setup.sh"
|
||||
|
||||
test_one()
|
||||
{
|
||||
num=$1
|
||||
|
||||
say "Reloading Finit ..."
|
||||
run "initctl reload"
|
||||
# run "initctl status fail.sh"
|
||||
|
||||
say "Reloading Finit ..."
|
||||
run "initctl reload"
|
||||
# run "initctl status fail.sh"
|
||||
|
||||
assert_restart_cnt "$num/10" fail.sh
|
||||
}
|
||||
|
||||
sep
|
||||
say "Add stanza to $FINIT_CONF"
|
||||
run "echo 'run fail.sh -- Failure' > $FINIT_RCSD/fail.conf"
|
||||
run "echo 'run initctl touch fail' > $FINIT_RCSD/touch.conf"
|
||||
test_one 2
|
||||
|
||||
sep
|
||||
say "Changing runlevel ..."
|
||||
run "initctl runlevel 3"
|
||||
test_one 4
|
||||
|
||||
return 0
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
# This run/task always fails, it is used by the run-restart-forever test
|
||||
|
||||
echo "Aiiee, I've failed!" >&2
|
||||
exit 1
|
||||
Reference in New Issue
Block a user