mirror of
https://github.com/troglobit/finit.git
synced 2026-10-02 05:52:48 +07: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:
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)"
|
||||
|
||||
cp "$TEST_DIR"/common/slay.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"
|
||||
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
|
||||
i=$((i + 1))
|
||||
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 "initctl status service.sh"
|
||||
#texec sh -c "initctl signal service.sh KILL"
|
||||
texec sh -c "kill -9 \$(cat /run/service.pid)"
|
||||
texec sh -c "/test_assets/slay.sh service.sh"
|
||||
done
|
||||
|
||||
retry 'assert_new_pid service.sh /run/service.pid'
|
||||
|
||||
Reference in New Issue
Block a user