test: add tests for JoinsNamespaceOf=

To illustrate the current behavior of the dependency.
This commit is contained in:
Yu Watanabe 2023-05-25 06:48:16 +09:00
parent 0f50da0f6b
commit 8493a82d0b
10 changed files with 115 additions and 0 deletions

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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