]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-execute: test more % specifiers (#7450)
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 24 Nov 2017 09:17:28 +0000 (18:17 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 24 Nov 2017 09:17:28 +0000 (10:17 +0100)
src/test/test-execute.c
test/meson.build
test/test-execute/exec-specifier.service
test/test-execute/exec-specifier@.service [new file with mode: 0644]

index 941c10a11eb7e87f62f41608af329b369ef7303b..14e23a32e92a83b87946881c4b29da911bd6491e 100644 (file)
@@ -477,6 +477,7 @@ static void test_exec_unset_environment(Manager *m) {
 
 static void test_exec_specifier(Manager *m) {
         test(m, "exec-specifier.service", 0, CLD_EXITED);
+        test(m, "exec-specifier@foo-bar.service", 0, CLD_EXITED);
 }
 
 static void test_exec_stdin_data(Manager *m) {
index 28b5fcdbca62d9b88132065ae993384bbbae2483..8f0c6ab9095f47e5ca78181205facc384abb3e0d 100644 (file)
@@ -111,6 +111,7 @@ test_data_files = '''
         test-execute/exec-runtimedirectory.service
         test-execute/exec-spec-interpolation.service
         test-execute/exec-specifier.service
+        test-execute/exec-specifier@.service
         test-execute/exec-stdin-data.service
         test-execute/exec-stdio-file.service
         test-execute/exec-supplementarygroups-multiple-groups-default-group-user.service
index 228d7837add05ccf2b28df5ea4c3256ef68106df..aebdd7c4c24b4a5ff71ac42ded58c2c9a8ad1cd9 100644 (file)
@@ -4,12 +4,18 @@ 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
-
-# We don't test the other specifiers here, since they migh resolve to different
-# things in different test environments
+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)'
diff --git a/test/test-execute/exec-specifier@.service b/test/test-execute/exec-specifier@.service
new file mode 100644 (file)
index 0000000..1038f05
--- /dev/null
@@ -0,0 +1,21 @@
+[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)'