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 941c10a..14e23a3 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 28b5fcd..8f0c6ab 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 228d783..aebdd7c 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)'