diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-04-08 01:27:33 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-04-08 20:21:50 +0200 |
commit | 4e20fe27950e14e8a082a74515f347546a9371d0 (patch) | |
tree | 19f7ee8a8f5eb2153539e0655cbeb282837466d3 | |
parent | TEST-42-EXECSTOPPOST: un-invert test (diff) | |
download | systemd-4e20fe27950e14e8a082a74515f347546a9371d0.tar.xz systemd-4e20fe27950e14e8a082a74515f347546a9371d0.zip |
TEST-*: make failure tests actually fail on failure
Here the intent was actually correct, and the tests still pass when the check
is made effective.
-rwxr-xr-x | test/units/testsuite-03.sh | 8 | ||||
-rwxr-xr-x | test/units/testsuite-04.sh | 4 | ||||
-rwxr-xr-x | test/units/testsuite-18.sh | 2 | ||||
-rwxr-xr-x | test/units/testsuite-20.sh | 14 | ||||
-rwxr-xr-x | test/units/testsuite-22.03.sh | 28 | ||||
-rwxr-xr-x | test/units/testsuite-22.08.sh | 6 | ||||
-rwxr-xr-x | test/units/testsuite-23.sh | 4 | ||||
-rwxr-xr-x | test/units/testsuite-25.sh | 16 | ||||
-rwxr-xr-x | test/units/testsuite-26.sh | 4 | ||||
-rwxr-xr-x | test/units/testsuite-33.sh | 8 | ||||
-rwxr-xr-x | test/units/testsuite-34.sh | 9 | ||||
-rwxr-xr-x | test/units/testsuite-39.sh | 4 | ||||
-rwxr-xr-x | test/units/testsuite-41.sh | 11 | ||||
-rwxr-xr-x | test/units/testsuite-42.sh | 18 | ||||
-rwxr-xr-x | test/units/testsuite-54.sh | 10 | ||||
-rwxr-xr-x | test/units/testsuite-56.sh | 12 |
16 files changed, 96 insertions, 62 deletions
diff --git a/test/units/testsuite-03.sh b/test/units/testsuite-03.sh index 85efeeb741..ec731aa11b 100755 --- a/test/units/testsuite-03.sh +++ b/test/units/testsuite-03.sh @@ -19,7 +19,7 @@ systemctl start --job-mode=ignore-dependencies hello END_SEC=$(date -u '+%s') ELAPSED=$(($END_SEC-$START_SEC)) -[ "$ELAPSED" -lt 3 ] +test "$ELAPSED" -lt 3 # sleep should still be running, hello not. systemctl list-jobs > /root/list-jobs.txt @@ -28,11 +28,11 @@ grep 'hello\.service' /root/list-jobs.txt && exit 1 systemctl stop sleep.service hello-after-sleep.target # Some basic testing that --show-transaction does something useful -! systemctl is-active systemd-importd +systemctl is-active systemd-importd && { echo 'unexpected success'; exit 1; } systemctl -T start systemd-importd systemctl is-active systemd-importd systemctl --show-transaction stop systemd-importd -! systemctl is-active systemd-importd +systemctl is-active systemd-importd && { echo 'unexpected success'; exit 1; } # Test for a crash when enqueuing a JOB_NOP when other job already exists systemctl start --no-block hello-after-sleep.target @@ -80,7 +80,7 @@ ELAPSED=$(($END_SEC-$START_SEC)) # wait5fail fails, so systemctl should fail START_SEC=$(date -u '+%s') -! systemctl start --wait wait2.service wait5fail.service || exit 1 +systemctl start --wait wait2.service wait5fail.service && { echo 'unexpected success'; exit 1; } END_SEC=$(date -u '+%s') ELAPSED=$(($END_SEC-$START_SEC)) [[ "$ELAPSED" -ge 5 ]] && [[ "$ELAPSED" -le 7 ]] || exit 1 diff --git a/test/units/testsuite-04.sh b/test/units/testsuite-04.sh index 3dce73b778..f464f61a36 100755 --- a/test/units/testsuite-04.sh +++ b/test/units/testsuite-04.sh @@ -59,8 +59,8 @@ journalctl -b -o export --output-fields=MESSAGE,FOO --output-fields=PRIORITY,MES grep -q '^__CURSOR=' /output grep -q '^MESSAGE=foo$' /output grep -q '^PRIORITY=6$' /output -! grep -q '^FOO=' /output -! grep -q '^SYSLOG_FACILITY=' /output +grep '^FOO=' /output && { echo 'unexpected success'; exit 1; } +grep '^SYSLOG_FACILITY=' /output && { echo 'unexpected success'; exit 1; } # `-b all` negates earlier use of -b (-b and -m are otherwise exclusive) journalctl -b -1 -b all -m > /dev/null diff --git a/test/units/testsuite-18.sh b/test/units/testsuite-18.sh index e471cda51b..d3c2df8101 100755 --- a/test/units/testsuite-18.sh +++ b/test/units/testsuite-18.sh @@ -3,7 +3,7 @@ set -ex set -o pipefail systemd-run --wait -p FailureAction=poweroff true -! systemd-run --wait -p SuccessAction=poweroff false +systemd-run --wait -p SuccessAction=poweroff false && { echo 'unexpected success'; exit 1; } if ! test -f /firstphase ; then echo OK > /firstphase diff --git a/test/units/testsuite-20.sh b/test/units/testsuite-20.sh index d94f6b2afb..0e0feded39 100755 --- a/test/units/testsuite-20.sh +++ b/test/units/testsuite-20.sh @@ -126,8 +126,18 @@ test -f /run/mainpidsh3/pid EOF chmod 755 /dev/shm/test20-mainpid3.sh -# This has to fail, as we shouldn't accept the dangerous PID file, and then inotify-wait on it to be corrected which we never do -! systemd-run --unit=test20-mainpidsh3.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh3 -p PIDFile=/run/mainpidsh3/pid -p DynamicUser=1 -p TimeoutStartSec=2s /dev/shm/test20-mainpid3.sh +# This has to fail, as we shouldn't accept the dangerous PID file, and then +# inotify-wait on it to be corrected which we never do. +systemd-run --unit=test20-mainpidsh3.service \ + -p StandardOutput=tty \ + -p StandardError=tty \ + -p Type=forking \ + -p RuntimeDirectory=mainpidsh3 \ + -p PIDFile=/run/mainpidsh3/pid \ + -p DynamicUser=1 \ + -p TimeoutStartSec=2s \ + /dev/shm/test20-mainpid3.sh \ + && { echo 'unexpected success'; exit 1; } # Test that this failed due to timeout, and not some other error test `systemctl show -P Result test20-mainpidsh3.service` = timeout diff --git a/test/units/testsuite-22.03.sh b/test/units/testsuite-22.03.sh index 5e3b1ead19..c905784bee 100755 --- a/test/units/testsuite-22.03.sh +++ b/test/units/testsuite-22.03.sh @@ -39,7 +39,7 @@ test $(stat -c %U:%G:%a /tmp/f/1) = "daemon:daemon:666" mkfifo /tmp/f/fifo chmod 644 /tmp/f/fifo -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/f/fifo 0666 daemon daemon - This string should not be written EOF @@ -50,7 +50,7 @@ test $(stat -c %U:%G:%a /tmp/f/fifo) = "root:root:644" ln -s missing /tmp/f/dangling ln -s /tmp/file-owned-by-root /tmp/f/symlink -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/f/dangling 0644 daemon daemon - - f /tmp/f/symlink 0644 daemon daemon - - EOF @@ -72,12 +72,12 @@ f /tmp/f/ro-fs/foo 0644 - - - - This string should not be written EOF test -f /tmp/f/ro-fs/foo; test ! -s /tmp/f/ro-fs/foo -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/f/ro-fs/foo 0666 - - - - EOF test $(stat -c %U:%G:%a /tmp/f/fifo) = "root:root:644" -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/f/ro-fs/bar 0644 - - - - EOF test ! -e /tmp/f/ro-fs/bar @@ -87,7 +87,7 @@ mkdir /tmp/f/daemon ln -s /root /tmp/f/daemon/unsafe-symlink chown -R --no-dereference daemon:daemon /tmp/f/daemon -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/f/daemon/unsafe-symlink/exploit 0644 daemon daemon - - EOF test ! -e /tmp/f/daemon/unsafe-symlink/exploit @@ -117,7 +117,7 @@ test $(stat -c %U:%G:%a /tmp/F/truncated-with-content) = "daemon:daemon:666" ### unspecified in the other cases. mkfifo /tmp/F/fifo -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } F /tmp/F/fifo 0644 - - - - EOF @@ -127,7 +127,7 @@ test -p /tmp/F/fifo ln -s missing /tmp/F/dangling ln -s /tmp/file-owned-by-root /tmp/F/symlink -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/F/dangling 0644 daemon daemon - - f /tmp/F/symlink 0644 daemon daemon - - EOF @@ -150,11 +150,11 @@ EOF test -f /tmp/F/ro-fs/foo; test ! -s /tmp/F/ro-fs/foo echo "truncating is not allowed anymore" >/tmp/F/rw-fs/foo -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } F /tmp/F/ro-fs/foo 0644 - - - - EOF -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } F /tmp/F/ro-fs/foo 0644 - - - - This string should not be written EOF test -f /tmp/F/ro-fs/foo @@ -162,13 +162,13 @@ grep -q 'truncating is not allowed' /tmp/F/ro-fs/foo # Trying to change the perms should fail. >/tmp/F/rw-fs/foo -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } F /tmp/F/ro-fs/foo 0666 - - - - EOF test $(stat -c %U:%G:%a /tmp/F/ro-fs/foo) = "root:root:644" ### Try to create a new file. -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } F /tmp/F/ro-fs/bar 0644 - - - - EOF test ! -e /tmp/F/ro-fs/bar @@ -178,7 +178,7 @@ mkdir /tmp/F/daemon ln -s /root /tmp/F/daemon/unsafe-symlink chown -R --no-dereference daemon:daemon /tmp/F/daemon -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } F /tmp/F/daemon/unsafe-symlink/exploit 0644 daemon daemon - - EOF test ! -e /tmp/F/daemon/unsafe-symlink/exploit @@ -195,7 +195,7 @@ EOF test ! -e /tmp/w/unexistent ### no argument given -> fails. -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } w /tmp/w/unexistent 0644 - - - - EOF @@ -231,7 +231,7 @@ mkdir /tmp/w/daemon ln -s /root /tmp/w/daemon/unsafe-symlink chown -R --no-dereference daemon:daemon /tmp/w/daemon -! systemd-tmpfiles --create - <<EOF +systemd-tmpfiles --create - <<EOF && { echo 'unexpected success'; exit 1; } f /tmp/w/daemon/unsafe-symlink/exploit 0644 daemon daemon - - EOF test ! -e /tmp/w/daemon/unsafe-symlink/exploit diff --git a/test/units/testsuite-22.08.sh b/test/units/testsuite-22.08.sh index 242238f92f..01d3bdb50c 100755 --- a/test/units/testsuite-22.08.sh +++ b/test/units/testsuite-22.08.sh @@ -22,9 +22,11 @@ test -d /tmp/root/test2 # Verify the command fails to write to a root-owned subdirectory under an # unprivileged user's directory when it's not part of the prefix, as expected # by the unsafe_transition function. -! echo 'd /tmp/user/root/test' | systemd-tmpfiles --create - +echo 'd /tmp/user/root/test' | systemd-tmpfiles --create - \ + && { echo 'unexpected success'; exit 1; } test ! -e /tmp/user/root/test -! echo 'd /user/root/test' | systemd-tmpfiles --root=/tmp --create - +echo 'd /user/root/test' | systemd-tmpfiles --root=/tmp --create - \ + && { echo 'unexpected success'; exit 1; } test ! -e /tmp/user/root/test # Verify the above works when all user-owned directories are in the prefix. diff --git a/test/units/testsuite-23.sh b/test/units/testsuite-23.sh index 5e2966f848..ebee20a65a 100755 --- a/test/units/testsuite-23.sh +++ b/test/units/testsuite-23.sh @@ -16,8 +16,8 @@ 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 -! systemd-run --unit=six -p Type=exec /tmp/brokenbinary +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 diff --git a/test/units/testsuite-25.sh b/test/units/testsuite-25.sh index 1cec54767e..ef27e2dfbf 100755 --- a/test/units/testsuite-25.sh +++ b/test/units/testsuite-25.sh @@ -35,7 +35,7 @@ cmp /var/tmp/testimage.raw /var/lib/machines/testimage3.raw # Test removal machinectl remove testimage test ! -f /var/lib/machines/testimage.raw -! machinectl image-status testimage +machinectl image-status testimage && { echo 'unexpected success'; exit 1; } # Test export of clone machinectl export-raw testimage3 /var/tmp/testimage3.raw @@ -47,7 +47,7 @@ machinectl rename testimage3 testimage4 test -f /var/lib/machines/testimage4.raw machinectl image-status testimage4 test ! -f /var/lib/machines/testimage3.raw -! machinectl image-status testimage3 +machinectl image-status testimage3 && { echo 'unexpected success'; exit 1; } cmp /var/tmp/testimage.raw /var/lib/machines/testimage4.raw # Test export of rename @@ -58,7 +58,7 @@ rm /var/tmp/testimage4.raw # Test removal machinectl remove testimage4 test ! -f /var/lib/machines/testimage4.raw -! machinectl image-status testimage4 +machinectl image-status testimage4 && { echo 'unexpected success'; exit 1; } # → And now, let's test directory trees ← # @@ -91,7 +91,7 @@ diff -r /var/tmp/scratch/ /var/lib/machines/scratch2 # Test removal machinectl remove scratch test ! -f /var/lib/machines/scratch -! machinectl image-status scratch +machinectl image-status scratchi && { echo 'unexpected success'; exit 1; } # Test clone machinectl clone scratch2 scratch3 @@ -104,20 +104,20 @@ diff -r /var/tmp/scratch/ /var/lib/machines/scratch3 # Test removal machinectl remove scratch2 test ! -f /var/lib/machines/scratch2 -! machinectl image-status scratch2 +machinectl image-status scratch2 && { echo 'unexpected success'; exit 1; } # Test rename machinectl rename scratch3 scratch4 test -d /var/lib/machines/scratch4 machinectl image-status scratch4 test ! -f /var/lib/machines/scratch3 -! machinectl image-status scratch3 +machinectl image-status scratch3 && { echo 'unexpected success'; exit 1; } diff -r /var/tmp/scratch/ /var/lib/machines/scratch4 # Test removal machinectl remove scratch4 test ! -f /var/lib/machines/scratch4 -! machinectl image-status scratch4 +machinectl image-status scratch4 && { echo 'unexpected success'; exit 1; } # Test import-tar hyphen/stdin pipe behavior cat /var/tmp/scratch.tar.gz | machinectl import-tar - scratch5 @@ -136,7 +136,7 @@ rm -rf /var/tmp/scratch # Test removal machinectl remove scratch5 test ! -f /var/lib/machines/scratch5 -! machinectl image-status scratch5 +machinectl image-status scratch5 && { echo 'unexpected success'; exit 1; } echo OK > /testok diff --git a/test/units/testsuite-26.sh b/test/units/testsuite-26.sh index 89c0937c8d..22bd22c2b0 100755 --- a/test/units/testsuite-26.sh +++ b/test/units/testsuite-26.sh @@ -22,8 +22,8 @@ systemctl show-environment | grep -q '^FOO=BAR$' systemctl unset-environment FOO PATH # Check that one is gone and the other reverted to the built-in -! (systemctl show-environment | grep -q '^FOO=$') -! (systemctl show-environment | grep -q '^PATH=.*testaddition$') +systemctl show-environment | grep '^FOO=$' && exit 1 +systemctl show-environment | grep '^PATH=.*testaddition$' && exit 1 systemctl show-environment | grep -q '^PATH=' echo OK > /testok diff --git a/test/units/testsuite-33.sh b/test/units/testsuite-33.sh index 3618bee7fb..d79d054fcd 100755 --- a/test/units/testsuite-33.sh +++ b/test/units/testsuite-33.sh @@ -32,7 +32,7 @@ test -d /var/lib/testservice test -d /var/cache/testservice test -d /var/log/testservice -! systemctl clean testservice +systemctl clean testservice && { echo 'unexpected success'; exit 1; } systemctl stop testservice @@ -107,7 +107,7 @@ test -L /var/lib/testservice test -L /var/cache/testservice test -L /var/log/testservice -! systemctl clean testservice +systemctl clean testservice && { echo 'unexpected success'; exit 1; } systemctl stop testservice @@ -196,7 +196,7 @@ test -d /var/lib/hoge test -d /var/cache/hoge test -d /var/log/hoge -! systemctl clean tmp-hoge.mount +systemctl clean tmp-hoge.mount && { echo 'unexpected success'; exit 1; } test -d /etc/hoge test -d /run/hoge @@ -272,7 +272,7 @@ test -d /var/lib/testsocket test -d /var/cache/testsocket test -d /var/log/testsocket -! systemctl clean testservice.socket +systemctl clean testservice.socket && { echo 'unexpected success'; exit 1; } systemctl stop testservice.socket diff --git a/test/units/testsuite-34.sh b/test/units/testsuite-34.sh index 596fc15ee8..827eafc433 100755 --- a/test/units/testsuite-34.sh +++ b/test/units/testsuite-34.sh @@ -9,7 +9,8 @@ systemd-analyze log-target console systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz touch /var/lib/zzz/test systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz test -f /var/lib/zzz/test -! systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz test -f /var/lib/zzz/test-missing +systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz test -f /var/lib/zzz/test-missing \ + && { echo 'unexpected success'; exit 1; } test -d /var/lib/zzz test ! -L /var/lib/zzz @@ -20,7 +21,8 @@ test ! -f /var/lib/zzz/test-missing # Convert to DynamicUser=1 systemd-run --wait -p DynamicUser=1 -p StateDirectory=zzz test -f /var/lib/zzz/test -! systemd-run --wait -p DynamicUser=1 -p StateDirectory=zzz test -f /var/lib/zzz/test-missing +systemd-run --wait -p DynamicUser=1 -p StateDirectory=zzz test -f /var/lib/zzz/test-missing \ + && { echo 'unexpected success'; exit 1; } test -L /var/lib/zzz test -d /var/lib/private/zzz @@ -31,7 +33,8 @@ test ! -f /var/lib/zzz/test-missing # Convert back systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz test -f /var/lib/zzz/test -! systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz test -f /var/lib/zzz/test-missing +systemd-run --wait -p DynamicUser=0 -p StateDirectory=zzz test -f /var/lib/zzz/test-missing \ + && { echo 'unexpected success'; exit 1; } test -d /var/lib/zzz test ! -L /var/lib/zzz diff --git a/test/units/testsuite-39.sh b/test/units/testsuite-39.sh index eb7363fa6a..0b0cfc5aa5 100755 --- a/test/units/testsuite-39.sh +++ b/test/units/testsuite-39.sh @@ -21,7 +21,7 @@ systemctl daemon-reload systemctl start $SERVICE_NAME systemctl status $SERVICE_NAME # The reload SHOULD fail but SHOULD NOT affect the service state -! systemctl reload $SERVICE_NAME +systemctl reload $SERVICE_NAME && { echo 'unexpected success'; exit 1; } systemctl status $SERVICE_NAME systemctl stop $SERVICE_NAME @@ -39,7 +39,7 @@ systemctl daemon-reload systemctl start $SERVICE_NAME systemctl status $SERVICE_NAME # The reload SHOULD fail but SHOULD NOT affect the service state -! systemctl reload $SERVICE_NAME +systemctl reload $SERVICE_NAME && { echo 'unexpected success'; exit 1; } systemctl status $SERVICE_NAME systemctl stop $SERVICE_NAME diff --git a/test/units/testsuite-41.sh b/test/units/testsuite-41.sh index 81fa1716f1..7caf99be24 100755 --- a/test/units/testsuite-41.sh +++ b/test/units/testsuite-41.sh @@ -9,7 +9,8 @@ systemd-analyze log-level debug systemd-analyze log-target console # 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" +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 @@ -25,7 +26,13 @@ TMP_FILE="/tmp/test-41-oneshot-restart-test" # 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" +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 diff --git a/test/units/testsuite-42.sh b/test/units/testsuite-42.sh index 087e2cb294..155c3c7384 100755 --- a/test/units/testsuite-42.sh +++ b/test/units/testsuite-42.sh @@ -6,13 +6,15 @@ systemd-analyze log-level debug systemd-run --unit=simple1.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=simple -p ExecStopPost='/bin/touch /run/simple1' true test -f /run/simple1 -! systemd-run --unit=simple2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=simple -p ExecStopPost='/bin/touch /run/simple2' false +systemd-run --unit=simple2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=simple -p ExecStopPost='/bin/touch /run/simple2' false \ + && { echo 'unexpected success'; exit 1; } test -f /run/simple2 systemd-run --unit=exec1.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=exec -p ExecStopPost='/bin/touch /run/exec1' sleep 1 test -f /run/exec1 -! systemd-run --unit=exec2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=exec -p ExecStopPost='/bin/touch /run/exec2' sh -c 'sleep 1; false' +systemd-run --unit=exec2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=exec -p ExecStopPost='/bin/touch /run/exec2' sh -c 'sleep 1; false' \ + && { echo 'unexpected success'; exit 1; } test -f /run/exec2 cat > /tmp/forking1.sh <<EOF @@ -44,13 +46,15 @@ systemd-notify MAINPID=\$MAINPID EOF chmod +x /tmp/forking2.sh -! systemd-run --unit=forking2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=forking -p NotifyAccess=exec -p ExecStopPost='/bin/touch /run/forking2' /tmp/forking2.sh +systemd-run --unit=forking2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=forking -p NotifyAccess=exec -p ExecStopPost='/bin/touch /run/forking2' /tmp/forking2.sh \ + && { echo 'unexpected success'; exit 1; } test -f /run/forking2 systemd-run --unit=oneshot1.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=oneshot -p ExecStopPost='/bin/touch /run/oneshot1' true test -f /run/oneshot1 -! systemd-run --unit=oneshot2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=oneshot -p ExecStopPost='/bin/touch /run/oneshot2' false +systemd-run --unit=oneshot2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=oneshot -p ExecStopPost='/bin/touch /run/oneshot2' false \ + && { echo 'unexpected success'; exit 1; } test -f /run/oneshot2 systemd-run --unit=dbus1.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=dbus -p BusName=systemd.test.ExecStopPost -p ExecStopPost='/bin/touch /run/dbus1' \ @@ -73,13 +77,15 @@ chmod +x /tmp/notify1.sh systemd-run --unit=notify1.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=notify -p ExecStopPost='/bin/touch /run/notify1' /tmp/notify1.sh test -f /run/notify1 -! systemd-run --unit=notify2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=notify -p ExecStopPost='/bin/touch /run/notify2' true +systemd-run --unit=notify2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=notify -p ExecStopPost='/bin/touch /run/notify2' true \ + && { echo 'unexpected success'; exit 1; } test -f /run/notify2 systemd-run --unit=idle1.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=idle -p ExecStopPost='/bin/touch /run/idle1' true test -f /run/idle1 -! systemd-run --unit=idle2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=idle -p ExecStopPost='/bin/touch /run/idle2' false +systemd-run --unit=idle2.service --wait -p StandardOutput=tty -p StandardError=tty -p Type=idle -p ExecStopPost='/bin/touch /run/idle2' false \ + && { echo 'unexpected success'; exit 1; } test -f /run/idle2 systemd-analyze log-level info diff --git a/test/units/testsuite-54.sh b/test/units/testsuite-54.sh index aabc56f348..b8f5c0cb39 100755 --- a/test/units/testsuite-54.sh +++ b/test/units/testsuite-54.sh @@ -15,14 +15,16 @@ systemd-run -p LoadCredential=passwd:/etc/passwd \ rm /tmp/ts54-concat # Verify that the creds are immutable -! systemd-run -p LoadCredential=passwd:/etc/passwd \ +systemd-run -p LoadCredential=passwd:/etc/passwd \ -p DynamicUser=1 \ --wait \ - touch '${CREDENTIALS_DIRECTORY}/passwd' -! systemd-run -p LoadCredential=passwd:/etc/passwd \ + touch '${CREDENTIALS_DIRECTORY}/passwd' \ + && { echo 'unexpected success'; exit 1; } +systemd-run -p LoadCredential=passwd:/etc/passwd \ -p DynamicUser=1 \ --wait \ - rm '${CREDENTIALS_DIRECTORY}/passwd' + rm '${CREDENTIALS_DIRECTORY}/passwd' \ + && { echo 'unexpected success'; exit 1; } systemd-analyze log-level info diff --git a/test/units/testsuite-56.sh b/test/units/testsuite-56.sh index 9de03e1dea..0b5010b9f9 100755 --- a/test/units/testsuite-56.sh +++ b/test/units/testsuite-56.sh @@ -29,11 +29,13 @@ systemd-run --wait --unit=one -p ExitType=cgroup /tmp/test56-exit-cgroup.sh systemd-run --wait --unit=two -p ExitType=cgroup -p ExecCondition=true /tmp/test56-exit-cgroup.sh # false exec condition: systemd-run should exit immediately with status code: 1 -! systemd-run --wait --unit=three -p ExitType=cgroup -p ExecCondition=false /tmp/test56-exit-cgroup.sh +systemd-run --wait --unit=three -p ExitType=cgroup -p ExecCondition=false /tmp/test56-exit-cgroup.sh \ + && { echo 'unexpected success'; exit 1; } # service should exit uncleanly (sleep 1; systemctl kill --signal 9 four) & -! systemd-run --wait --unit=four -p ExitType=cgroup /tmp/test56-exit-cgroup.sh +systemd-run --wait --unit=four -p ExitType=cgroup /tmp/test56-exit-cgroup.sh \ + && { echo 'unexpected success'; exit 1; } # Multiple level process tree, parent process exits quickly @@ -55,7 +57,8 @@ systemd-run --wait --unit=five -p ExitType=cgroup /tmp/test56-exit-cgroup-parent # service should exit uncleanly (sleep 1; systemctl kill --signal 9 six) & -! systemd-run --wait --unit=six -p ExitType=cgroup /tmp/test56-exit-cgroup-parentless.sh +systemd-run --wait --unit=six -p ExitType=cgroup /tmp/test56-exit-cgroup-parentless.sh \ + && { echo 'unexpected success'; exit 1; } # Multiple level process tree, parent process exits uncleanly but last process exits cleanly @@ -85,7 +88,8 @@ EOF chmod +x /tmp/test56-exit-cgroup-unclean.sh # service should exit uncleanly after 1 second -! systemd-run --wait --unit=eight -p ExitType=cgroup /tmp/test56-exit-cgroup-unclean.sh +systemd-run --wait --unit=eight -p ExitType=cgroup /tmp/test56-exit-cgroup-unclean.sh \ + && { echo 'unexpected success'; exit 1; } systemd-analyze log-level info |