mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 06:52:22 +03:00
b82e818f5c
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.
50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
TEST_DESCRIPTION="test that ExecStopPost= is always run"
|
|
|
|
. $TEST_BASE_DIR/test-functions
|
|
|
|
test_setup() {
|
|
create_empty_image_rootdir
|
|
|
|
(
|
|
LOG_LEVEL=5
|
|
eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
|
|
|
|
setup_basic_environment
|
|
|
|
mask_supporting_services
|
|
|
|
# setup policy for Type=dbus test
|
|
mkdir -p $initdir/etc/dbus-1/system.d
|
|
cat > $initdir/etc/dbus-1/system.d/systemd.test.ExecStopPost.conf <<EOF
|
|
<?xml version="1.0"?>
|
|
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
|
|
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
|
|
<busconfig>
|
|
<policy user="root">
|
|
<allow own="systemd.test.ExecStopPost"/>
|
|
</policy>
|
|
</busconfig>
|
|
EOF
|
|
|
|
# setup the testsuite service
|
|
cat >$initdir/etc/systemd/system/testsuite.service <<EOF
|
|
[Unit]
|
|
Description=Testsuite service
|
|
Before=getty-pre.target
|
|
Wants=getty-pre.target
|
|
|
|
[Service]
|
|
ExecStart=/testsuite.sh
|
|
Type=oneshot
|
|
EOF
|
|
cp testsuite.sh $initdir/
|
|
|
|
setup_testsuite
|
|
)
|
|
setup_nspawn_root
|
|
}
|
|
|
|
do_test "$@"
|