diff options
author | Anita Zhang <the.anitazha@gmail.com> | 2019-10-18 18:36:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-18 18:36:48 -0700 |
commit | d2fc7d22cbe4f72c5993cd02b414aad60674c7f7 (patch) | |
tree | 56eaaf78875195a6a2409dc482dae82d9c54f99c | |
parent | 02baf239d87295362740d961765091b778795573 (diff) | |
parent | dfec314d41159117c28dffc2b980d3bdd67c3dcb (diff) | |
download | systemd-d2fc7d22cbe4f72c5993cd02b414aad60674c7f7.tar.gz |
Merge pull request #13795 from ddstreet/test-41
WIP: test: debug TEST-41 failure on Ubuntu CI
-rw-r--r-- | test/TEST-41-ONESHOT-RESTART/blacklist-ubuntu-ci | 4 | ||||
-rwxr-xr-x | test/TEST-41-ONESHOT-RESTART/testsuite.sh | 26 |
2 files changed, 21 insertions, 9 deletions
diff --git a/test/TEST-41-ONESHOT-RESTART/blacklist-ubuntu-ci b/test/TEST-41-ONESHOT-RESTART/blacklist-ubuntu-ci deleted file mode 100644 index 22b34bbb0c..0000000000 --- a/test/TEST-41-ONESHOT-RESTART/blacklist-ubuntu-ci +++ /dev/null @@ -1,4 +0,0 @@ -This appears to be failing on Ubuntu CI due to short sleep duration -waiting for the service-restarts to complete, but doubling the -sleep from 5 to 10 seconds didn't appear to help, so let's blacklist -this on Ubuntu CI while debugging the test failure. diff --git a/test/TEST-41-ONESHOT-RESTART/testsuite.sh b/test/TEST-41-ONESHOT-RESTART/testsuite.sh index f7423dbf9a..4465614ff3 100755 --- a/test/TEST-41-ONESHOT-RESTART/testsuite.sh +++ b/test/TEST-41-ONESHOT-RESTART/testsuite.sh @@ -2,14 +2,19 @@ set -ex set -o pipefail +# wait this many secs for each test service to succeed in what is being tested +MAX_SECS=60 + systemd-analyze log-level debug systemd-analyze log-target console -# These three commands should succeed. +# test one: Restart=on-failure should restart the service ! systemd-run --unit=one -p Type=oneshot -p Restart=on-failure /bin/bash -c "exit 1" -sleep 5 - +for ((secs=0; secs<$MAX_SECS; secs++)); do + [[ "$(systemctl show one.service -p NRestarts --value)" -le 0 ]] || break + sleep 1 +done if [[ "$(systemctl show one.service -p NRestarts --value)" -le 0 ]]; then exit 1 fi @@ -18,10 +23,21 @@ TMP_FILE="/test-41-oneshot-restart-test" touch $TMP_FILE -! systemd-run --unit=two -p StartLimitBurst=3 -p Type=oneshot -p Restart=on-failure -p ExecStart="/bin/bash -c \"printf a >> $TMP_FILE\"" /bin/bash -c "exit 1" +# test two: make sure StartLimitBurst correctly limits the number of restarts +# and restarts execution of the unit from the first ExecStart= +! systemd-run --unit=two -p StartLimitIntervalSec=120 -p StartLimitBurst=3 -p Type=oneshot -p Restart=on-failure -p ExecStart="/bin/bash -c \"printf a >> $TMP_FILE\"" /bin/bash -c "exit 1" -sleep 5 +# wait for at least 3 restarts +for ((secs=0; secs<$MAX_SECS; secs++)); do + [[ $(cat $TMP_FILE) != "aaa" ]] || break + sleep 1 +done +if [[ $(cat $TMP_FILE) != "aaa" ]]; then + exit 1 +fi +# wait for 5 more seconds to make sure there aren't excess restarts +sleep 5 if [[ $(cat $TMP_FILE) != "aaa" ]]; then exit 1 fi |