]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: make sure our tests get exclusive TTY access
authorLennart Poettering <lennart@poettering.net>
Tue, 19 Nov 2019 17:54:47 +0000 (18:54 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 20 Nov 2019 08:39:54 +0000 (09:39 +0100)
This sould make our test suite a bit more robust if it is slow running.
A few of our test services use StandardOutput=tty or StandardError=tty
in the tests in order to connect test services to the container console.
This gets into conflict with the container getty which wants exclusive
access to the console. Since the container getty is started with
Type=idle it typically gets started after a timeout only if the TTY is
already used, which hence introduces a race: if the test finishes
earlier all is good, if not, then the test gets kicked off the TTY which
then causes bash to abort since it cannot write any error messages
anymore.

Let's fix this hence: all tests that connect to the tty are now
synchronized to getty-pre.target, so they finish before any getty is
started.

test/TEST-20-MAINPIDGAMES/test.sh
test/TEST-22-TMPFILES/testsuite.service
test/TEST-42-EXECSTOPPOST/test.sh

index 0ba30bdb00517a0e38397bdab282edbd95a60b8b..05fa847a656e12b23145f113ecf37f7957b5bdaf 100755 (executable)
@@ -18,6 +18,8 @@ test_setup() {
         cat >$initdir/etc/systemd/system/testsuite.service <<EOF
 [Unit]
 Description=Testsuite service
+Before=getty-pre.target
+Wants=getty-pre.target
 
 [Service]
 ExecStart=/bin/bash -x /testsuite.sh
index a19174e7952872d2cd41aaef1e61a963d3264f76..2f1b15c3ed57690d35e2dafdec7ca235201254a4 100644 (file)
@@ -1,6 +1,8 @@
 [Unit]
 Description=Testsuite service
 After=systemd-tmpfiles-setup.service
+Before=getty-pre.target
+Wants=getty-pre.target
 
 [Service]
 WorkingDirectory=/testsuite
index dd967879cab451453b67b1a360ba04356377e542..865989d001bed4dbc331fd526eaf7edd90fdc034 100755 (executable)
@@ -32,6 +32,8 @@ EOF
         cat >$initdir/etc/systemd/system/testsuite.service <<EOF
 [Unit]
 Description=Testsuite service
+Before=getty-pre.target
+Wants=getty-pre.target
 
 [Service]
 ExecStart=/testsuite.sh