Skip to content

Commit 2e690f8

Browse files
yuwatabluca
authored andcommitted
test: add test case for issue #36031
(cherry picked from commit 7824e70) (cherry picked from commit 0846c1414402fc67080c90d235c543ec54576315) (cherry picked from commit b756d7d74e9d352a11c6e0041f8832f84797bca4) (cherry picked from commit ad5812a)
1 parent c3f03d0 commit 2e690f8

File tree

1 file changed

+63
-1
lines changed

1 file changed

+63
-1
lines changed

test/units/testsuite-23.start-stop-no-reload.sh

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@ set -o pipefail
1010
at_exit() {
1111
set +e
1212

13-
rm -f /run/systemd/system/testsuite-23-no-reload.{service,target}
13+
rm -f /run/systemd/system/testsuite-23-no-reload.target
14+
rm -f /run/systemd/system/testsuite-23-no-reload.service
15+
rm -f /run/systemd/system/testsuite-23-no-reload-2.service
16+
rm -f /run/systemd/system/testsuite-23-no-reload-3.service
17+
systemctl stop testsuite-23-no-reload.target
18+
systemctl stop testsuite-23-no-reload.service
19+
systemctl stop testsuite-23-no-reload-2.service
20+
systemctl stop testsuite-23-no-reload-3.service
1421
}
1522

1623
trap at_exit EXIT
@@ -91,3 +98,58 @@ EOF
9198
systemctl restart testsuite-23-no-reload.target
9299

93100
systemctl is-active testsuite-23-no-reload.service
101+
102+
# Stop and remove, and try again to exercise https://github.com/systemd/systemd/issues/36031
103+
systemctl stop testsuite-23-no-reload.service testsuite-23-no-reload.target
104+
rm -f /run/systemd/system/testsuite-23-no-reload.service /run/systemd/system/testsuite-23-no-reload.target
105+
systemctl daemon-reload
106+
107+
sleep 3.1
108+
109+
cat >/run/systemd/system/testsuite-23-no-reload.target <<EOF
110+
[Unit]
111+
Conflicts=shutdown.target
112+
EOF
113+
114+
cat >/run/systemd/system/testsuite-23-no-reload.service <<EOF
115+
[Unit]
116+
Conflicts=testsuite-23-no-reload.target
117+
Wants=testsuite-23-no-reload-2.service
118+
Wants=testsuite-23-no-reload-3.service
119+
[Service]
120+
ExecStart=sleep infinity
121+
EOF
122+
123+
systemctl daemon-reload
124+
125+
systemctl start testsuite-23-no-reload.service
126+
(! systemctl is-active testsuite-23-no-reload.target )
127+
systemctl is-active testsuite-23-no-reload.service
128+
[[ "$(systemctl show --property LoadState --value testsuite-23-no-reload-2.service)" == not-found ]]
129+
[[ "$(systemctl show --property LoadState --value testsuite-23-no-reload-3.service)" == not-found ]]
130+
131+
cat >/run/systemd/system/testsuite-23-no-reload-2.service <<EOF
132+
[Unit]
133+
Conflicts=testsuite-23-no-reload.target
134+
[Service]
135+
ExecStart=sleep infinity
136+
EOF
137+
138+
# This service file is intentionally invalid (Type=exec without ExecStart=).
139+
cat >/run/systemd/system/testsuite-23-no-reload-3.service <<EOF
140+
[Unit]
141+
Conflicts=testsuite-23-no-reload.target
142+
[Service]
143+
Type=exec
144+
ExecStop=sleep infinity
145+
EOF
146+
147+
systemctl start testsuite-23-no-reload.target
148+
systemctl is-active testsuite-23-no-reload.target
149+
(! systemctl is-active testsuite-23-no-reload.service )
150+
(! systemctl is-active testsuite-23-no-reload-2.service )
151+
(! systemctl is-active testsuite-23-no-reload-3.service )
152+
[[ "$(systemctl show --property LoadState --value testsuite-23-no-reload-2.service)" == loaded ]]
153+
[[ "$(systemctl show --property LoadState --value testsuite-23-no-reload-3.service)" == bad-setting ]]
154+
[[ "$(systemctl show --property Conflicts --value testsuite-23-no-reload-2.service)" =~ testsuite-23-no-reload.target ]]
155+
[[ "$(systemctl show --property Conflicts --value testsuite-23-no-reload-3.service)" =~ testsuite-23-no-reload.target ]]

0 commit comments

Comments
 (0)