]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: move TEST-20-MAINPIDGAMES setup to static files
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Dec 2019 07:32:28 +0000 (08:32 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 28 Mar 2020 10:46:47 +0000 (11:46 +0100)
test/TEST-20-MAINPIDGAMES/test.sh
test/units/testsuite-20.service [new file with mode: 0644]
test/units/testsuite-20.sh [moved from test/TEST-20-MAINPIDGAMES/testsuite.sh with 56% similarity]

index 4cf1b79f9a00fa2c14c4d2bf811cbdca6c1debee..d6abbadb2b584c4ce481a988bceb9b45134a8d99 100755 (executable)
@@ -13,25 +13,9 @@ test_setup() {
 
         setup_basic_environment
         mask_supporting_services
-
-        # setup the testsuite service
-        cat >$initdir/etc/systemd/system/testsuite.service <<EOF
-[Unit]
-Description=Testsuite service
-Before=getty-pre.target
-Wants=getty-pre.target
-
-[Service]
-ExecStart=/bin/bash -x /testsuite.sh
-Type=oneshot
-NotifyAccess=all
-EOF
-        cp testsuite.sh $initdir/
-
-        setup_testsuite
     )
 
     setup_nspawn_root
 }
 
-do_test "$@"
+do_test "$@" 20
diff --git a/test/units/testsuite-20.service b/test/units/testsuite-20.service
new file mode 100644 (file)
index 0000000..9befd81
--- /dev/null
@@ -0,0 +1,9 @@
+[Unit]
+Description=TEST-20-MAINPIDGAMES
+Before=getty-pre.target
+Wants=getty-pre.target
+
+[Service]
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
+NotifyAccess=all
similarity index 56%
rename from test/TEST-20-MAINPIDGAMES/testsuite.sh
rename to test/units/testsuite-20.sh
index f8940260702b5ce1a754e88dcb4b1a5206f8840f..c038c05fa72342606103d88535133691914e87f3 100755 (executable)
@@ -5,7 +5,7 @@ set -o pipefail
 systemd-analyze log-level debug
 systemd-analyze log-target console
 
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
 # Start a test process inside of our own cgroup
 sleep infinity &
@@ -13,48 +13,48 @@ INTERNALPID=$!
 disown
 
 # Start a test process outside of our own cgroup
-systemd-run -p DynamicUser=1 --unit=sleep.service /bin/sleep infinity
-EXTERNALPID=`systemctl show -p MainPID --value sleep.service`
+systemd-run -p DynamicUser=1 --unit=test20-sleep.service /bin/sleep infinity
+EXTERNALPID=`systemctl show -p MainPID --value test20-sleep.service`
 
 # Update our own main PID to the external test PID, this should work
 systemd-notify MAINPID=$EXTERNALPID
-test `systemctl show -p MainPID --value testsuite.service` -eq $EXTERNALPID
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $EXTERNALPID
 
 # Update our own main PID to the internal test PID, this should work, too
 systemd-notify MAINPID=$INTERNALPID
-test `systemctl show -p MainPID --value testsuite.service` -eq $INTERNALPID
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $INTERNALPID
 
 # Update it back to our own PID, this should also work
 systemd-notify MAINPID=$$
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
 # Try to set it to PID 1, which it should ignore, because that's the manager
 systemd-notify MAINPID=1
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
 # Try to set it to PID 0, which is invalid and should be ignored
 systemd-notify MAINPID=0
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
 # Try to set it to a valid but non-existing PID, which should be ignored. (Note
 # that we set the PID to a value well above any known /proc/sys/kernel/pid_max,
 # which means we can be pretty sure it doesn't exist by coincidence)
 systemd-notify MAINPID=1073741824
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
 # Change it again to the external PID, without privileges this time. This should be ignored, because the PID is from outside of our cgroup and we lack privileges.
 systemd-notify --uid=1000 MAINPID=$EXTERNALPID
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
 # Change it again to the internal PID, without privileges this time. This should work, as the process is on our cgroup, and that's enough even if we lack privileges.
 systemd-notify --uid=1000 MAINPID=$INTERNALPID
-test `systemctl show -p MainPID --value testsuite.service` -eq $INTERNALPID
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $INTERNALPID
 
 # Update it back to our own PID, this should also work
 systemd-notify --uid=1000 MAINPID=$$
-test `systemctl show -p MainPID --value testsuite.service` -eq $$
+test `systemctl show -p MainPID --value testsuite-20.service` -eq $$
 
-cat >/tmp/mainpid.sh <<EOF
+cat >/tmp/test20-mainpid.sh <<EOF
 #!/usr/bin/env bash
 
 set -eux
@@ -73,12 +73,12 @@ disown
 
 echo \$MAINPID > /run/mainpidsh/pid
 EOF
-chmod +x /tmp/mainpid.sh
+chmod +x /tmp/test20-mainpid.sh
 
-systemd-run --unit=mainpidsh.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh -p PIDFile=/run/mainpidsh/pid /tmp/mainpid.sh
-test `systemctl show -p MainPID --value mainpidsh.service` -eq `cat /run/mainpidsh/pid`
+systemd-run --unit=test20-mainpidsh.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh -p PIDFile=/run/mainpidsh/pid /tmp/test20-mainpid.sh
+test `systemctl show -p MainPID --value test20-mainpidsh.service` -eq `cat /run/mainpidsh/pid`
 
-cat >/tmp/mainpid2.sh <<EOF
+cat >/tmp/test20-mainpid2.sh <<EOF
 #!/usr/bin/env bash
 
 set -eux
@@ -98,12 +98,12 @@ disown
 echo \$MAINPID > /run/mainpidsh2/pid
 chown 1001:1001 /run/mainpidsh2/pid
 EOF
-chmod +x /tmp/mainpid2.sh
+chmod +x /tmp/test20-mainpid2.sh
 
-systemd-run --unit=mainpidsh2.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh2 -p PIDFile=/run/mainpidsh2/pid /tmp/mainpid2.sh
-test `systemctl show -p MainPID --value mainpidsh2.service` -eq `cat /run/mainpidsh2/pid`
+systemd-run --unit=test20-mainpidsh2.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh2 -p PIDFile=/run/mainpidsh2/pid /tmp/test20-mainpid2.sh
+test `systemctl show -p MainPID --value test20-mainpidsh2.service` -eq `cat /run/mainpidsh2/pid`
 
-cat >/dev/shm/mainpid3.sh <<EOF
+cat >/dev/shm/test20-mainpid3.sh <<EOF
 #!/usr/bin/env bash
 
 set -eux
@@ -124,13 +124,13 @@ ln -s ../mainpidsh/pid /run/mainpidsh3/pid
 # Quick assertion that the link isn't dead
 test -f /run/mainpidsh3/pid
 EOF
-chmod 755 /dev/shm/mainpid3.sh
+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=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/mainpid3.sh
+! 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
 
 # Test that this failed due to timeout, and not some other error
-test `systemctl show -p Result --value mainpidsh3.service` = timeout
+test `systemctl show -p Result --value test20-mainpidsh3.service` = timeout
 
 systemd-analyze log-level info