diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-04-17 15:54:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-17 15:54:10 +0200 |
commit | 2cb36f7c1e4672df2b47bffab3b7d65216915992 (patch) | |
tree | b4f0fa07c1cd3ffe34d7624efe27ad98eaa2da82 /test | |
parent | 79a4beb39f16ae47213e42145bda2ea64bee9987 (diff) | |
parent | 7e4a49b42b2f4fb3a621dc89a4a76e330a9aebe9 (diff) | |
download | systemd-2cb36f7c1e4672df2b47bffab3b7d65216915992.tar.gz |
Merge pull request #8575 from keszybz/non-absolute-paths
Do not require absolute paths in ExecStart and friends
Diffstat (limited to 'test')
-rw-r--r-- | test/meson.build | 1 | ||||
-rw-r--r-- | test/test-execute/exec-basic.service | 13 | ||||
-rw-r--r-- | test/test-execute/exec-bindpaths.service | 8 | ||||
-rw-r--r-- | test/test-execute/exec-dynamicuser-statedir-migrate-step1.service | 16 | ||||
-rw-r--r-- | test/test-execute/exec-dynamicuser-statedir-migrate-step2.service | 32 | ||||
-rw-r--r-- | test/test-execute/exec-dynamicuser-statedir.service | 18 | ||||
-rw-r--r-- | test/test-execute/exec-restrictnamespaces-mnt-blacklist.service | 2 | ||||
-rw-r--r-- | test/test-execute/exec-restrictnamespaces-mnt.service | 2 | ||||
-rw-r--r-- | test/test-execute/exec-restrictnamespaces-no.service | 2 | ||||
-rw-r--r-- | test/test-execute/exec-restrictnamespaces-yes.service | 2 | ||||
-rw-r--r-- | test/test-execute/exec-specifier.service | 38 | ||||
-rw-r--r-- | test/test-execute/exec-specifier@.service | 38 | ||||
-rw-r--r-- | test/test-execute/exec-temporaryfilesystem-rw.service | 16 |
13 files changed, 101 insertions, 87 deletions
diff --git a/test/meson.build b/test/meson.build index c112e09577..c65e7e4538 100644 --- a/test/meson.build +++ b/test/meson.build @@ -32,6 +32,7 @@ test_data_files = ''' sockets.target son.service sysinit.target + test-execute/exec-basic.service test-execute/exec-ambientcapabilities-merge-nfsnobody.service test-execute/exec-ambientcapabilities-merge-nobody.service test-execute/exec-ambientcapabilities-merge.service diff --git a/test/test-execute/exec-basic.service b/test/test-execute/exec-basic.service new file mode 100644 index 0000000000..456f06951a --- /dev/null +++ b/test/test-execute/exec-basic.service @@ -0,0 +1,13 @@ +[Unit] +Description=Test for basic execution + +[Service] +ExecStart=touch /tmp/a ; /bin/touch /tmp/b ; touch /tmp/c +ExecStart=test -f /tmp/a +ExecStart=!test -f /tmp/b +ExecStart=!!test -f /tmp/c +ExecStart=+test -f /tmp/c +ExecStartPost=rm /tmp/a /tmp/b /tmp/c + +PrivateTmp=true +Type=oneshot diff --git a/test/test-execute/exec-bindpaths.service b/test/test-execute/exec-bindpaths.service index 7bd8fa7402..edab18bb0f 100644 --- a/test/test-execute/exec-bindpaths.service +++ b/test/test-execute/exec-bindpaths.service @@ -4,14 +4,14 @@ Description=Test for BindPaths= and BindReadOnlyPaths= [Service] Type=oneshot # Create a file in /tmp/test-exec-bindpaths -ExecStart=/bin/sh -c 'touch /tmp/test-exec-bindpaths/thisisasimpletest' +ExecStart=touch /tmp/test-exec-bindpaths/thisisasimpletest # Then, the file can be access through /tmp -ExecStart=/bin/sh -c 'test -f /tmp/thisisasimpletest' +ExecStart=test -f /tmp/thisisasimpletest # Also, through /tmp/test-exec-bindreadonlypaths -ExecStart=/bin/sh -c 'test -f /tmp/test-exec-bindreadonlypaths/thisisasimpletest' +ExecStart=test -f /tmp/test-exec-bindreadonlypaths/thisisasimpletest # The file cannot modify through /tmp/test-exec-bindreadonlypaths ExecStart=/bin/sh -x -c '! touch /tmp/test-exec-bindreadonlypaths/thisisasimpletest' # Cleanup -ExecStart=/bin/sh -c 'rm /tmp/thisisasimpletest' +ExecStart=rm /tmp/thisisasimpletest BindPaths=/tmp:/tmp/test-exec-bindpaths BindReadOnlyPaths=/tmp:/tmp/test-exec-bindreadonlypaths diff --git a/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service b/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service index 83bdfb311a..72e6d7686f 100644 --- a/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service +++ b/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service @@ -2,14 +2,14 @@ Description=Test DynamicUser= migrate StateDirectory= (preparation) [Service] -ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'test ! -L /var/lib/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test ! -L /var/lib/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate/yay' -ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate2/hoge/yayyay' +ExecStart=test -w /var/lib/test-dynamicuser-migrate +ExecStart=test -w /var/lib/test-dynamicuser-migrate2/hoge +ExecStart=test ! -L /var/lib/test-dynamicuser-migrate +ExecStart=test ! -L /var/lib/test-dynamicuser-migrate2/hoge +ExecStart=test -d /var/lib/test-dynamicuser-migrate +ExecStart=test -d /var/lib/test-dynamicuser-migrate2/hoge +ExecStart=touch /var/lib/test-dynamicuser-migrate/yay +ExecStart=touch /var/lib/test-dynamicuser-migrate2/hoge/yayyay Type=oneshot DynamicUser=no diff --git a/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service b/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service index 8154922a2f..5a61228c9f 100644 --- a/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service +++ b/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service @@ -2,22 +2,22 @@ Description=Test DynamicUser= migrate StateDirectory= (preparation) [Service] -ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'test -L /var/lib/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test -L /var/lib/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'test -f /var/lib/test-dynamicuser-migrate/yay' -ExecStart=/bin/sh -c 'test -f /var/lib/test-dynamicuser-migrate2/hoge/yayyay' -ExecStart=/bin/sh -c 'test -d /var/lib/private/test-dynamicuser-migrate' -ExecStart=/bin/sh -c 'test -d /var/lib/private/test-dynamicuser-migrate2/hoge' -ExecStart=/bin/sh -c 'test -f /var/lib/private/test-dynamicuser-migrate/yay' -ExecStart=/bin/sh -c 'test -f /var/lib/private/test-dynamicuser-migrate2/hoge/yayyay' -ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate/yay' -ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate2/hoge/yayyay' -ExecStart=/bin/sh -c 'touch /var/lib/private/test-dynamicuser-migrate/yay' -ExecStart=/bin/sh -c 'touch /var/lib/private/test-dynamicuser-migrate2/hoge/yayyay' +ExecStart=test -w /var/lib/test-dynamicuser-migrate +ExecStart=test -w /var/lib/test-dynamicuser-migrate2/hoge +ExecStart=test -L /var/lib/test-dynamicuser-migrate +ExecStart=test -L /var/lib/test-dynamicuser-migrate2/hoge +ExecStart=test -d /var/lib/test-dynamicuser-migrate +ExecStart=test -d /var/lib/test-dynamicuser-migrate2/hoge +ExecStart=test -f /var/lib/test-dynamicuser-migrate/yay +ExecStart=test -f /var/lib/test-dynamicuser-migrate2/hoge/yayyay +ExecStart=test -d /var/lib/private/test-dynamicuser-migrate +ExecStart=test -d /var/lib/private/test-dynamicuser-migrate2/hoge +ExecStart=test -f /var/lib/private/test-dynamicuser-migrate/yay +ExecStart=test -f /var/lib/private/test-dynamicuser-migrate2/hoge/yayyay +ExecStart=touch /var/lib/test-dynamicuser-migrate/yay +ExecStart=touch /var/lib/test-dynamicuser-migrate2/hoge/yayyay +ExecStart=touch /var/lib/private/test-dynamicuser-migrate/yay +ExecStart=touch /var/lib/private/test-dynamicuser-migrate2/hoge/yayyay Type=oneshot DynamicUser=yes diff --git a/test/test-execute/exec-dynamicuser-statedir.service b/test/test-execute/exec-dynamicuser-statedir.service index 5ea6d9da42..f459f3c1eb 100644 --- a/test/test-execute/exec-dynamicuser-statedir.service +++ b/test/test-execute/exec-dynamicuser-statedir.service @@ -2,17 +2,17 @@ Description=Test DynamicUser= with StateDirectory= [Service] -ExecStart=/bin/sh -c 'test -w /var/lib/waldo' -ExecStart=/bin/sh -c 'test -w /var/lib/quux/pief' -ExecStart=/bin/sh -c 'touch /var/lib/waldo/yay' -ExecStart=/bin/sh -c 'touch /var/lib/quux/pief/yayyay' -ExecStart=/bin/sh -c 'test -f /var/lib/waldo/yay' -ExecStart=/bin/sh -c 'test -f /var/lib/quux/pief/yayyay' -ExecStart=/bin/sh -c 'test -f /var/lib/private/waldo/yay' -ExecStart=/bin/sh -c 'test -f /var/lib/private/quux/pief/yayyay' +ExecStart=test -w /var/lib/waldo +ExecStart=test -w /var/lib/quux/pief +ExecStart=touch /var/lib/waldo/yay +ExecStart=touch /var/lib/quux/pief/yayyay +ExecStart=test -f /var/lib/waldo/yay +ExecStart=test -f /var/lib/quux/pief/yayyay +ExecStart=test -f /var/lib/private/waldo/yay +ExecStart=test -f /var/lib/private/quux/pief/yayyay # Make sure that /var/lib/private/waldo is really the only writable directory besides the obvious candidates -ExecStart=/bin/sh -x -c 'test $$(find / -type d -writable 2> /dev/null | egrep -v -e \'^(/var/tmp$$|/tmp$$|/proc/|/dev/mqueue$$|/dev/shm$$|/sys/fs/bpf$$)\' | sort -u | tr -d '\\\\n') = /var/lib/private/quux/pief/var/lib/private/waldo' +ExecStart=sh -x -c 'test $$(find / \( -path /var/tmp -o -path /tmp -o -path /proc -o -path /dev/mqueue -o -path /dev/shm -o -path /sys/fs/bpf \) -prune -o -type d -writable -print 2>/dev/null | sort -u | tr -d '\\\\n') = /var/lib/private/quux/pief/var/lib/private/waldo' Type=oneshot DynamicUser=yes diff --git a/test/test-execute/exec-restrictnamespaces-mnt-blacklist.service b/test/test-execute/exec-restrictnamespaces-mnt-blacklist.service index ab909cbd94..7756a2575e 100644 --- a/test/test-execute/exec-restrictnamespaces-mnt-blacklist.service +++ b/test/test-execute/exec-restrictnamespaces-mnt-blacklist.service @@ -3,5 +3,5 @@ Description=Test RestrictNamespaces=~mnt [Service] RestrictNamespaces=~mnt -ExecStart=/bin/sh -x -c 'unshare -m' +ExecStart=unshare -m Type=oneshot diff --git a/test/test-execute/exec-restrictnamespaces-mnt.service b/test/test-execute/exec-restrictnamespaces-mnt.service index 1aeed72717..2c5b942601 100644 --- a/test/test-execute/exec-restrictnamespaces-mnt.service +++ b/test/test-execute/exec-restrictnamespaces-mnt.service @@ -3,5 +3,5 @@ Description=Test RestrictNamespaces=mnt [Service] RestrictNamespaces=mnt -ExecStart=/bin/sh -x -c 'unshare -m' +ExecStart=unshare -m Type=oneshot diff --git a/test/test-execute/exec-restrictnamespaces-no.service b/test/test-execute/exec-restrictnamespaces-no.service index 33500302d2..5ffe081e45 100644 --- a/test/test-execute/exec-restrictnamespaces-no.service +++ b/test/test-execute/exec-restrictnamespaces-no.service @@ -3,5 +3,5 @@ Description=Test RestrictNamespaces=no [Service] RestrictNamespaces=no -ExecStart=/bin/sh -x -c 'unshare -m -u -i -n -p -f' +ExecStart=unshare -m -u -i -n -p -f Type=oneshot diff --git a/test/test-execute/exec-restrictnamespaces-yes.service b/test/test-execute/exec-restrictnamespaces-yes.service index 3fe70e2bea..8e077ed3a0 100644 --- a/test/test-execute/exec-restrictnamespaces-yes.service +++ b/test/test-execute/exec-restrictnamespaces-yes.service @@ -3,5 +3,5 @@ Description=Test RestrictNamespaces=yes [Service] RestrictNamespaces=yes -ExecStart=/bin/sh -x -c 'unshare -m' +ExecStart=unshare -m Type=oneshot diff --git a/test/test-execute/exec-specifier.service b/test/test-execute/exec-specifier.service index 37852390ac..65a64bc95e 100644 --- a/test/test-execute/exec-specifier.service +++ b/test/test-execute/exec-specifier.service @@ -3,22 +3,22 @@ Description=Test for specifiers [Service] Type=oneshot -ExecStart=/usr/bin/test %n = exec-specifier.service -ExecStart=/usr/bin/test %N = exec-specifier -ExecStart=/usr/bin/test %p = exec-specifier -ExecStart=/usr/bin/test %P = exec/specifier -ExecStart=/usr/bin/test %i = "" -ExecStart=/usr/bin/test %I = "" -ExecStart=/usr/bin/test %f = /exec/specifier -ExecStart=/usr/bin/test %t = /run -ExecStart=/usr/bin/test %S = /var/lib -ExecStart=/usr/bin/test %C = /var/cache -ExecStart=/usr/bin/test %L = /var/log -ExecStart=/bin/sh -c 'test %u = $$(id -un 0)' -ExecStart=/usr/bin/test %U = 0 -ExecStart=/bin/sh -c 'test %h = $$(getent passwd 0 | cut -d: -f 6) -ExecStart=/bin/sh -c 'test %s = $$(getent passwd 0 | cut -d: -f 7) -ExecStart=/bin/sh -c 'test %m = $$(cat /etc/machine-id)' -ExecStart=/bin/sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')' -ExecStart=/bin/sh -c 'test %H = $$(hostname)' -ExecStart=/bin/sh -c 'test %v = $$(uname -r)' +ExecStart=test %n = exec-specifier.service +ExecStart=test %N = exec-specifier +ExecStart=test %p = exec-specifier +ExecStart=test %P = exec/specifier +ExecStart=test %i = "" +ExecStart=test %I = "" +ExecStart=test %f = /exec/specifier +ExecStart=test %t = /run +ExecStart=test %S = /var/lib +ExecStart=test %C = /var/cache +ExecStart=test %L = /var/log +ExecStart=sh -c 'test %u = $$(id -un 0)' +ExecStart=test %U = 0 +ExecStart=sh -c 'test %h = $$(getent passwd 0 | cut -d: -f 6)' +ExecStart=sh -c 'test %s = $$(getent passwd 0 | cut -d: -f 7)' +ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)' +ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')' +ExecStart=sh -c 'test %H = $$(hostname)' +ExecStart=sh -c 'test %v = $$(uname -r)' diff --git a/test/test-execute/exec-specifier@.service b/test/test-execute/exec-specifier@.service index 0015dffca6..f8d7dce680 100644 --- a/test/test-execute/exec-specifier@.service +++ b/test/test-execute/exec-specifier@.service @@ -3,22 +3,22 @@ Description=Test for specifiers (template unit) [Service] Type=oneshot -ExecStart=/usr/bin/test %n = exec-specifier@foo-bar.service -ExecStart=/usr/bin/test %N = exec-specifier@foo-bar -ExecStart=/usr/bin/test %p = exec-specifier -ExecStart=/usr/bin/test %P = exec/specifier -ExecStart=/usr/bin/test %i = foo-bar -ExecStart=/usr/bin/test %I = foo/bar -ExecStart=/usr/bin/test %f = /foo/bar -ExecStart=/usr/bin/test %t = /run -ExecStart=/usr/bin/test %S = /var/lib -ExecStart=/usr/bin/test %C = /var/cache -ExecStart=/usr/bin/test %L = /var/log -ExecStart=/bin/sh -c 'test %u = $$(id -un 0)' -ExecStart=/usr/bin/test %U = 0 -ExecStart=/bin/sh -c 'test %h = $$(getent passwd 0 | cut -d: -f 6) -ExecStart=/bin/sh -c 'test %s = $$(getent passwd 0 | cut -d: -f 7) -ExecStart=/bin/sh -c 'test %m = $$(cat /etc/machine-id)' -ExecStart=/bin/sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')' -ExecStart=/bin/sh -c 'test %H = $$(hostname)' -ExecStart=/bin/sh -c 'test %v = $$(uname -r)' +ExecStart=test %n = exec-specifier@foo-bar.service +ExecStart=test %N = exec-specifier@foo-bar +ExecStart=test %p = exec-specifier +ExecStart=test %P = exec/specifier +ExecStart=test %i = foo-bar +ExecStart=test %I = foo/bar +ExecStart=test %f = /foo/bar +ExecStart=test %t = /run +ExecStart=test %S = /var/lib +ExecStart=test %C = /var/cache +ExecStart=test %L = /var/log +ExecStart=sh -c 'test %u = $$(id -un 0)' +ExecStart=test %U = 0 +ExecStart=sh -c 'test %h = $$(getent passwd 0 | cut -d: -f 6)' +ExecStart=sh -c 'test %s = $$(getent passwd 0 | cut -d: -f 7)' +ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)' +ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')' +ExecStart=sh -c 'test %H = $$(hostname)' +ExecStart=sh -c 'test %v = $$(uname -r)' diff --git a/test/test-execute/exec-temporaryfilesystem-rw.service b/test/test-execute/exec-temporaryfilesystem-rw.service index fc02ceab1c..379ad066fb 100644 --- a/test/test-execute/exec-temporaryfilesystem-rw.service +++ b/test/test-execute/exec-temporaryfilesystem-rw.service @@ -5,28 +5,28 @@ Description=Test for TemporaryFileSystem Type=oneshot # Check directories exist -ExecStart=/bin/sh -c 'test -d /var/test-exec-temporaryfilesystem/rw && test -d /var/test-exec-temporaryfilesystem/ro' +ExecStart=test -d /var/test-exec-temporaryfilesystem/rw -a -d /var/test-exec-temporaryfilesystem/ro # Check TemporaryFileSystem= are empty -ExecStart=/bin/sh -c 'for i in $$(ls -A /var); do test $$i = test-exec-temporaryfilesystem || false; done' +ExecStart=sh -c 'for i in $$(ls -A /var); do test $$i = test-exec-temporaryfilesystem || false; done' # Create a file in /var -ExecStart=/bin/sh -c 'touch /var/hoge' +ExecStart=touch /var/hoge # Create a file in /var/test-exec-temporaryfilesystem/rw -ExecStart=/bin/sh -c 'touch /var/test-exec-temporaryfilesystem/rw/thisisasimpletest-temporaryfilesystem' +ExecStart=touch /var/test-exec-temporaryfilesystem/rw/thisisasimpletest-temporaryfilesystem # Then, the file can be access through /tmp -ExecStart=/bin/sh -c 'test -f /tmp/thisisasimpletest-temporaryfilesystem' +ExecStart=test -f /tmp/thisisasimpletest-temporaryfilesystem # Also, through /var/test-exec-temporaryfilesystem/ro -ExecStart=/bin/sh -c 'test -f /var/test-exec-temporaryfilesystem/ro/thisisasimpletest-temporaryfilesystem' +ExecStart=test -f /var/test-exec-temporaryfilesystem/ro/thisisasimpletest-temporaryfilesystem # The file cannot modify through /var/test-exec-temporaryfilesystem/ro -ExecStart=/bin/sh -c '! touch /var/test-exec-temporaryfilesystem/ro/thisisasimpletest-temporaryfilesystem' +ExecStart=sh -c '! touch /var/test-exec-temporaryfilesystem/ro/thisisasimpletest-temporaryfilesystem' # Cleanup -ExecStart=/bin/sh -c 'rm /tmp/thisisasimpletest-temporaryfilesystem' +ExecStart=rm /tmp/thisisasimpletest-temporaryfilesystem TemporaryFileSystem=/var BindPaths=/tmp:/var/test-exec-temporaryfilesystem/rw |