summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRichard Phibel <rphibel@googlemail.com>2022-11-07 17:13:15 +0100
committerLennart Poettering <lennart@poettering.net>2023-01-10 15:16:26 +0100
commitcd48e23f6a33c9acb47a06b99d9bdc84ee42cebe (patch)
tree4c241fe4081efeb70aa6b33ff9a7613b2b0b2720 /test
parent81315baa68c9c8f7f6f5608fa8bc1daebf0618df (diff)
downloadsystemd-cd48e23f6a33c9acb47a06b99d9bdc84ee42cebe.tar.gz
core: add OpenFile setting
Diffstat (limited to 'test')
l---------test/TEST-77-OPENFILE/Makefile1
-rwxr-xr-xtest/TEST-77-OPENFILE/test.sh16
-rw-r--r--test/units/testsuite-77-netcat.service7
-rwxr-xr-xtest/units/testsuite-77-netcat.sh4
-rwxr-xr-xtest/units/testsuite-77-run.sh14
-rw-r--r--test/units/testsuite-77-socket.service9
-rwxr-xr-xtest/units/testsuite-77-socket.sh14
-rw-r--r--test/units/testsuite-77.service10
-rwxr-xr-xtest/units/testsuite-77.sh35
9 files changed, 110 insertions, 0 deletions
diff --git a/test/TEST-77-OPENFILE/Makefile b/test/TEST-77-OPENFILE/Makefile
new file mode 120000
index 0000000000..e9f93b1104
--- /dev/null
+++ b/test/TEST-77-OPENFILE/Makefile
@@ -0,0 +1 @@
+../TEST-01-BASIC/Makefile \ No newline at end of file
diff --git a/test/TEST-77-OPENFILE/test.sh b/test/TEST-77-OPENFILE/test.sh
new file mode 100755
index 0000000000..e4349997a0
--- /dev/null
+++ b/test/TEST-77-OPENFILE/test.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -e
+
+TEST_DESCRIPTION="Openfile tests"
+
+# shellcheck source=test/test-functions
+. "${TEST_BASE_DIR:?}/test-functions"
+
+test_append_files() {
+ local workspace="${1:?}"
+ echo "Open" > "$workspace/test-77-open.dat"
+ echo "File" > "$workspace/test-77-file.dat"
+}
+
+do_test "$@"
diff --git a/test/units/testsuite-77-netcat.service b/test/units/testsuite-77-netcat.service
new file mode 100644
index 0000000000..8ae399a26f
--- /dev/null
+++ b/test/units/testsuite-77-netcat.service
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Unit]
+Description=TEST-77-OPENFILE
+
+[Service]
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=simple
diff --git a/test/units/testsuite-77-netcat.sh b/test/units/testsuite-77-netcat.sh
new file mode 100755
index 0000000000..73b4c8794d
--- /dev/null
+++ b/test/units/testsuite-77-netcat.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+echo "Socket" | nc -lkU /tmp/test.sock
diff --git a/test/units/testsuite-77-run.sh b/test/units/testsuite-77-run.sh
new file mode 100755
index 0000000000..086044a2bc
--- /dev/null
+++ b/test/units/testsuite-77-run.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -eux
+set -o pipefail
+
+# shellcheck source=test/units/assert.sh
+. "$(dirname "$0")"/assert.sh
+
+export SYSTEMD_LOG_LEVEL=debug
+
+assert_eq "$LISTEN_FDS" "1"
+assert_eq "$LISTEN_FDNAMES" "new-file"
+read -r -u 3 text
+assert_eq "$text" "New"
diff --git a/test/units/testsuite-77-socket.service b/test/units/testsuite-77-socket.service
new file mode 100644
index 0000000000..9b6cfc6e6b
--- /dev/null
+++ b/test/units/testsuite-77-socket.service
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Unit]
+Description=TEST-77-OPENFILE
+
+[Service]
+OpenFile=/tmp/test.sock:socket:read-only
+ExecStartPre=rm -f /failed /testok
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
diff --git a/test/units/testsuite-77-socket.sh b/test/units/testsuite-77-socket.sh
new file mode 100755
index 0000000000..0f88a6d835
--- /dev/null
+++ b/test/units/testsuite-77-socket.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -eux
+set -o pipefail
+
+# shellcheck source=test/units/assert.sh
+. "$(dirname "$0")"/assert.sh
+
+export SYSTEMD_LOG_LEVEL=debug
+
+assert_eq "$LISTEN_FDS" "1"
+assert_eq "$LISTEN_FDNAMES" "socket"
+read -r -u 3 text
+assert_eq "$text" "Socket"
diff --git a/test/units/testsuite-77.service b/test/units/testsuite-77.service
new file mode 100644
index 0000000000..6ed8addd77
--- /dev/null
+++ b/test/units/testsuite-77.service
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Unit]
+Description=TEST-77-OPENFILE
+
+[Service]
+OpenFile=/test-77-open.dat:open:read-only
+OpenFile=/test-77-file.dat
+ExecStartPre=rm -f /failed /testok
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
diff --git a/test/units/testsuite-77.sh b/test/units/testsuite-77.sh
new file mode 100755
index 0000000000..2675f054dc
--- /dev/null
+++ b/test/units/testsuite-77.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -eux
+set -o pipefail
+
+# shellcheck source=test/units/assert.sh
+. "$(dirname "$0")"/assert.sh
+
+export SYSTEMD_LOG_LEVEL=debug
+
+assert_eq "$LISTEN_FDS" "2"
+assert_eq "$LISTEN_FDNAMES" "open:test-77-file.dat"
+read -r -u 3 text
+assert_eq "$text" "Open"
+read -r -u 4 text
+assert_eq "$text" "File"
+
+# Test for socket
+systemctl start testsuite-77-netcat.service
+systemctl start testsuite-77-socket.service
+
+# Tests for D-Bus
+diff <(systemctl show -p OpenFile testsuite-77) - <<EOF
+OpenFile=/test-77-open.dat:open:read-only
+OpenFile=/test-77-file.dat
+EOF
+echo "New" > /test-77-new-file.dat
+systemd-run --wait -p OpenFile=/test-77-new-file.dat:new-file:read-only "$(dirname "$0")"/testsuite-77-run.sh
+
+assert_rc 202 systemd-run --wait -p OpenFile=/test-77-new-file.dat:new-file:read-only -p OpenFile=/test-77-mssing-file.dat:missing-file:read-only "$(dirname "$0")"/testsuite-77-run.sh
+
+assert_rc 0 systemd-run --wait -p OpenFile=/test-77-new-file.dat:new-file:read-only -p OpenFile=/test-77-mssing-file.dat:missing-file:read-only,graceful "$(dirname "$0")"/testsuite-77-run.sh
+
+# End
+touch /testok