mirror of
https://github.com/troglobit/finit.git
synced 2026-11-02 13:20:32 +00:00
test: update test to use kill(1) replacement slay.sh
The slay script checks for common errors and gives some logs and status of Finit when something goes wrong. Helps detect issue #226 when the start-kill-service.sh test runs at 100000 laps. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
e01836c506
commit
094e00d405
2 files changed
+50
-4
No files matched your search
Executable
+47
@@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
nm=$1
|
||||||
|
|
||||||
|
# shellcheck disable=SC2046
|
||||||
|
getpid()
|
||||||
|
{
|
||||||
|
initctl status "$1" |awk '/PID :/{ print $3; }'
|
||||||
|
}
|
||||||
|
|
||||||
|
pid=$(getpid "$nm")
|
||||||
|
if [ -f oldpid ]; then
|
||||||
|
oldpid=$(cat oldpid)
|
||||||
|
if [ "$oldpid" = "$pid" ]; then
|
||||||
|
echo "Looks bad, wait for it ..."
|
||||||
|
sleep 3
|
||||||
|
pid=$(getpid "$nm")
|
||||||
|
if [ "$oldpid" = "$pid" ]; then
|
||||||
|
echo "Finit did not deregister old PID $oldpid vs $pid"
|
||||||
|
initctl status "$nm"
|
||||||
|
ps
|
||||||
|
echo "Reloading finit ..."
|
||||||
|
initctl reload
|
||||||
|
sleep 1
|
||||||
|
initctl status "$nm"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$pid" -le 1 ]; then
|
||||||
|
sleep 3
|
||||||
|
pid=$(getpid "$nm")
|
||||||
|
if [ "$pid" -le 1 ]; then
|
||||||
|
echo "Got a bad PID: $pid, aborting ..."
|
||||||
|
ps
|
||||||
|
sleep 1
|
||||||
|
initctl status "$nm"
|
||||||
|
ps
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$pid" > oldpid
|
||||||
|
|
||||||
|
#echo "PID $pid, kill -9 ..."
|
||||||
|
kill -9 "$pid"
|
||||||
@@ -19,7 +19,9 @@ test_teardown() {
|
|||||||
|
|
||||||
say "Test start $(date)"
|
say "Test start $(date)"
|
||||||
|
|
||||||
|
cp "$TEST_DIR"/common/slay.sh "$TENV_ROOT"/test_assets/
|
||||||
cp "$TEST_DIR"/common/service.sh "$TENV_ROOT"/test_assets/
|
cp "$TEST_DIR"/common/service.sh "$TENV_ROOT"/test_assets/
|
||||||
|
rm "$TENV_ROOT"/oldpid
|
||||||
|
|
||||||
say "Add service stanza in $FINIT_CONF"
|
say "Add service stanza in $FINIT_CONF"
|
||||||
texec sh -c "echo 'service [2345] respawn log /test_assets/service.sh -- Test service' > $FINIT_CONF"
|
texec sh -c "echo 'service [2345] respawn log /test_assets/service.sh -- Test service' > $FINIT_CONF"
|
||||||
@@ -37,10 +39,7 @@ laps=1000
|
|||||||
while [ $i -lt $laps ]; do
|
while [ $i -lt $laps ]; do
|
||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
say "Lap $i/$laps, killing service ..." # we have this, no sleep needed
|
say "Lap $i/$laps, killing service ..." # we have this, no sleep needed
|
||||||
# texec sh -c "echo \"PID is \$(initctl status service.sh |awk '/PID : /{ print \$3; }')\"; echo \"PID file says \$(cat /run/service.pid)\"; kill -9 \$(cat /run/service.pid)"
|
texec sh -c "/test_assets/slay.sh service.sh"
|
||||||
#texec sh -c "initctl status service.sh"
|
|
||||||
#texec sh -c "initctl signal service.sh KILL"
|
|
||||||
texec sh -c "kill -9 \$(cat /run/service.pid)"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
retry 'assert_new_pid service.sh /run/service.pid'
|
retry 'assert_new_pid service.sh /run/service.pid'
|
||||||
|
|||||||
Reference in new issue
Block a user