]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
testsuite-77: Fix race condition
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 18 Jan 2023 15:31:35 +0000 (16:31 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 19 Jan 2023 02:11:41 +0000 (02:11 +0000)
Use a socket unit to make sure the socket exists before we start
the client that accesses it.

test/units/testsuite-77-client.sh [moved from test/units/testsuite-77-socket.sh with 100% similarity]
test/units/testsuite-77-netcat.service [deleted file]
test/units/testsuite-77-netcat.sh [deleted file]
test/units/testsuite-77-server.socket [new file with mode: 0644]
test/units/testsuite-77-server@.service [new file with mode: 0644]
test/units/testsuite-77-socket.service [deleted file]
test/units/testsuite-77.sh

diff --git a/test/units/testsuite-77-netcat.service b/test/units/testsuite-77-netcat.service
deleted file mode 100644 (file)
index 8ae399a..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# 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
deleted file mode 100755 (executable)
index 73b4c87..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/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-server.socket b/test/units/testsuite-77-server.socket
new file mode 100644 (file)
index 0000000..4305077
--- /dev/null
@@ -0,0 +1,6 @@
+[Unit]
+Description=TEST-77-OPENFILE server socket
+
+[Socket]
+ListenStream=/tmp/test.sock
+Accept=yes
diff --git a/test/units/testsuite-77-server@.service b/test/units/testsuite-77-server@.service
new file mode 100644 (file)
index 0000000..8e99ac8
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=TEST-77-OPENFILE server
+
+[Service]
+ExecStart=echo "Socket"
+StandardInput=socket
+StandardOutput=socket
diff --git a/test/units/testsuite-77-socket.service b/test/units/testsuite-77-socket.service
deleted file mode 100644 (file)
index 9b6cfc6..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# 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
index 2675f054dc9176a11cf1bbc890edc810dc7ebff8..13db238ba9ce04e407fe0b6f956fbd1802d5c7cd 100755 (executable)
@@ -16,8 +16,11 @@ read -r -u 4 text
 assert_eq "$text" "File"
 
 # Test for socket
-systemctl start testsuite-77-netcat.service
-systemctl start testsuite-77-socket.service
+systemctl start testsuite-77-server.socket
+systemd-run -p OpenFile=/tmp/test.sock:socket:read-only \
+            --wait \
+            --pipe \
+            /usr/lib/systemd/tests/testdata/units/testsuite-77-client.sh
 
 # Tests for D-Bus
 diff <(systemctl show -p OpenFile testsuite-77) - <<EOF