mirror of
https://github.com/troglobit/finit.git
synced 2026-10-11 17:02:42 +07:00
test: new test
New test adds /bin/fail.sh to verify that a failing pre:script (that also takes too long to run) is detected: exit code and timeout. Ensure existing test pass full path to /sbin/fail.sh script. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
+25
-23
@@ -1,28 +1,28 @@
|
||||
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/usr/share/runparts/ref.log \
|
||||
skel/usr/share/runparts/sysv.log \
|
||||
skel/etc/rc.d/foo.sh skel/etc/rc.d/S01abc.sh \
|
||||
skel/etc/rc.d/test.sh skel/etc/rc.d/S02def.sh \
|
||||
skel/etc/rcS.d/foo.sh skel/etc/rcS.d/test.sh \
|
||||
skel/etc/rcS.d/S01abc.sh skel/etc/rcS.d/S02def.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 \
|
||||
skel/etc/finit.d/.empty skel/etc/finit.d/available/.empty \
|
||||
skel/etc/finit.d/enabled/.empty \
|
||||
skel/sbin/task.sh skel/bin/crasher.sh \
|
||||
skel/etc/init.d/S01-service.sh skel/etc/init.d/S02-serv.sh \
|
||||
skel/proc/.empty skel/root/.empty skel/run/.empty \
|
||||
skel/sbin/chrootsetup.sh skel/srv/.empty skel/sys/.empty \
|
||||
skel/usr/bin/.empty skel/usr/lib/.empty skel/usr/sbin/.empty \
|
||||
skel/home/.empty skel/usr/games/.empty skel/usr/src/.empty \
|
||||
skel/usr/share/.empty skel/usr/include/.empty \
|
||||
skel/usr/local/games/.empty skel/usr/local/sbin/.empty \
|
||||
skel/usr/local/share/.empty skel/usr/local/src/.empty \
|
||||
skel/usr/local/lib/.empty skel/usr/local/bin/.empty \
|
||||
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/usr/share/runparts/ref.log \
|
||||
skel/usr/share/runparts/sysv.log \
|
||||
skel/etc/rc.d/foo.sh skel/etc/rc.d/S01abc.sh \
|
||||
skel/etc/rc.d/test.sh skel/etc/rc.d/S02def.sh \
|
||||
skel/etc/rcS.d/foo.sh skel/etc/rcS.d/test.sh \
|
||||
skel/etc/rcS.d/S01abc.sh skel/etc/rcS.d/S02def.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 \
|
||||
skel/etc/finit.d/.empty skel/etc/finit.d/available/.empty \
|
||||
skel/etc/finit.d/enabled/.empty \
|
||||
skel/sbin/task.sh skel/bin/crasher.sh skel/bin/fail.sh \
|
||||
skel/etc/init.d/S01-service.sh skel/etc/init.d/S02-serv.sh \
|
||||
skel/proc/.empty skel/root/.empty skel/run/.empty \
|
||||
skel/sbin/chrootsetup.sh skel/srv/.empty skel/sys/.empty \
|
||||
skel/usr/bin/.empty skel/usr/lib/.empty skel/usr/sbin/.empty \
|
||||
skel/home/.empty skel/usr/games/.empty skel/usr/src/.empty \
|
||||
skel/usr/share/.empty skel/usr/include/.empty \
|
||||
skel/usr/local/games/.empty skel/usr/local/sbin/.empty \
|
||||
skel/usr/local/share/.empty skel/usr/local/src/.empty \
|
||||
skel/usr/local/lib/.empty skel/usr/local/bin/.empty \
|
||||
skel/usr/local/etc/.empty skel/var/.empty
|
||||
|
||||
EXTRA_DIST += setup-sysroot.sh
|
||||
@@ -40,6 +40,7 @@ EXTRA_DIST += initctl-status-subset.sh
|
||||
EXTRA_DIST += notify.sh
|
||||
EXTRA_DIST += pidfile.sh
|
||||
EXTRA_DIST += pre-post-serv.sh
|
||||
EXTRA_DIST += pre-fail.sh
|
||||
EXTRA_DIST += process-depends.sh
|
||||
EXTRA_DIST += rclocal.sh
|
||||
EXTRA_DIST += ready-serv.sh
|
||||
@@ -86,6 +87,7 @@ TESTS += initctl-status-subset.sh
|
||||
TESTS += notify.sh
|
||||
TESTS += pidfile.sh
|
||||
TESTS += pre-post-serv.sh
|
||||
TESTS += pre-fail.sh
|
||||
TESTS += process-depends.sh
|
||||
TESTS += rclocal.sh
|
||||
TESTS += ready-serv.sh
|
||||
|
||||
@@ -84,6 +84,14 @@ assert_status()
|
||||
assert "Service $service $status" "$(texec initctl -p status "$service" | awk '/Status/{print $3}')" = "$status"
|
||||
}
|
||||
|
||||
# Used by, e.g., pre-fail.sh
|
||||
assert_status_full()
|
||||
{
|
||||
service=$1; shift
|
||||
status="$*"
|
||||
assert "Service $service status is: $status" "$(texec initctl -p status "$service" | awk '/Status/{sub("^ *Status : ", ""); print}')" = "$status"
|
||||
}
|
||||
|
||||
assert_cond()
|
||||
{
|
||||
cond=$1
|
||||
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
# Verify Finit:
|
||||
# - does not start main process when pre:script fails
|
||||
# - times out and kills long running pre:script
|
||||
set -eu
|
||||
|
||||
#export DEBUG=true
|
||||
TEST_DIR=$(dirname "$0")
|
||||
# shellcheck source=/dev/null
|
||||
. "$TEST_DIR/lib/setup.sh"
|
||||
|
||||
vrfy()
|
||||
{
|
||||
nm=serv
|
||||
tmo=$1
|
||||
msg=$2
|
||||
err=$3
|
||||
|
||||
run "echo 'service [2345] pre:$tmo,fail.sh $nm -n -- $msg' > $FINIT_CONF"
|
||||
run "initctl reload"
|
||||
|
||||
retry "assert_status_full $nm 'crashed $err'" 50
|
||||
}
|
||||
|
||||
#run "initctl debug"
|
||||
|
||||
vrfy 5 "Failing pre: script" "(code=exited, status=42)"
|
||||
vrfy 1 "Timeout pre: script" "(code=signal, status=9/KILL)"
|
||||
@@ -42,8 +42,8 @@ test_one()
|
||||
|
||||
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"
|
||||
run "echo 'run /sbin/fail.sh -- Failure' > $FINIT_RCSD/fail.conf"
|
||||
run "echo 'run initctl touch fail' > $FINIT_RCSD/touch.conf"
|
||||
test_one 2
|
||||
|
||||
sep
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
sleep 2
|
||||
exit 42
|
||||
Reference in New Issue
Block a user