diff options
author | Richard Phibel <rphibel@googlemail.com> | 2022-11-07 17:13:15 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-01-10 15:16:26 +0100 |
commit | cd48e23f6a33c9acb47a06b99d9bdc84ee42cebe (patch) | |
tree | 4c241fe4081efeb70aa6b33ff9a7613b2b0b2720 /test | |
parent | 81315baa68c9c8f7f6f5608fa8bc1daebf0618df (diff) | |
download | systemd-cd48e23f6a33c9acb47a06b99d9bdc84ee42cebe.tar.gz |
core: add OpenFile setting
Diffstat (limited to 'test')
l--------- | test/TEST-77-OPENFILE/Makefile | 1 | ||||
-rwxr-xr-x | test/TEST-77-OPENFILE/test.sh | 16 | ||||
-rw-r--r-- | test/units/testsuite-77-netcat.service | 7 | ||||
-rwxr-xr-x | test/units/testsuite-77-netcat.sh | 4 | ||||
-rwxr-xr-x | test/units/testsuite-77-run.sh | 14 | ||||
-rw-r--r-- | test/units/testsuite-77-socket.service | 9 | ||||
-rwxr-xr-x | test/units/testsuite-77-socket.sh | 14 | ||||
-rw-r--r-- | test/units/testsuite-77.service | 10 | ||||
-rwxr-xr-x | test/units/testsuite-77.sh | 35 |
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 |