summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrantisek Sumsal <frantisek@sumsal.cz>2023-05-16 19:26:42 +0200
committerFrantisek Sumsal <frantisek@sumsal.cz>2023-05-16 22:43:52 +0200
commitfb03fea2a277620e82f1744f3d52d9fb7fa8de49 (patch)
tree888b5c662bc4b5f6e17c54fb883862f183ad0cf9
parent3999ea001a70c8efc48115737e9c5b3c03d3640f (diff)
downloadsystemd-fb03fea2a277620e82f1744f3d52d9fb7fa8de49.tar.gz
test: merge TEST-56-EXIT-TYPE into TEST-19-CGROUP
And clean it up a bit.
l---------test/TEST-56-EXIT-TYPE/Makefile1
-rwxr-xr-xtest/TEST-56-EXIT-TYPE/test.sh14
-rwxr-xr-xtest/units/testsuite-19.ExitType-cgroup.sh102
-rw-r--r--test/units/testsuite-56.service6
-rwxr-xr-xtest/units/testsuite-56.sh78
5 files changed, 102 insertions, 99 deletions
diff --git a/test/TEST-56-EXIT-TYPE/Makefile b/test/TEST-56-EXIT-TYPE/Makefile
deleted file mode 120000
index e9f93b1104..0000000000
--- a/test/TEST-56-EXIT-TYPE/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../TEST-01-BASIC/Makefile \ No newline at end of file
diff --git a/test/TEST-56-EXIT-TYPE/test.sh b/test/TEST-56-EXIT-TYPE/test.sh
deleted file mode 100755
index 37475e817e..0000000000
--- a/test/TEST-56-EXIT-TYPE/test.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-TEST_DESCRIPTION="test ExitType=cgroup"
-
-# shellcheck source=test/test-functions
-. "${TEST_BASE_DIR:?}/test-functions"
-
-if [[ "$(get_cgroup_hierarchy)" != unified ]]; then
- echo "This test requires unified cgroup hierarchy, skipping..."
- exit 0
-fi
-
-do_test "$@"
diff --git a/test/units/testsuite-19.ExitType-cgroup.sh b/test/units/testsuite-19.ExitType-cgroup.sh
new file mode 100755
index 0000000000..cd221d74ef
--- /dev/null
+++ b/test/units/testsuite-19.ExitType-cgroup.sh
@@ -0,0 +1,102 @@
+#!/usr/bin/env bash
+set -eux
+
+# Test ExitType=cgroup
+
+# shellcheck source=test/units/util.sh
+. "$(dirname "$0")"/util.sh
+
+if [[ "$(get_cgroup_hierarchy)" != unified ]]; then
+ echo "Skipping $0 as we're not running with the unified cgroup hierarchy"
+ exit 0
+fi
+
+systemd-analyze log-level debug
+
+# Multiple level process tree, parent process stays up
+cat >/tmp/test19-exit-cgroup.sh <<EOF
+#!/usr/bin/env bash
+set -eux
+
+# process tree: systemd -> sleep
+sleep infinity &
+disown
+
+# process tree: systemd -> bash -> bash -> sleep
+((sleep infinity); true) &
+
+systemd-notify --ready
+
+# Run the stop/kill command
+\$1 &
+
+# process tree: systemd -> bash -> sleep
+sleep infinity
+EOF
+chmod +x /tmp/test19-exit-cgroup.sh
+
+# service should be stopped cleanly
+systemd-run --wait \
+ --unit=one \
+ --property="Type=notify" \
+ --property="ExitType=cgroup" \
+ /tmp/test19-exit-cgroup.sh 'systemctl stop one'
+
+# same thing with a truthy exec condition
+systemd-run --wait \
+ --unit=two \
+ --property="Type=notify" \
+ --property="ExitType=cgroup" \
+ --property="ExecCondition=true" \
+ /tmp/test19-exit-cgroup.sh 'systemctl stop two'
+
+# false exec condition: systemd-run should exit immediately with status code: 1
+(! systemd-run --wait \
+ --unit=three \
+ --property="Type=notify" \
+ --property="ExitType=cgroup" \
+ --property="ExecCondition=false" \
+ /tmp/test19-exit-cgroup.sh)
+
+# service should exit uncleanly (main process exits with SIGKILL)
+(! systemd-run --wait \
+ --unit=four \
+ --property="Type=notify" \
+ --property="ExitType=cgroup" \
+ /tmp/test19-exit-cgroup.sh 'systemctl kill --signal 9 four')
+
+
+# Multiple level process tree, parent process exits quickly
+cat >/tmp/test19-exit-cgroup-parentless.sh <<EOF
+#!/usr/bin/env bash
+set -eux
+
+# process tree: systemd -> sleep
+sleep infinity &
+
+# process tree: systemd -> bash -> sleep
+((sleep infinity); true) &
+
+systemd-notify --ready
+
+# Run the stop/kill command after this bash process exits
+(sleep 1; \$1) &
+EOF
+chmod +x /tmp/test19-exit-cgroup-parentless.sh
+
+# service should be stopped cleanly
+systemd-run --wait \
+ --unit=five \
+ --property="Type=notify" \
+ --property="ExitType=cgroup" \
+ /tmp/test19-exit-cgroup-parentless.sh 'systemctl stop five'
+
+# service should still exit cleanly despite SIGKILL (the main process already exited cleanly)
+systemd-run --wait \
+ --unit=six \
+ --property="Type=notify" \
+ --property="ExitType=cgroup" \
+ /tmp/test19-exit-cgroup-parentless.sh 'systemctl kill --signal 9 six'
+
+
+systemd-analyze log-level info
diff --git a/test/units/testsuite-56.service b/test/units/testsuite-56.service
deleted file mode 100644
index d8ad589ca0..0000000000
--- a/test/units/testsuite-56.service
+++ /dev/null
@@ -1,6 +0,0 @@
-[Unit]
-Description=TEST-56-EXIT-TYPE
-
-[Service]
-ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
-Type=oneshot
diff --git a/test/units/testsuite-56.sh b/test/units/testsuite-56.sh
deleted file mode 100755
index f81c6ddf1f..0000000000
--- a/test/units/testsuite-56.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env bash
-set -eux
-
-systemd-analyze log-level debug
-
-# Multiple level process tree, parent process stays up
-cat >/tmp/test56-exit-cgroup.sh <<EOF
-#!/usr/bin/env bash
-set -eux
-
-# process tree: systemd -> sleep
-sleep infinity &
-disown
-
-# process tree: systemd -> bash -> bash -> sleep
-((sleep infinity); true) &
-
-systemd-notify --ready
-
-# Run the stop/kill command
-\$1 &
-
-# process tree: systemd -> bash -> sleep
-sleep infinity
-EOF
-chmod +x /tmp/test56-exit-cgroup.sh
-
-# service should be stopped cleanly
-systemd-run --wait --unit=one -p Type=notify -p ExitType=cgroup \
- /tmp/test56-exit-cgroup.sh 'systemctl stop one'
-
-# same thing with a truthy exec condition
-systemd-run --wait --unit=two -p Type=notify -p ExitType=cgroup \
- -p ExecCondition=true \
- /tmp/test56-exit-cgroup.sh 'systemctl stop two'
-
-# false exec condition: systemd-run should exit immediately with status code: 1
-(! systemd-run --wait --unit=three -p Type=notify -p ExitType=cgroup \
- -p ExecCondition=false \
- /tmp/test56-exit-cgroup.sh)
-
-# service should exit uncleanly (main process exits with SIGKILL)
-(! systemd-run --wait --unit=four -p Type=notify -p ExitType=cgroup \
- /tmp/test56-exit-cgroup.sh 'systemctl kill --signal 9 four')
-
-
-# Multiple level process tree, parent process exits quickly
-cat >/tmp/test56-exit-cgroup-parentless.sh <<EOF
-#!/usr/bin/env bash
-set -eux
-
-# process tree: systemd -> sleep
-sleep infinity &
-
-# process tree: systemd -> bash -> sleep
-((sleep infinity); true) &
-
-systemd-notify --ready
-
-# Run the stop/kill command after this bash process exits
-(sleep 1; \$1) &
-EOF
-chmod +x /tmp/test56-exit-cgroup-parentless.sh
-
-# service should be stopped cleanly
-systemd-run --wait --unit=five -p Type=notify -p ExitType=cgroup \
- /tmp/test56-exit-cgroup-parentless.sh 'systemctl stop five'
-
-# service should still exit cleanly despite SIGKILL (the main process already exited cleanly)
-systemd-run --wait --unit=six -p Type=notify -p ExitType=cgroup \
- /tmp/test56-exit-cgroup-parentless.sh 'systemctl kill --signal 9 six'
-
-
-systemd-analyze log-level info
-
-echo OK >/testok
-
-exit 0