diff --git a/test/TEST-07-PID1/TEST-07-PID1.service b/test/TEST-07-PID1/TEST-07-PID1.service index 53dd54cc45..f2c8697e5b 100644 --- a/test/TEST-07-PID1/TEST-07-PID1.service +++ b/test/TEST-07-PID1/TEST-07-PID1.service @@ -3,7 +3,6 @@ Description=TEST-07-PID1 Wants=basic.target multi-user.target After=basic.target -Before=getty-pre.target [Service] Type=oneshot diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service index 3be8ef5059..3189a2484a 100644 --- a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service @@ -5,7 +5,6 @@ Description=TEST-16-EXTEND-TIMEOUT Wants=basic.target multi-user.target After=basic.target -Before=getty-pre.target Wants=success-all.service Wants=success-start.service diff --git a/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service b/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service index 1b1dd98418..bed66fa003 100644 --- a/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service +++ b/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service @@ -3,7 +3,6 @@ Description=TEST-44-LOG-NAMESPACE Wants=basic.target multi-user.target systemd-journald@foobar.socket systemd-journald-varlink@foobar.socket After=basic.target systemd-journald@foobar.socket systemd-journald-varlink@foobar.socket -Before=getty-pre.target [Service] ExecStartPre=rm -f /failed /testok diff --git a/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service b/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service index 1467f7152a..7b47b61893 100644 --- a/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service +++ b/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service @@ -3,7 +3,6 @@ Description=TEST-69-SHUTDOWN Wants=basic.target multi-user.target After=basic.target -Before=getty-pre.target ConditionPathExists=/usr/bin/python3 diff --git a/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service b/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service index f3892a7777..d9c4529412 100644 --- a/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service +++ b/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service @@ -4,7 +4,6 @@ Description=TEST-82-SOFTREBOOT DefaultDependencies=no Wants=basic.target multi-user.target After=basic.target -Before=getty-pre.target [Service] Type=oneshot diff --git a/test/integration-test-setup.sh b/test/integration-test-setup.sh index c67f938acf..e09e0dddef 100755 --- a/test/integration-test-setup.sh +++ b/test/integration-test-setup.sh @@ -5,6 +5,8 @@ set -o pipefail case "$1" in setup) + busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager SetShowStatus s no + if [[ -f "$STATE_DIRECTORY/inprogress" ]]; then exit 0 fi @@ -46,6 +48,8 @@ case "$1" in touch "$STATE_DIRECTORY/inprogress" ;; finalize) + busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager SetShowStatus s auto + # If we're rebooting, the test does a reboot as part of its execution and we shouldn't remove /inprogress. if ! [[ "$(systemctl list-jobs)" =~ reboot.target|kexec.target|soft-reboot.target ]]; then rm -f "$STATE_DIRECTORY/inprogress" diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py index a87b49bd8b..55eca9f75a 100755 --- a/test/integration-test-wrapper.py +++ b/test/integration-test-wrapper.py @@ -395,7 +395,7 @@ def main() -> None: shell = bool(int(os.getenv('TEST_SHELL', '0'))) summary = Summary.get(args) - if shell and not sys.stderr.isatty(): + if shell and not sys.stdin.isatty(): print( '--interactive must be passed to meson test to use TEST_SHELL=1', file=sys.stderr, @@ -443,7 +443,7 @@ def main() -> None: journal_file.unlink(missing_ok=True) - if not sys.stderr.isatty(): + if not sys.stdin.isatty(): dropin += textwrap.dedent( """ [Unit] @@ -454,11 +454,22 @@ def main() -> None: dropin += textwrap.dedent( """ [Unit] - Wants=multi-user.target + Wants=multi-user.target getty-pre.target + Before=getty-pre.target + + [Service] + StandardInput=tty + StandardOutput=inherit + StandardError=inherit + TTYReset=yes + TTYVHangup=yes + IgnoreSIGPIPE=no + # bash ignores SIGTERM + KillSignal=SIGHUP """ ) - if sys.stderr.isatty(): + if sys.stdin.isatty(): dropin += textwrap.dedent( """ [Service] @@ -489,7 +500,7 @@ def main() -> None: '--credential', f'systemd.extra-unit.emergency-exit.service={shlex.quote(EMERGENCY_EXIT_SERVICE)}', # noqa: E501 '--credential', f'systemd.unit-dropin.emergency.target={shlex.quote(EMERGENCY_EXIT_DROPIN)}', ] - if not sys.stderr.isatty() + if not sys.stdin.isatty() else [] ), '--credential', f'systemd.unit-dropin.{args.unit}={shlex.quote(dropin)}', @@ -514,13 +525,13 @@ def main() -> None: 'systemd.crash_action=poweroff', 'loglevel=6', ] - if not sys.stderr.isatty() + if not sys.stdin.isatty() else [] ), ] ), - '--credential', f"journal.storage={'persistent' if sys.stderr.isatty() else args.storage}", - *(['--runtime-build-sources=no', '--register=no'] if not sys.stderr.isatty() else []), + '--credential', f"journal.storage={'persistent' if sys.stdin.isatty() else args.storage}", + *(['--runtime-build-sources=no', '--register=no'] if not sys.stdin.isatty() else []), 'vm' if args.vm or os.getuid() != 0 or os.getenv('TEST_PREFER_QEMU', '0') == '1' else 'boot', ] # fmt: skip diff --git a/test/test.service.in b/test/test.service.in index 790c513da4..77ddb8541b 100644 --- a/test/test.service.in +++ b/test/test.service.in @@ -3,7 +3,6 @@ Description=%N Wants=basic.target network.target @wants@ After=basic.target network.target @after@ -Before=getty-pre.target [Service] ExecStartPre=rm -f /failed /testok