mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-08 21:17:47 +03:00
Try to fix exittype test flakyness
The test was changed at @bluca 's request to avoid sleeps, but the change insufficient to avoid all races. The kill command is now run from the script itself to avoid using ExecStartPost
This commit is contained in:
parent
b41b682bd6
commit
81e1590e2d
@ -17,6 +17,9 @@ disown
|
|||||||
|
|
||||||
systemd-notify --ready
|
systemd-notify --ready
|
||||||
|
|
||||||
|
# Run the stop/kill command
|
||||||
|
\$1 &
|
||||||
|
|
||||||
# process tree: systemd -> bash -> sleep
|
# process tree: systemd -> bash -> sleep
|
||||||
sleep infinity
|
sleep infinity
|
||||||
EOF
|
EOF
|
||||||
@ -24,14 +27,12 @@ chmod +x /tmp/test56-exit-cgroup.sh
|
|||||||
|
|
||||||
# service should be stopped cleanly
|
# service should be stopped cleanly
|
||||||
systemd-run --wait --unit=one -p Type=notify -p ExitType=cgroup \
|
systemd-run --wait --unit=one -p Type=notify -p ExitType=cgroup \
|
||||||
-p ExecStartPost='bash -c "systemctl stop one &"' \
|
/tmp/test56-exit-cgroup.sh 'systemctl stop one'
|
||||||
/tmp/test56-exit-cgroup.sh
|
|
||||||
|
|
||||||
# same thing with a truthy exec condition
|
# same thing with a truthy exec condition
|
||||||
systemd-run --wait --unit=two -p Type=notify -p ExitType=cgroup \
|
systemd-run --wait --unit=two -p Type=notify -p ExitType=cgroup \
|
||||||
-p ExecCondition=true \
|
-p ExecCondition=true \
|
||||||
-p ExecStartPost='bash -c "systemctl stop two &"' \
|
/tmp/test56-exit-cgroup.sh 'systemctl stop two'
|
||||||
/tmp/test56-exit-cgroup.sh
|
|
||||||
|
|
||||||
# false exec condition: systemd-run should exit immediately with status code: 1
|
# false exec condition: systemd-run should exit immediately with status code: 1
|
||||||
systemd-run --wait --unit=three -p Type=notify -p ExitType=cgroup \
|
systemd-run --wait --unit=three -p Type=notify -p ExitType=cgroup \
|
||||||
@ -41,8 +42,7 @@ systemd-run --wait --unit=three -p Type=notify -p ExitType=cgroup \
|
|||||||
|
|
||||||
# service should exit uncleanly (main process exits with SIGKILL)
|
# service should exit uncleanly (main process exits with SIGKILL)
|
||||||
systemd-run --wait --unit=four -p Type=notify -p ExitType=cgroup \
|
systemd-run --wait --unit=four -p Type=notify -p ExitType=cgroup \
|
||||||
-p ExecStartPost='bash -c "systemctl kill --signal 9 four &"' \
|
/tmp/test56-exit-cgroup.sh 'systemctl kill --signal 9 four' \
|
||||||
/tmp/test56-exit-cgroup.sh \
|
|
||||||
&& { echo 'unexpected success'; exit 1; }
|
&& { echo 'unexpected success'; exit 1; }
|
||||||
|
|
||||||
|
|
||||||
@ -58,18 +58,19 @@ sleep infinity &
|
|||||||
((sleep infinity); true) &
|
((sleep infinity); true) &
|
||||||
|
|
||||||
systemd-notify --ready
|
systemd-notify --ready
|
||||||
|
|
||||||
|
# Run the stop/kill command after this bash process exits
|
||||||
|
(sleep 1; \$1) &
|
||||||
EOF
|
EOF
|
||||||
chmod +x /tmp/test56-exit-cgroup-parentless.sh
|
chmod +x /tmp/test56-exit-cgroup-parentless.sh
|
||||||
|
|
||||||
# service should be stopped cleanly
|
# service should be stopped cleanly
|
||||||
systemd-run --wait --unit=five -p Type=notify -p ExitType=cgroup \
|
systemd-run --wait --unit=five -p Type=notify -p ExitType=cgroup \
|
||||||
-p ExecStartPost='bash -c "systemctl stop five &"' \
|
/tmp/test56-exit-cgroup-parentless.sh 'systemctl stop five'
|
||||||
/tmp/test56-exit-cgroup-parentless.sh
|
|
||||||
|
|
||||||
# service should still exit cleanly despite SIGKILL (the main process already exited cleanly)
|
# service should still exit cleanly despite SIGKILL (the main process already exited cleanly)
|
||||||
systemd-run --wait --unit=six -p Type=notify -p ExitType=cgroup \
|
systemd-run --wait --unit=six -p Type=notify -p ExitType=cgroup \
|
||||||
-p ExecStartPost='bash -c "systemctl kill --signal 9 six &"' \
|
/tmp/test56-exit-cgroup-parentless.sh 'systemctl kill --signal 9 six'
|
||||||
/tmp/test56-exit-cgroup-parentless.sh
|
|
||||||
|
|
||||||
|
|
||||||
systemd-analyze log-level info
|
systemd-analyze log-level info
|
||||||
|
Loading…
Reference in New Issue
Block a user