You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.0 KiB
75 lines
2.0 KiB
6 months ago
|
From 3a2cb37fdbe4e761ae649716f6f8f71feffdd608 Mon Sep 17 00:00:00 2001
|
||
|
From: Lennart Poettering <lennart@poettering.net>
|
||
|
Date: Tue, 3 Jan 2023 12:56:53 +0100
|
||
|
Subject: [PATCH] test: add Type=notify-reload testcase
|
||
|
|
||
|
(cherry picked from commit ee52bbc68f129cfed833990906c0a0a77ee12c42)
|
||
|
|
||
|
Related: RHEL-6090
|
||
|
---
|
||
|
test/units/testsuite-59.sh | 51 ++++++++++++++++++++++++++++++++++++++
|
||
|
1 file changed, 51 insertions(+)
|
||
|
|
||
|
diff --git a/test/units/testsuite-59.sh b/test/units/testsuite-59.sh
|
||
|
index 83db053107..475766a851 100755
|
||
|
--- a/test/units/testsuite-59.sh
|
||
|
+++ b/test/units/testsuite-59.sh
|
||
|
@@ -83,6 +83,57 @@ systemctl start testservice-abort-restart-59.service
|
||
|
systemctl --signal=SIGABRT kill testservice-abort-restart-59.service
|
||
|
wait_on_state_or_fail "testservice-abort-restart-59.service" "failed" "30"
|
||
|
|
||
|
+# Let's now test the notify-reload logic
|
||
|
+
|
||
|
+cat >/run/notify-reload-test.sh <<EOF
|
||
|
+#!/usr/bin/env bash
|
||
|
+set -eux
|
||
|
+set -o pipefail
|
||
|
+
|
||
|
+EXIT_STATUS=88
|
||
|
+LEAVE=0
|
||
|
+
|
||
|
+function reload() {
|
||
|
+ systemd-notify --reloading --status="Adding 11 to exit status"
|
||
|
+ EXIT_STATUS=\$((\$EXIT_STATUS + 11))
|
||
|
+ systemd-notify --ready --status="Back running"
|
||
|
+}
|
||
|
+
|
||
|
+function leave() {
|
||
|
+ systemd-notify --stopping --status="Adding 7 to exit status"
|
||
|
+ EXIT_STATUS=\$((\$EXIT_STATUS + 7))
|
||
|
+ LEAVE=1
|
||
|
+ return 0
|
||
|
+}
|
||
|
+
|
||
|
+trap reload SIGHUP
|
||
|
+trap leave SIGTERM
|
||
|
+
|
||
|
+systemd-notify --ready
|
||
|
+systemd-notify --status="Running now"
|
||
|
+
|
||
|
+while [ \$LEAVE = 0 ] ; do
|
||
|
+ sleep 1
|
||
|
+done
|
||
|
+
|
||
|
+systemd-notify --status="Adding 3 to exit status"
|
||
|
+EXIT_STATUS=\$((\$EXIT_STATUS + 3))
|
||
|
+exit \$EXIT_STATUS
|
||
|
+EOF
|
||
|
+
|
||
|
+chmod +x /run/notify-reload-test.sh
|
||
|
+
|
||
|
+systemd-analyze log-level debug
|
||
|
+
|
||
|
+systemd-run --unit notify-reload-test -p Type=notify-reload -p KillMode=process /run/notify-reload-test.sh
|
||
|
+systemctl reload notify-reload-test
|
||
|
+systemctl stop notify-reload-test
|
||
|
+
|
||
|
+test "$(systemctl show -p ExecMainStatus --value notify-reload-test)" = 109
|
||
|
+
|
||
|
+systemctl reset-failed notify-reload-test
|
||
|
+rm /run/notify-reload-test.sh
|
||
|
+
|
||
|
systemd-analyze log-level info
|
||
|
|
||
|
echo OK >/testok
|