Files
systemd/test/units/TEST-07-PID1.socket-on-failure.sh
T
Luca Boccassi e6ee724ac8 test: bump timeout in TEST-07-PID1.socket-on-failure
The timeout is too short so under sanitizers the test sometimes fails:

[ 3502.317855] TEST-07-PID1.sh[16212]: + mkdir -p /tmp/TEST-07-PID1-socket-29942
[ 3502.317855] TEST-07-PID1.sh[16212]: + cat
[ 3502.317855] TEST-07-PID1.sh[16212]: + cat
[ 3502.317855] TEST-07-PID1.sh[16212]: + cat
[ 3502.317855] TEST-07-PID1.sh[16212]: + systemctl start TEST-07-PID1-socket-29942.socket
[ 3502.317855] TEST-07-PID1.sh[16212]: + systemctl is-active TEST-07-PID1-socket-29942.socket
[ 3502.319398] TEST-07-PID1.sh[16221]: active
[ 3502.319758] TEST-07-PID1.sh[16212]: + [[ -S /tmp/TEST-07-PID1-socket-29942/test ]]
[ 3502.319758] TEST-07-PID1.sh[16212]: + systemctl stop TEST-07-PID1-socket-29942.socket
[ 3502.319758] TEST-07-PID1.sh[16212]: + rm /tmp/TEST-07-PID1-socket-29942/test
[ 3502.319758] TEST-07-PID1.sh[16212]: + chattr +i /tmp/TEST-07-PID1-socket-29942
[ 3502.320499] TEST-07-PID1.sh[16227]: + systemctl start TEST-07-PID1-socket-29942.socket
[ 3502.320914] TEST-07-PID1.sh[16228]: Job failed. See "journalctl -xe" for details.
[ 3502.321560] TEST-07-PID1.sh[16212]: + systemctl is-failed TEST-07-PID1-socket-29942.socket
[ 3502.321856] TEST-07-PID1.sh[16230]: failed
[ 3502.322315] TEST-07-PID1.sh[16233]: ++ systemctl show TEST-07-PID1-socket-29942.socket -P SubState
[ 3502.322722] TEST-07-PID1.sh[16212]: + assert_eq failed failed
[ 3502.323111] TEST-07-PID1.sh[16235]: + set +ex
[ 3502.323512] TEST-07-PID1.sh[16212]: + [[ ! -e /tmp/TEST-07-PID1-socket-29942/test ]]
[ 3502.323512] TEST-07-PID1.sh[16212]: + timeout 10 bash -c 'until systemctl is-failed TEST-07-PID1-socket-OnFailure.service; do sleep .5; done'
[ 3502.323949] TEST-07-PID1.sh[16238]: activating
[ 3502.324376] TEST-07-PID1.sh[16241]: activating
[ 3502.324754] TEST-07-PID1.sh[16244]: activating
[ 3502.325164] TEST-07-PID1.sh[16247]: activating
[ 3502.325587] TEST-07-PID1.sh[16250]: activating
[ 3502.325938] TEST-07-PID1.sh[16253]: activating
[ 3502.326393] TEST-07-PID1.sh[16256]: activating
[ 3502.326791] TEST-07-PID1.sh[16259]: activating
[ 3502.327180] TEST-07-PID1.sh[16262]: activating
[ 3502.327558] TEST-07-PID1.sh[16265]: activating
[ 3502.327971] TEST-07-PID1.sh[16268]: activating
[ 3502.328409] TEST-07-PID1.sh[16212]: + at_exit
[ 3502.328409] TEST-07-PID1.sh[16212]: + systemctl stop TEST-07-PID1-socket-29942.socket
[ 3502.328409] TEST-07-PID1.sh[16212]: + rm -f /run/systemd/system/TEST-07-PID1-socket-29942.socket /run/systemd/system/TEST-07-PID1-socket-29942.service /run/systemd/system/TEST-07-PID1-socket-OnFailure.service
[ 3502.328945] TEST-07-PID1.sh[147]: + echo 'Subtest /usr/lib/systemd/tests/testdata/units/TEST-07-PID1.socket-on-failure.sh failed'

Bump from 10s to 60s to try and make it less flaky
2026-05-06 12:04:51 +01:00

74 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
# shellcheck disable=SC2016
set -eux
set -o pipefail
# shellcheck source=test/units/util.sh
. "$(dirname "$0")"/util.sh
UNIT_NAME="TEST-07-PID1-socket-$RANDOM"
at_exit() {
systemctl stop "$UNIT_NAME.socket"
rm -f /run/systemd/system/"$UNIT_NAME".{socket,service} \
/run/systemd/system/TEST-07-PID1-socket-OnFailure.service
}
trap at_exit EXIT
# Test triggering OnFailure= when fails to listen on socket (#35635)
mkdir -p "/tmp/$UNIT_NAME"
cat >/run/systemd/system/"$UNIT_NAME.socket" <<EOF
[Unit]
OnFailure=TEST-07-PID1-socket-OnFailure.service
[Socket]
ListenStream=/tmp/$UNIT_NAME/test
EOF
cat >/run/systemd/system/"$UNIT_NAME.service" <<EOF
[Service]
ExecStart=true
EOF
cat >/run/systemd/system/TEST-07-PID1-socket-OnFailure.service <<EOF
[Service]
Type=oneshot
ExecStart=rmdir /tmp/$UNIT_NAME/test
RemainAfterExit=yes
EOF
systemctl start "$UNIT_NAME.socket"
systemctl is-active "$UNIT_NAME.socket"
[[ -S "/tmp/$UNIT_NAME/test" ]]
systemctl stop "$UNIT_NAME.socket"
rm "/tmp/$UNIT_NAME/test"
chattr +i "/tmp/$UNIT_NAME"
(! systemctl start "$UNIT_NAME.socket")
systemctl is-failed "$UNIT_NAME.socket"
assert_eq "$(systemctl show "$UNIT_NAME.socket" -P SubState)" "failed"
[[ ! -e "/tmp/$UNIT_NAME/test" ]]
timeout --foreground 60 bash -c "until systemctl is-failed TEST-07-PID1-socket-OnFailure.service; do sleep .5; done"
chattr -i "/tmp/$UNIT_NAME"
mkdir "/tmp/$UNIT_NAME/test"
(! systemctl start "$UNIT_NAME.socket")
systemctl is-failed "$UNIT_NAME.socket"
assert_eq "$(systemctl show "$UNIT_NAME.socket" -P SubState)" "failed"
timeout --foreground 60 bash -c "while [[ -d '/tmp/$UNIT_NAME/test' ]]; do sleep .5; done"
[[ ! -e "/tmp/$UNIT_NAME/test" ]]
systemctl is-active TEST-07-PID1-socket-OnFailure.service
systemctl start "$UNIT_NAME.socket"
systemctl is-active "$UNIT_NAME.socket"