209 lines
8.0 KiB
Diff
209 lines
8.0 KiB
Diff
From c8d082c62be5c14f74270739144bc8e49360ba47 Mon Sep 17 00:00:00 2001
|
|
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
|
Date: Thu, 25 May 2023 06:48:16 +0900
|
|
Subject: [PATCH] test: add tests for JoinsNamespaceOf=
|
|
|
|
To illustrate the current behavior of the dependency.
|
|
|
|
(cherry picked from commit 8493a82d0bd5915eb951512cff5e570c43386283)
|
|
|
|
Related: #2213521
|
|
---
|
|
.../testsuite-23-joins-namespace-of-1.service | 7 +++++
|
|
.../testsuite-23-joins-namespace-of-2.service | 10 ++++++
|
|
.../testsuite-23-joins-namespace-of-3.service | 10 ++++++
|
|
.../testsuite-23-joins-namespace-of-4.service | 10 ++++++
|
|
.../testsuite-23-joins-namespace-of-5.service | 6 ++++
|
|
.../testsuite-23-joins-namespace-of-6.service | 10 ++++++
|
|
.../testsuite-23-joins-namespace-of-7.service | 11 +++++++
|
|
.../testsuite-23-joins-namespace-of-8.service | 9 ++++++
|
|
.../testsuite-23-joins-namespace-of-9.service | 11 +++++++
|
|
test/units/testsuite-23.JoinsNamespaceOf.sh | 31 +++++++++++++++++++
|
|
10 files changed, 115 insertions(+)
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-1.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-5.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-8.service
|
|
create mode 100644 test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service
|
|
create mode 100755 test/units/testsuite-23.JoinsNamespaceOf.sh
|
|
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-1.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-1.service
|
|
new file mode 100644
|
|
index 0000000000..9919a9fa82
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-1.service
|
|
@@ -0,0 +1,7 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Service]
|
|
+Type=notify
|
|
+NotifyAccess=all
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=/bin/bash -c 'touch /tmp/shared-private-file && systemd-notify --ready && sleep infinity'
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service
|
|
new file mode 100644
|
|
index 0000000000..36b4c272fd
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service
|
|
@@ -0,0 +1,10 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Unit]
|
|
+JoinsNamespaceOf=testsuite-23-joins-namespace-of-1.service
|
|
+
|
|
+[Service]
|
|
+Type=oneshot
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=test -e /tmp/shared-private-file
|
|
+ExecStart=touch /tmp/hoge
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service
|
|
new file mode 100644
|
|
index 0000000000..9094445020
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service
|
|
@@ -0,0 +1,10 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Unit]
|
|
+JoinsNamespaceOf=testsuite-23-joins-namespace-of-1.service
|
|
+
|
|
+[Service]
|
|
+Type=oneshot
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=test -e /tmp/shared-private-file
|
|
+ExecStart=test -e /tmp/hoge
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service
|
|
new file mode 100644
|
|
index 0000000000..5e823a1778
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service
|
|
@@ -0,0 +1,10 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Unit]
|
|
+JoinsNamespaceOf=testsuite-23-joins-namespace-of-5.service
|
|
+
|
|
+[Service]
|
|
+Type=notify
|
|
+NotifyAccess=all
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=/bin/bash -c 'touch /tmp/shared-private-file && systemd-notify --ready && sleep infinity'
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-5.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-5.service
|
|
new file mode 100644
|
|
index 0000000000..80594ccba2
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-5.service
|
|
@@ -0,0 +1,6 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Service]
|
|
+Type=oneshot
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=test ! -e /tmp/shared-private-file
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service
|
|
new file mode 100644
|
|
index 0000000000..bbbfd7c67d
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service
|
|
@@ -0,0 +1,10 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Unit]
|
|
+JoinsNamespaceOf=testsuite-23-joins-namespace-of-8.service
|
|
+
|
|
+[Service]
|
|
+Type=notify
|
|
+NotifyAccess=all
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=/bin/bash -c 'touch /tmp/shared-private-file-x && systemd-notify --ready && sleep infinity'
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service
|
|
new file mode 100644
|
|
index 0000000000..6c7bbdb097
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service
|
|
@@ -0,0 +1,11 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Unit]
|
|
+JoinsNamespaceOf=testsuite-23-joins-namespace-of-8.service
|
|
+
|
|
+[Service]
|
|
+Type=oneshot
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=test ! -e /tmp/shared-private-file-x
|
|
+ExecStart=test ! -e /tmp/shared-private-file-y
|
|
+ExecStart=touch /tmp/hoge
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-8.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-8.service
|
|
new file mode 100644
|
|
index 0000000000..f3ec0668de
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-8.service
|
|
@@ -0,0 +1,9 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Service]
|
|
+Type=notify
|
|
+NotifyAccess=all
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStartPre=test ! -e /tmp/shared-private-file-x
|
|
+ExecStartPre=test ! -e /tmp/hoge
|
|
+ExecStart=/bin/bash -c 'touch /tmp/shared-private-file-y && systemd-notify --ready && sleep infinity'
|
|
diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service b/test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service
|
|
new file mode 100644
|
|
index 0000000000..01de7f9054
|
|
--- /dev/null
|
|
+++ b/test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service
|
|
@@ -0,0 +1,11 @@
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+[Unit]
|
|
+JoinsNamespaceOf=testsuite-23-joins-namespace-of-8.service
|
|
+
|
|
+[Service]
|
|
+Type=oneshot
|
|
+MountAPIVFS=yes
|
|
+PrivateTmp=yes
|
|
+ExecStart=test ! -e /tmp/shared-private-file-x
|
|
+ExecStart=test -e /tmp/shared-private-file-y
|
|
+ExecStart=test ! -e /tmp/hoge
|
|
diff --git a/test/units/testsuite-23.JoinsNamespaceOf.sh b/test/units/testsuite-23.JoinsNamespaceOf.sh
|
|
new file mode 100755
|
|
index 0000000000..68ba465072
|
|
--- /dev/null
|
|
+++ b/test/units/testsuite-23.JoinsNamespaceOf.sh
|
|
@@ -0,0 +1,31 @@
|
|
+#!/usr/bin/env bash
|
|
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
+
|
|
+set -eux
|
|
+set -o pipefail
|
|
+
|
|
+# Test JoinsNamespaceOf= with PrivateTmp=yes
|
|
+
|
|
+systemd-analyze log-level debug
|
|
+systemd-analyze log-target journal
|
|
+
|
|
+# simple case
|
|
+systemctl start testsuite-23-joins-namespace-of-1.service
|
|
+systemctl start testsuite-23-joins-namespace-of-2.service
|
|
+systemctl start testsuite-23-joins-namespace-of-3.service
|
|
+systemctl stop testsuite-23-joins-namespace-of-1.service
|
|
+
|
|
+# inverse dependency
|
|
+systemctl start testsuite-23-joins-namespace-of-4.service
|
|
+systemctl start testsuite-23-joins-namespace-of-5.service
|
|
+systemctl stop testsuite-23-joins-namespace-of-4.service
|
|
+
|
|
+# transitive dependency
|
|
+systemctl start testsuite-23-joins-namespace-of-6.service
|
|
+systemctl start testsuite-23-joins-namespace-of-7.service
|
|
+systemctl start testsuite-23-joins-namespace-of-8.service
|
|
+systemctl start testsuite-23-joins-namespace-of-9.service
|
|
+systemctl stop testsuite-23-joins-namespace-of-6.service
|
|
+systemctl stop testsuite-23-joins-namespace-of-8.service
|
|
+
|
|
+systemd-analyze log-level info
|