mirror of
https://github.com/troglobit/finit.git
synced 2026-09-30 21:13:01 +07:00
test: Extend depserv test with per-service reload, fix slay race
Verify that 'initctl reload foo' properly triggers dependent services by checking that bar gets a new PID after the reload. Also change the second test case from service/foo/running to service/foo/ready which is the actual condition set by pidfile.so. Fix a race in slay where the target process could exit between the PID lookup and kill -9, causing spurious test failures in tight kill loops (e.g., start-kill-service.sh). Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
+11
-2
@@ -5,6 +5,7 @@
|
||||
# - bar must not start until foo is ready
|
||||
# - bar must be stopped when foo goes down
|
||||
# - bar must be restarted when foo is restarted
|
||||
# - bar must be restarted when foo is reloaded (per-service reload)
|
||||
#
|
||||
# Regression test bug #314, that bar is not in a restart loop when foo
|
||||
# is stopped. Also, verify that changing between runlevels, where foo
|
||||
@@ -49,6 +50,13 @@ test_one()
|
||||
run "initctl status"
|
||||
assert "bar is restarted" "$(texec initctl |grep bar | awk '{print $1;}')" != "$pid"
|
||||
|
||||
say "Verify bar is restarted when foo is reloaded (per-service) ..."
|
||||
retry 'assert_status "bar" "running"' 5 1
|
||||
pid=$(texec initctl |grep bar | awk '{print $1;}')
|
||||
run "initctl reload foo"
|
||||
retry 'assert_status "bar" "running"' 5 1
|
||||
assert "bar is restarted on reload" "$(texec initctl |grep bar | awk '{print $1;}')" != "$pid"
|
||||
|
||||
# Wait for spice to be stolen by the Harkonnen
|
||||
sleep 3
|
||||
# bar should now have detected the loss of spice and be in restart
|
||||
@@ -61,8 +69,9 @@ test_one()
|
||||
assert_status "bar" "waiting"
|
||||
}
|
||||
|
||||
run "initctl debug"
|
||||
sep
|
||||
test_one "pid/foo"
|
||||
sep
|
||||
run "initctl debug"
|
||||
test_one "service/foo/running"
|
||||
#run "initctl debug"
|
||||
test_one "service/foo/ready"
|
||||
|
||||
+1
-1
@@ -52,4 +52,4 @@ done
|
||||
echo "$pid" > /tmp/oldpid
|
||||
|
||||
#echo "PID $pid, kill -9 ..."
|
||||
kill -9 "$pid"
|
||||
kill -9 "$pid" 2>/dev/null || true
|
||||
|
||||
@@ -325,6 +325,12 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (melange) {
|
||||
mine(melange);
|
||||
vanish = -2;
|
||||
}
|
||||
|
||||
if (do_pidfile > 0)
|
||||
pidfile(NULL);
|
||||
reloading = 0;
|
||||
|
||||
Reference in New Issue
Block a user