test: merge TEST-47-ISSUE-14566 into TEST-07-PID1

This commit is contained in:
Frantisek Sumsal
2023-05-10 14:19:40 +02:00
parent 8412cdf4fd
commit 11562ee585
7 changed files with 32 additions and 45 deletions

View File

@@ -1 +0,0 @@
../TEST-01-BASIC/Makefile

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -e
TEST_DESCRIPTION="Test that KillMode=mixed does not leave left over processes with ExecStopPost="
# shellcheck source=test/test-functions
. "${TEST_BASE_DIR:?}/test-functions"
do_test "$@"

View File

@@ -3,6 +3,6 @@
Description=Issue 14566 Repro
[Service]
ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
ExecStart=/usr/lib/systemd/tests/testdata/testsuite-07.units/%N.sh
ExecStopPost=/bin/true
KillMode=mixed

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail
# Test that KillMode=mixed does not leave left over processes with ExecStopPost=
# Issue: https://github.com/systemd/systemd/issues/14566
if [[ -n "${ASAN_OPTIONS:-}" ]]; then
# Temporarily skip this test when running with sanitizers due to a deadlock
# See: https://bugzilla.redhat.com/show_bug.cgi?id=2098125
echo "Sanitizers detected, skipping the test..."
exit 0
fi
systemd-analyze log-level debug
systemctl start issue14566-repro
sleep 4
systemctl status issue14566-repro
leaked_pid=$(cat /leakedtestpid)
systemctl stop issue14566-repro
sleep 4
# Leaked PID will still be around if we're buggy.
# I personally prefer to see 42.
ps -p "$leaked_pid" && exit 42
systemd-analyze log-level info

View File

@@ -1,8 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Description=TEST-47-ISSUE-14566
[Service]
ExecStartPre=rm -f /failed /testok
ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
Type=oneshot

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail
systemd-analyze log-level debug
systemctl start testsuite-47-repro
sleep 4
systemctl status testsuite-47-repro
leaked_pid=$(cat /leakedtestpid)
systemctl stop testsuite-47-repro
sleep 4
# Leaked PID will still be around if we're buggy.
# I personally prefer to see 42.
ps -p "$leaked_pid" && exit 42
systemd-analyze log-level info
echo OK >/testok
exit 0