mirror of
https://github.com/systemd/systemd.git
synced 2024-11-23 02:03:37 +08:00
TEST-03-JOBS: add test case for #34758
This commit is contained in:
parent
7a13937007
commit
9b42c58a2b
8
test/TEST-03-JOBS/TEST-03-JOBS.units/counter.service
Normal file
8
test/TEST-03-JOBS/TEST-03-JOBS.units/counter.service
Normal file
@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Unit]
|
||||
BindsTo=sleep-infinity-restart-normal.service sleep-infinity-restart-direct.service
|
||||
After=sleep-infinity-restart-normal.service sleep-infinity-restart-direct.service
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
ExecStart=/usr/lib/systemd/tests/testdata/TEST-03-JOBS.units/counter.sh
|
13
test/TEST-03-JOBS/TEST-03-JOBS.units/counter.sh
Executable file
13
test/TEST-03-JOBS/TEST-03-JOBS.units/counter.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -eux
|
||||
|
||||
COUNTER_FILE=/tmp/test-03-restart-counter
|
||||
|
||||
COUNT="$(<"$COUNTER_FILE")"
|
||||
: $(( COUNT++ ))
|
||||
echo "$COUNT" >"$COUNTER_FILE"
|
||||
|
||||
systemd-notify --ready
|
||||
|
||||
sleep infinity
|
@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=touch /tmp/test-03-restart-failure-flag
|
@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Unit]
|
||||
OnFailure=restart-on-failure.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sleep infinity
|
||||
Restart=on-failure
|
||||
RestartMode=direct
|
@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Unit]
|
||||
OnFailure=restart-on-failure.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sleep infinity
|
||||
Restart=on-failure
|
||||
RestartMode=normal
|
@ -156,6 +156,7 @@ assert_rc 3 systemctl --quiet is-active propagatestopto-and-pullin.target
|
||||
assert_rc 3 systemctl --quiet is-active sleep-infinity-simple.service
|
||||
|
||||
# Test restart mode direct
|
||||
|
||||
systemctl start succeeds-on-restart-restartdirect.target
|
||||
assert_rc 0 systemctl --quiet is-active succeeds-on-restart-restartdirect.target
|
||||
|
||||
@ -168,6 +169,30 @@ assert_rc 3 systemctl --quiet is-active succeeds-on-restart.target
|
||||
systemctl start fails-on-restart.target || :
|
||||
assert_rc 3 systemctl --quiet is-active fails-on-restart.target
|
||||
|
||||
COUNTER_FILE=/tmp/test-03-restart-counter
|
||||
export FAILURE_FLAG_FILE=/tmp/test-03-restart-failure-flag
|
||||
|
||||
assert_rc 3 systemctl --quiet is-active sleep-infinity-restart-normal.service
|
||||
assert_rc 3 systemctl --quiet is-active sleep-infinity-restart-direct.service
|
||||
assert_rc 3 systemctl --quiet is-active counter.service
|
||||
echo 0 >"$COUNTER_FILE"
|
||||
|
||||
systemctl start counter.service
|
||||
assert_eq "$(cat "$COUNTER_FILE")" "1"
|
||||
systemctl --quiet is-active sleep-infinity-restart-normal.service
|
||||
systemctl --quiet is-active sleep-infinity-restart-direct.service
|
||||
systemctl --quiet is-active counter.service
|
||||
|
||||
systemctl kill --signal=KILL sleep-infinity-restart-direct.service
|
||||
systemctl --quiet is-active counter.service
|
||||
assert_eq "$(cat "$COUNTER_FILE")" "1"
|
||||
[[ ! -f "$FAILURE_FLAG_FILE" ]]
|
||||
|
||||
systemctl kill --signal=KILL sleep-infinity-restart-normal.service
|
||||
timeout 10 bash -c 'while [[ ! -f $FAILURE_FLAG_FILE ]]; do sleep .5; done'
|
||||
timeout 10 bash -c 'while ! systemctl --quiet is-active counter.service; do sleep .5; done'
|
||||
assert_eq "$(cat "$COUNTER_FILE")" "2"
|
||||
|
||||
# Test shortcutting auto restart
|
||||
|
||||
export UNIT_NAME="TEST-03-JOBS-shortcut-restart.service"
|
||||
|
Loading…
Reference in New Issue
Block a user