mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +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.
66 lines
2.3 KiB
Bash
Executable File
66 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
systemd-analyze log-level debug
|
|
|
|
# Create a binary for which execve() will fail
|
|
touch /tmp/brokenbinary
|
|
chmod +x /tmp/brokenbinary
|
|
|
|
# These three commands should succeed.
|
|
systemd-run --unit=one -p Type=simple /bin/sleep infinity
|
|
systemd-run --unit=two -p Type=simple -p User=idontexist /bin/sleep infinity
|
|
systemd-run --unit=three -p Type=simple /tmp/brokenbinary
|
|
|
|
# And now, do the same with Type=exec, where the latter two should fail
|
|
systemd-run --unit=four -p Type=exec /bin/sleep infinity
|
|
systemd-run --unit=five -p Type=exec -p User=idontexist /bin/sleep infinity && { echo 'unexpected success'; exit 1; }
|
|
systemd-run --unit=six -p Type=exec /tmp/brokenbinary && { echo 'unexpected success'; exit 1; }
|
|
|
|
systemd-run --unit=seven -p KillSignal=SIGTERM -p RestartKillSignal=SIGINT -p Type=exec /bin/sleep infinity
|
|
# Both TERM and SIGINT happen to have the same number on all architectures
|
|
test "$(systemctl show --value -p KillSignal seven.service)" -eq 15
|
|
test "$(systemctl show --value -p RestartKillSignal seven.service)" -eq 2
|
|
|
|
systemctl restart seven.service
|
|
systemctl stop seven.service
|
|
|
|
# For issue #20933
|
|
|
|
# Should work normally
|
|
busctl call \
|
|
org.freedesktop.systemd1 /org/freedesktop/systemd1 \
|
|
org.freedesktop.systemd1.Manager StartTransientUnit \
|
|
"ssa(sv)a(sa(sv))" test-20933-ok.service replace 1 \
|
|
ExecStart "a(sasb)" 1 \
|
|
/usr/bin/sleep 2 /usr/bin/sleep 1 true \
|
|
0
|
|
|
|
# DBus call should fail but not crash systemd
|
|
busctl call \
|
|
org.freedesktop.systemd1 /org/freedesktop/systemd1 \
|
|
org.freedesktop.systemd1.Manager StartTransientUnit \
|
|
"ssa(sv)a(sa(sv))" test-20933-bad.service replace 1 \
|
|
ExecStart "a(sasb)" 1 \
|
|
/usr/bin/sleep 0 true \
|
|
0 && { echo 'unexpected success'; exit 1; }
|
|
|
|
# Same but with the empty argv in the middle
|
|
busctl call \
|
|
org.freedesktop.systemd1 /org/freedesktop/systemd1 \
|
|
org.freedesktop.systemd1.Manager StartTransientUnit \
|
|
"ssa(sv)a(sa(sv))" test-20933-bad-middle.service replace 1 \
|
|
ExecStart "a(sasb)" 3 \
|
|
/usr/bin/sleep 2 /usr/bin/sleep 1 true \
|
|
/usr/bin/sleep 0 true \
|
|
/usr/bin/sleep 2 /usr/bin/sleep 1 true \
|
|
0 && { echo 'unexpected success'; exit 1; }
|
|
|
|
systemd-analyze log-level info
|
|
|
|
echo OK >/testok
|
|
|
|
exit 0
|