summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-04-29 04:39:46 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2023-04-29 09:10:28 +0900
commit843cb225ad88c6d90c8992b0a6ed895bb38e4b77 (patch)
tree0ff820901c379c79e05743b8913c373abdcf9178 /test
parent2e701a7946b492cc5f1e56307c4e94110b4c650c (diff)
downloadsystemd-843cb225ad88c6d90c8992b0a6ed895bb38e4b77.tar.gz
test: add tests for "systemctl stop" vs triggering by path unit
Diffstat (limited to 'test')
-rw-r--r--test/testsuite-63.units/test63-issue-24577-dep.service4
-rw-r--r--test/testsuite-63.units/test63-issue-24577.path3
-rw-r--r--test/testsuite-63.units/test63-issue-24577.service8
-rwxr-xr-xtest/units/testsuite-63.sh39
4 files changed, 54 insertions, 0 deletions
diff --git a/test/testsuite-63.units/test63-issue-24577-dep.service b/test/testsuite-63.units/test63-issue-24577-dep.service
new file mode 100644
index 0000000000..e332ea474e
--- /dev/null
+++ b/test/testsuite-63.units/test63-issue-24577-dep.service
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Service]
+Type=oneshot
+ExecStart=bash -c 'sleep infinity'
diff --git a/test/testsuite-63.units/test63-issue-24577.path b/test/testsuite-63.units/test63-issue-24577.path
new file mode 100644
index 0000000000..80ba1dbe16
--- /dev/null
+++ b/test/testsuite-63.units/test63-issue-24577.path
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Path]
+PathExists=/tmp/hoge
diff --git a/test/testsuite-63.units/test63-issue-24577.service b/test/testsuite-63.units/test63-issue-24577.service
new file mode 100644
index 0000000000..568518bbf6
--- /dev/null
+++ b/test/testsuite-63.units/test63-issue-24577.service
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Unit]
+Requires=test63-issue-24577-dep.service
+After=test63-issue-24577-dep.service
+
+[Service]
+Type=oneshot
+ExecStart=bash -c 'sleep infinity'
diff --git a/test/units/testsuite-63.sh b/test/units/testsuite-63.sh
index 7ee7fc1513..591e6d3104 100755
--- a/test/units/testsuite-63.sh
+++ b/test/units/testsuite-63.sh
@@ -3,6 +3,9 @@
set -ex
set -o pipefail
+# shellcheck source=test/units/assert.sh
+. "$(dirname "$0")"/assert.sh
+
systemctl log-level debug
# Test that a path unit continuously triggering a service that fails condition checks eventually fails with
@@ -41,6 +44,42 @@ systemctl stop test63-glob.path test63-glob.service
test "$(busctl --json=short get-property org.freedesktop.systemd1 /org/freedesktop/systemd1/unit/test63_2dglob_2eservice org.freedesktop.systemd1.Unit ActivationDetails)" = '{"type":"a(ss)","data":[]}'
+# tests for issue https://github.com/systemd/systemd/issues/24577#issuecomment-1522628906
+rm -f /tmp/hoge
+systemctl start test63-issue-24577.path
+systemctl status -n 0 test63-issue-24577.path
+systemctl status -n 0 test63-issue-24577.service || :
+systemctl list-jobs
+output=$(systemctl list-jobs --no-legend)
+assert_not_in "test63-issue-24577.service" "$output"
+assert_not_in "test63-issue-24577-dep.service" "$output"
+
+touch /tmp/hoge
+systemctl status -n 0 test63-issue-24577.path
+systemctl status -n 0 test63-issue-24577.service || :
+systemctl list-jobs
+output=$(systemctl list-jobs --no-legend)
+assert_in "test63-issue-24577.service" "$output"
+assert_in "test63-issue-24577-dep.service" "$output"
+
+# even if the service is stopped, it will be soon retriggered.
+systemctl stop test63-issue-24577.service
+systemctl status -n 0 test63-issue-24577.path
+systemctl status -n 0 test63-issue-24577.service || :
+systemctl list-jobs
+output=$(systemctl list-jobs --no-legend)
+assert_in "test63-issue-24577.service" "$output"
+assert_in "test63-issue-24577-dep.service" "$output"
+
+rm -f /tmp/hoge
+systemctl stop test63-issue-24577.service
+systemctl status -n 0 test63-issue-24577.path
+systemctl status -n 0 test63-issue-24577.service || :
+systemctl list-jobs
+output=$(systemctl list-jobs --no-legend)
+assert_not_in "test63-issue-24577.service" "$output"
+assert_in "test63-issue-24577-dep.service" "$output"
+
systemctl log-level info
echo OK >/testok