mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
test: new, verify that a run task can call initctl
Follow-up to #362 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
@@ -37,6 +37,7 @@ EXTRA_DIST += ready-serv.sh
|
||||
EXTRA_DIST += restart-self.sh
|
||||
EXTRA_DIST += runlevel.sh
|
||||
EXTRA_DIST += run-restart-forever.sh
|
||||
EXTRA_DIST += run-task-tricks.sh
|
||||
EXTRA_DIST += start-stop-service.sh
|
||||
EXTRA_DIST += start-stop-service-sub-config.sh
|
||||
EXTRA_DIST += start-kill-service.sh
|
||||
@@ -77,6 +78,7 @@ TESTS += ready-serv.sh
|
||||
TESTS += restart-self.sh
|
||||
TESTS += runlevel.sh
|
||||
TESTS += run-restart-forever.sh
|
||||
TESTS += run-task-tricks.sh
|
||||
TESTS += start-stop-service.sh
|
||||
TESTS += start-stop-service-sub-config.sh
|
||||
TESTS += start-kill-service.sh
|
||||
|
||||
+13
-5
@@ -52,6 +52,11 @@ assert_new_pid()
|
||||
assert "Finit has registered new PID" "$(texec initctl |grep $1 | awk '{print $1;}')" -eq "$(texec cat $2)"
|
||||
}
|
||||
|
||||
assert_pidiff()
|
||||
{
|
||||
assert "PID has changed (old PID $2)" "$(texec initctl |awk -v svc="$1" '$0 ~ svc {print $1}')" -ne "$2"
|
||||
}
|
||||
|
||||
assert_restarts()
|
||||
{
|
||||
assert "Finit has registered restarts" "$(texec initctl status "$2" | awk '/Restarts/{print $3;}')" -ge "$1"
|
||||
@@ -292,14 +297,17 @@ else
|
||||
fi
|
||||
|
||||
set +u
|
||||
rm -f "$SYSROOT$FINIT_CONF"
|
||||
touch "$SYSROOT$FINIT_CONF"
|
||||
|
||||
if [ -n "$BOOTSTRAP" ]; then
|
||||
say "Setting up bootstrap tasks ..."
|
||||
echo "$BOOTSTRAP" > "$SYSROOT$FINIT_CONF"
|
||||
say "Setting up bootstrap tasks ..."
|
||||
echo "$BOOTSTRAP" >> "$SYSROOT$FINIT_CONF"
|
||||
fi
|
||||
if [ -n "$RCLOCAL" ]; then
|
||||
say "Setting up /etc/rc.local ..."
|
||||
echo "$RCLOCAL" > "$SYSROOT/etc/rc.local"
|
||||
chmod +x "$SYSROOT/etc/rc.local"
|
||||
say "Setting up /etc/rc.local ..."
|
||||
echo "$RCLOCAL" > "$SYSROOT/etc/rc.local"
|
||||
chmod +x "$SYSROOT/etc/rc.local"
|
||||
fi
|
||||
set -u
|
||||
|
||||
|
||||
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Verifies that a run task can call initctl at bootstrap and runlevel 2,
|
||||
# without blocking, performing serveral tasks:
|
||||
#
|
||||
# 1. Query running services
|
||||
# 2. Stop/Start a running service
|
||||
# 3. Restart a service
|
||||
#
|
||||
|
||||
TEST_DIR=$(dirname "$0")
|
||||
#DEBUG=1
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
BOOTSTRAP="run [S] /bin/ready.sh -- Ready steady go\n\
|
||||
run [S] name:one initctl -- Query status\n\
|
||||
service [S234] /sbin/service.sh -- Background service\n\
|
||||
run [2] name:two initctl stop service.sh -- Stopping service\n\
|
||||
run [3] name:three initctl start service.sh -- Starting service again\n\
|
||||
run [4] name:four initctl restart service.sh -- Restart service"
|
||||
# shellcheck disable=SC2034
|
||||
RCLOCAL="echo \"$0 ==============\" &1>2"
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
. "$TEST_DIR/lib/setup.sh"
|
||||
|
||||
test_setup()
|
||||
{
|
||||
say "Test start $(date)"
|
||||
}
|
||||
|
||||
test_teardown()
|
||||
{
|
||||
say "Test done $(date)"
|
||||
}
|
||||
|
||||
say "$FINIT_CONF:"
|
||||
run "cat $FINIT_CONF"
|
||||
say "/etc/rc.local:"
|
||||
run "cat /etc/rc.local"
|
||||
|
||||
say "Waiting for runlevel 2"
|
||||
sleep 2
|
||||
assert_status "service.sh" "stopped"
|
||||
|
||||
say "Changing to runlevel 3"
|
||||
run "initctl runlevel 3"
|
||||
sleep 2
|
||||
assert_status "service.sh" "running"
|
||||
run "initctl"
|
||||
oldpid=$(texec initctl |awk '/service.sh/{print $1}')
|
||||
|
||||
say "Changing to runlevel 4"
|
||||
run "initctl runlevel 4"
|
||||
sleep 2
|
||||
assert_status "service.sh" "running"
|
||||
assert_pidiff "service.sh" "$oldpid"
|
||||
|
||||
run "initctl"
|
||||
Reference in New Issue
Block a user