mirror of
https://github.com/systemd/systemd.git
synced 2024-10-30 14:55:37 +03:00
c84d1c9822
Let's keep the debug logs in the journal, while logging only
testsute-*.sh stdout/stderr to the console (ba7abf7
). This should make
the test output log a bit more readable and potentially the tests itself
a bit faster by avoiding console oversaturation.
Also, it should significantly reduce the size of artifacts kept by CIs.
57 lines
1.5 KiB
Bash
Executable File
57 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
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
|
|
|
|
# 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" \
|
|
&& { echo 'unexpected success'; exit 1; }
|
|
|
|
for ((secs = 0; secs < MAX_SECS; secs++)); do
|
|
[[ "$(systemctl show one.service -P NRestarts)" -le 0 ]] || break
|
|
sleep 1
|
|
done
|
|
if [[ "$(systemctl show one.service -P NRestarts)" -le 0 ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
TMP_FILE="/tmp/test-41-oneshot-restart-test"
|
|
|
|
: >$TMP_FILE
|
|
|
|
# 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" \
|
|
&& { echo 'unexpected success'; exit 1; }
|
|
|
|
# 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
|
|
|
|
systemd-analyze log-level info
|
|
|
|
echo OK >/testok
|
|
|
|
exit 0
|