mirror of
https://github.com/troglobit/finit.git
synced 2026-10-31 13:00:32 +00: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:
1 parent
4701edef4c
commit
443700a88e
3 files changed
+74
-5
No files matched your search
@@ -37,6 +37,7 @@ EXTRA_DIST += ready-serv.sh
|
|||||||
EXTRA_DIST += restart-self.sh
|
EXTRA_DIST += restart-self.sh
|
||||||
EXTRA_DIST += runlevel.sh
|
EXTRA_DIST += runlevel.sh
|
||||||
EXTRA_DIST += run-restart-forever.sh
|
EXTRA_DIST += run-restart-forever.sh
|
||||||
|
EXTRA_DIST += run-task-tricks.sh
|
||||||
EXTRA_DIST += start-stop-service.sh
|
EXTRA_DIST += start-stop-service.sh
|
||||||
EXTRA_DIST += start-stop-service-sub-config.sh
|
EXTRA_DIST += start-stop-service-sub-config.sh
|
||||||
EXTRA_DIST += start-kill-service.sh
|
EXTRA_DIST += start-kill-service.sh
|
||||||
@@ -77,6 +78,7 @@ TESTS += ready-serv.sh
|
|||||||
TESTS += restart-self.sh
|
TESTS += restart-self.sh
|
||||||
TESTS += runlevel.sh
|
TESTS += runlevel.sh
|
||||||
TESTS += run-restart-forever.sh
|
TESTS += run-restart-forever.sh
|
||||||
|
TESTS += run-task-tricks.sh
|
||||||
TESTS += start-stop-service.sh
|
TESTS += start-stop-service.sh
|
||||||
TESTS += start-stop-service-sub-config.sh
|
TESTS += start-stop-service-sub-config.sh
|
||||||
TESTS += start-kill-service.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 "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_restarts()
|
||||||
{
|
{
|
||||||
assert "Finit has registered restarts" "$(texec initctl status "$2" | awk '/Restarts/{print $3;}')" -ge "$1"
|
assert "Finit has registered restarts" "$(texec initctl status "$2" | awk '/Restarts/{print $3;}')" -ge "$1"
|
||||||
@@ -292,14 +297,17 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
set +u
|
set +u
|
||||||
|
rm -f "$SYSROOT$FINIT_CONF"
|
||||||
|
touch "$SYSROOT$FINIT_CONF"
|
||||||
|
|
||||||
if [ -n "$BOOTSTRAP" ]; then
|
if [ -n "$BOOTSTRAP" ]; then
|
||||||
say "Setting up bootstrap tasks ..."
|
say "Setting up bootstrap tasks ..."
|
||||||
echo "$BOOTSTRAP" > "$SYSROOT$FINIT_CONF"
|
echo "$BOOTSTRAP" >> "$SYSROOT$FINIT_CONF"
|
||||||
fi
|
fi
|
||||||
if [ -n "$RCLOCAL" ]; then
|
if [ -n "$RCLOCAL" ]; then
|
||||||
say "Setting up /etc/rc.local ..."
|
say "Setting up /etc/rc.local ..."
|
||||||
echo "$RCLOCAL" > "$SYSROOT/etc/rc.local"
|
echo "$RCLOCAL" > "$SYSROOT/etc/rc.local"
|
||||||
chmod +x "$SYSROOT/etc/rc.local"
|
chmod +x "$SYSROOT/etc/rc.local"
|
||||||
fi
|
fi
|
||||||
set -u
|
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