]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - test/units/testsuite-23.runtime-bind-paths.sh
mount-util: use mount beneath to replace previous namespace mount
[thirdparty/systemd.git] / test / units / testsuite-23.runtime-bind-paths.sh
index c63586e1a2b27a6dda1f699045d5301d0b48af29..65c2dbf41dbde988b34f2af4569ac610b8eda4ec 100755 (executable)
@@ -23,11 +23,15 @@ systemctl start testsuite-23-namespaced.service
 # Ensure that inaccessible paths aren't bypassed by the runtime setup,
 (! systemctl bind --mkdir testsuite-23-namespaced.service /run/testsuite-23-marker-fixed /run/inaccessible/testfile-marker-fixed)
 
+echo "MARKER_WRONG" >/run/testsuite-23-marker-wrong
 echo "MARKER_RUNTIME" >/run/testsuite-23-marker-runtime
 
+# Mount twice to exercise mount-beneath (on kernel 6.5+, on older kernels it will just overmount)
+systemctl bind --mkdir testsuite-23-namespaced.service /run/testsuite-23-marker-wrong /tmp/testfile-marker-runtime
+test "$(systemctl show -P SubState testsuite-23-namespaced.service)" = "running"
 systemctl bind --mkdir testsuite-23-namespaced.service /run/testsuite-23-marker-runtime /tmp/testfile-marker-runtime
 
-timeout 10 sh -xec 'while [[ "$(systemctl show -P SubState testsuite-23-namespaced.service)" == running ]]; do sleep .5; done'
+timeout 10 bash -xec 'while [[ "$(systemctl show -P SubState testsuite-23-namespaced.service)" == running ]]; do sleep .5; done'
 systemctl is-active testsuite-23-namespaced.service
 
 # Now test that systemctl bind fails when attempted on a non-namespaced unit
@@ -35,5 +39,5 @@ systemctl start testsuite-23-non-namespaced.service
 
 (! systemctl bind --mkdir testsuite-49-non-namespaced.service /run/testsuite-23-marker-runtime /tmp/testfile-marker-runtime)
 
-timeout 10 sh -xec 'while [[ "$(systemctl show -P SubState testsuite-23-non-namespaced.service)" == running ]]; do sleep .5; done'
+timeout 10 bash -xec 'while [[ "$(systemctl show -P SubState testsuite-23-non-namespaced.service)" == running ]]; do sleep .5; done'
 (! systemctl is-active testsuite-23-non-namespaced.service)