]> git.ipfire.org Git - thirdparty/systemd.git/commit
test: fix racy machined test
authorLennart Poettering <lennart@poettering.net>
Mon, 17 Feb 2025 10:34:27 +0000 (11:34 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 18 Feb 2025 12:17:54 +0000 (13:17 +0100)
commit1237732041cf66bbf12ecea428aa8e6f4d428ebd
tree2fe4eeabf122a05ab0e97c046339063465cb2591
parente27749501b5cb5aa9eeb7a210b26b9e2fe6f29af
test: fix racy machined test

Previously, one of the io.systemd.Machine.Open() tests would invoke a
command line via machined, and then check if it ran properly. This was
implemented in a racy fashion: the client side would immediately close
the pty fd allocated for the operation, thus triggering an immediate
SIGHUP on the other side. Now, depending whether this client was quicker
in closing or the server was quicker in executing the command line this
was a race.

Fix this comprehensively: let's first wait for the varlink operation to
complete via the new "systemd-notify --fork" logic (because varlinkctl
sends out READY=1 once handing off to --exec). Secondly let's use
varlinkctl's --exec logic to invoke a process which keeps open the open
pty until we kill it (we just use sleep for that).

(Also add some more tests for the varlinkctl --exec stuff)
test/units/TEST-13-NSPAWN.machined.sh
test/units/TEST-74-AUX-UTILS.varlinkctl.sh