teknoraver / rpms / systemd

Forked from rpms/systemd 2 months ago
Clone

Blame SOURCES/0383-test-execute-provide-custom-failure-message.patch

52b84b
From ad8f0b480799aa7e312dacbcb0c01a3a9e6aa6db Mon Sep 17 00:00:00 2001
52b84b
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
52b84b
Date: Tue, 26 Mar 2019 11:38:55 +0100
52b84b
Subject: [PATCH] test-execute: provide custom failure message
52b84b
52b84b
test_exec_ambientcapabilities: exec-ambientcapabilities-nobody.service: exit status 0, expected 1
52b84b
52b84b
Sometimes we get just the last line, for example from the failure summary,
52b84b
so make it as useful as possible.
52b84b
52b84b
(cherry picked from commit 6aed6a11577b108b9a39f26aeae5e45d98f20c90)
52b84b
52b84b
Related: #1737283
52b84b
---
52b84b
 src/test/test-execute.c | 236 +++++++++++++++++++++-------------------
52b84b
 1 file changed, 123 insertions(+), 113 deletions(-)
52b84b
52b84b
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
52b84b
index d077674efc..e42d0d30a8 100644
52b84b
--- a/src/test/test-execute.c
52b84b
+++ b/src/test/test-execute.c
52b84b
@@ -30,7 +30,7 @@
52b84b
 
52b84b
 typedef void (*test_function_t)(Manager *m);
52b84b
 
52b84b
-static void check(Manager *m, Unit *unit, int status_expected, int code_expected) {
52b84b
+static void check(const char *func, Manager *m, Unit *unit, int status_expected, int code_expected) {
52b84b
         Service *service = NULL;
52b84b
         usec_t ts;
52b84b
         usec_t timeout = 2 * USEC_PER_MINUTE;
52b84b
@@ -56,8 +56,18 @@ static void check(Manager *m, Unit *unit, int status_expected, int code_expected
52b84b
                 }
52b84b
         }
52b84b
         exec_status_dump(&service->main_exec_status, stdout, "\t");
52b84b
-        assert_se(service->main_exec_status.status == status_expected);
52b84b
-        assert_se(service->main_exec_status.code == code_expected);
52b84b
+        if (service->main_exec_status.status != status_expected) {
52b84b
+                log_error("%s: %s: exit status %d, expected %d",
52b84b
+                          func, unit->id,
52b84b
+                          service->main_exec_status.status, status_expected);
52b84b
+                abort();
52b84b
+        }
52b84b
+        if (service->main_exec_status.code != code_expected) {
52b84b
+                log_error("%s: %s: exit code %d, expected %d",
52b84b
+                          func, unit->id,
52b84b
+                          service->main_exec_status.code, code_expected);
52b84b
+                abort();
52b84b
+        }
52b84b
 }
52b84b
 
52b84b
 static bool check_nobody_user_and_group(void) {
52b84b
@@ -123,21 +133,21 @@ static bool is_inaccessible_available(void) {
52b84b
         return true;
52b84b
 }
52b84b
 
52b84b
-static void test(Manager *m, const char *unit_name, int status_expected, int code_expected) {
52b84b
+static void test(const char *func, Manager *m, const char *unit_name, int status_expected, int code_expected) {
52b84b
         Unit *unit;
52b84b
 
52b84b
         assert_se(unit_name);
52b84b
 
52b84b
         assert_se(manager_load_startable_unit_or_warn(m, unit_name, NULL, &unit) >= 0);
52b84b
         assert_se(unit_start(unit) >= 0);
52b84b
-        check(m, unit, status_expected, code_expected);
52b84b
+        check(func, m, unit, status_expected, code_expected);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_bindpaths(Manager *m) {
52b84b
         assert_se(mkdir_p("/tmp/test-exec-bindpaths", 0755) >= 0);
52b84b
         assert_se(mkdir_p("/tmp/test-exec-bindreadonlypaths", 0755) >= 0);
52b84b
 
52b84b
-        test(m, "exec-bindpaths.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-bindpaths.service", 0, CLD_EXITED);
52b84b
 
52b84b
         (void) rm_rf("/tmp/test-exec-bindpaths", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
         (void) rm_rf("/tmp/test-exec-bindreadonlypaths", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
@@ -154,8 +164,8 @@ static void test_exec_cpuaffinity(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-cpuaffinity1.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-cpuaffinity2.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-cpuaffinity1.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-cpuaffinity2.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (!CPU_ISSET_S(1, c.allocated, c.set) ||
52b84b
             !CPU_ISSET_S(2, c.allocated, c.set)) {
52b84b
@@ -163,52 +173,52 @@ static void test_exec_cpuaffinity(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-cpuaffinity3.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-cpuaffinity3.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_workingdirectory(Manager *m) {
52b84b
         assert_se(mkdir_p("/tmp/test-exec_workingdirectory", 0755) >= 0);
52b84b
 
52b84b
-        test(m, "exec-workingdirectory.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-workingdirectory-trailing-dot.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-workingdirectory.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-workingdirectory-trailing-dot.service", 0, CLD_EXITED);
52b84b
 
52b84b
         (void) rm_rf("/tmp/test-exec_workingdirectory", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_personality(Manager *m) {
52b84b
 #if defined(__x86_64__)
52b84b
-        test(m, "exec-personality-x86-64.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-personality-x86-64.service", 0, CLD_EXITED);
52b84b
 
52b84b
 #elif defined(__s390__)
52b84b
-        test(m, "exec-personality-s390.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-personality-s390.service", 0, CLD_EXITED);
52b84b
 
52b84b
 #elif defined(__powerpc64__)
52b84b
 #  if __BYTE_ORDER == __BIG_ENDIAN
52b84b
-        test(m, "exec-personality-ppc64.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-personality-ppc64.service", 0, CLD_EXITED);
52b84b
 #  else
52b84b
-        test(m, "exec-personality-ppc64le.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-personality-ppc64le.service", 0, CLD_EXITED);
52b84b
 #  endif
52b84b
 
52b84b
 #elif defined(__aarch64__)
52b84b
-        test(m, "exec-personality-aarch64.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-personality-aarch64.service", 0, CLD_EXITED);
52b84b
 
52b84b
 #elif defined(__i386__)
52b84b
-        test(m, "exec-personality-x86.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-personality-x86.service", 0, CLD_EXITED);
52b84b
 #else
52b84b
         log_notice("Unknown personality, skipping %s", __func__);
52b84b
 #endif
52b84b
 }
52b84b
 
52b84b
 static void test_exec_ignoresigpipe(Manager *m) {
52b84b
-        test(m, "exec-ignoresigpipe-yes.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-ignoresigpipe-no.service", SIGPIPE, CLD_KILLED);
52b84b
+        test(__func__, m, "exec-ignoresigpipe-yes.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ignoresigpipe-no.service", SIGPIPE, CLD_KILLED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_privatetmp(Manager *m) {
52b84b
         assert_se(touch("/tmp/test-exec_privatetmp") >= 0);
52b84b
 
52b84b
-        test(m, "exec-privatetmp-yes.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-privatetmp-no.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatetmp-yes.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatetmp-no.service", 0, CLD_EXITED);
52b84b
 
52b84b
         unlink("/tmp/test-exec_privatetmp");
52b84b
 }
52b84b
@@ -225,9 +235,9 @@ static void test_exec_privatedevices(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-privatedevices-yes.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-privatedevices-no.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-privatedevices-disabled-by-prefix.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-yes.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-no.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-disabled-by-prefix.service", 0, CLD_EXITED);
52b84b
 
52b84b
         /* We use capsh to test if the capabilities are
52b84b
          * properly set, so be sure that it exists */
52b84b
@@ -237,10 +247,10 @@ static void test_exec_privatedevices(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-privatedevices-yes-capability-mknod.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-privatedevices-no-capability-mknod.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-privatedevices-yes-capability-sys-rawio.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-privatedevices-no-capability-sys-rawio.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-yes-capability-mknod.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-no-capability-mknod.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-yes-capability-sys-rawio.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatedevices-no-capability-sys-rawio.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_protectkernelmodules(Manager *m) {
52b84b
@@ -261,23 +271,23 @@ static void test_exec_protectkernelmodules(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-protectkernelmodules-no-capabilities.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-protectkernelmodules-yes-capabilities.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-protectkernelmodules-yes-mount-propagation.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-protectkernelmodules-no-capabilities.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-protectkernelmodules-yes-capabilities.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-protectkernelmodules-yes-mount-propagation.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_readonlypaths(Manager *m) {
52b84b
 
52b84b
-        test(m, "exec-readonlypaths-simple.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-readonlypaths-simple.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (path_is_read_only_fs("/var") > 0) {
52b84b
                 log_notice("Directory /var is readonly, skipping remaining tests in %s", __func__);
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-readonlypaths.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-readonlypaths-mount-propagation.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-readonlypaths-with-bindpaths.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-readonlypaths.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-readonlypaths-mount-propagation.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-readonlypaths-with-bindpaths.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_readwritepaths(Manager *m) {
52b84b
@@ -287,7 +297,7 @@ static void test_exec_readwritepaths(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-readwritepaths-mount-propagation.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-readwritepaths-mount-propagation.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_inaccessiblepaths(Manager *m) {
52b84b
@@ -297,22 +307,22 @@ static void test_exec_inaccessiblepaths(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-inaccessiblepaths-proc.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-inaccessiblepaths-proc.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (path_is_read_only_fs("/") > 0) {
52b84b
                 log_notice("Root directory is readonly, skipping remaining tests in %s", __func__);
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-inaccessiblepaths-mount-propagation.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-inaccessiblepaths-mount-propagation.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_temporaryfilesystem(Manager *m) {
52b84b
 
52b84b
-        test(m, "exec-temporaryfilesystem-options.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-temporaryfilesystem-ro.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-temporaryfilesystem-rw.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-temporaryfilesystem-usr.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-temporaryfilesystem-options.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-temporaryfilesystem-ro.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-temporaryfilesystem-rw.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-temporaryfilesystem-usr.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_systemcallfilter(Manager *m) {
52b84b
@@ -324,10 +334,10 @@ static void test_exec_systemcallfilter(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-systemcallfilter-not-failing.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-systemcallfilter-not-failing2.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-systemcallfilter-failing.service", SIGSYS, CLD_KILLED);
52b84b
-        test(m, "exec-systemcallfilter-failing2.service", SIGSYS, CLD_KILLED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-not-failing.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-not-failing2.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-failing.service", SIGSYS, CLD_KILLED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-failing2.service", SIGSYS, CLD_KILLED);
52b84b
 
52b84b
         r = find_binary("python3", NULL);
52b84b
         if (r < 0) {
52b84b
@@ -335,8 +345,8 @@ static void test_exec_systemcallfilter(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-systemcallfilter-with-errno-name.service", errno_from_name("EILSEQ"), CLD_EXITED);
52b84b
-        test(m, "exec-systemcallfilter-with-errno-number.service", 255, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-with-errno-name.service", errno_from_name("EILSEQ"), CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-with-errno-number.service", 255, CLD_EXITED);
52b84b
 #endif
52b84b
 }
52b84b
 
52b84b
@@ -355,8 +365,8 @@ static void test_exec_systemcallerrornumber(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-systemcallerrornumber-name.service", errno_from_name("EACCES"), CLD_EXITED);
52b84b
-        test(m, "exec-systemcallerrornumber-number.service", 255, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallerrornumber-name.service", errno_from_name("EACCES"), CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallerrornumber-number.service", 255, CLD_EXITED);
52b84b
 #endif
52b84b
 }
52b84b
 
52b84b
@@ -367,13 +377,13 @@ static void test_exec_restrictnamespaces(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-restrictnamespaces-no.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-restrictnamespaces-yes.service", 1, CLD_EXITED);
52b84b
-        test(m, "exec-restrictnamespaces-mnt.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-restrictnamespaces-mnt-blacklist.service", 1, CLD_EXITED);
52b84b
-        test(m, "exec-restrictnamespaces-merge-and.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-restrictnamespaces-merge-or.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-restrictnamespaces-merge-all.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-no.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-yes.service", 1, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-mnt.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-mnt-blacklist.service", 1, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-merge-and.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-merge-or.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-restrictnamespaces-merge-all.service", 0, CLD_EXITED);
52b84b
 #endif
52b84b
 }
52b84b
 
52b84b
@@ -384,7 +394,7 @@ static void test_exec_systemcallfilter_system(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-systemcallfilter-system-user.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-system-user.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (!check_nobody_user_and_group()) {
52b84b
                 log_notice("nobody user/group is not synthesized or may conflict to other entries, skipping remaining tests in %s", __func__);
52b84b
@@ -396,12 +406,12 @@ static void test_exec_systemcallfilter_system(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-systemcallfilter-system-user-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-systemcallfilter-system-user-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
 #endif
52b84b
 }
52b84b
 
52b84b
 static void test_exec_user(Manager *m) {
52b84b
-        test(m, "exec-user.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-user.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (!check_nobody_user_and_group()) {
52b84b
                 log_notice("nobody user/group is not synthesized or may conflict to other entries, skipping remaining tests in %s", __func__);
52b84b
@@ -413,11 +423,11 @@ static void test_exec_user(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-user-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-user-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_group(Manager *m) {
52b84b
-        test(m, "exec-group.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-group.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (!check_nobody_user_and_group()) {
52b84b
                 log_notice("nobody user/group is not synthesized or may conflict to other entries, skipping remaining tests in %s", __func__);
52b84b
@@ -429,31 +439,31 @@ static void test_exec_group(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-group-" NOBODY_GROUP_NAME ".service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-group-" NOBODY_GROUP_NAME ".service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_supplementarygroups(Manager *m) {
52b84b
-        test(m, "exec-supplementarygroups.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-supplementarygroups-single-group.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-supplementarygroups-single-group-user.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-supplementarygroups-multiple-groups-default-group-user.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-supplementarygroups-multiple-groups-withgid.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-supplementarygroups-multiple-groups-withuid.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-supplementarygroups.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-supplementarygroups-single-group.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-supplementarygroups-single-group-user.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-supplementarygroups-multiple-groups-default-group-user.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-supplementarygroups-multiple-groups-withgid.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-supplementarygroups-multiple-groups-withuid.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_dynamicuser(Manager *m) {
52b84b
-        test(m, "exec-dynamicuser-fixeduser.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-dynamicuser-fixeduser-one-supplementarygroup.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-dynamicuser-supplementarygroups.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-dynamicuser-statedir.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-dynamicuser-fixeduser.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-dynamicuser-fixeduser-one-supplementarygroup.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-dynamicuser-supplementarygroups.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-dynamicuser-statedir.service", 0, CLD_EXITED);
52b84b
 
52b84b
         (void) rm_rf("/var/lib/test-dynamicuser-migrate", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
         (void) rm_rf("/var/lib/test-dynamicuser-migrate2", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
         (void) rm_rf("/var/lib/private/test-dynamicuser-migrate", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
         (void) rm_rf("/var/lib/private/test-dynamicuser-migrate2", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
 
52b84b
-        test(m, "exec-dynamicuser-statedir-migrate-step1.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-dynamicuser-statedir-migrate-step2.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-dynamicuser-statedir-migrate-step1.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-dynamicuser-statedir-migrate-step2.service", 0, CLD_EXITED);
52b84b
 
52b84b
         (void) rm_rf("/var/lib/test-dynamicuser-migrate", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
         (void) rm_rf("/var/lib/test-dynamicuser-migrate2", REMOVE_ROOT|REMOVE_PHYSICAL);
52b84b
@@ -462,9 +472,9 @@ static void test_exec_dynamicuser(Manager *m) {
52b84b
 }
52b84b
 
52b84b
 static void test_exec_environment(Manager *m) {
52b84b
-        test(m, "exec-environment.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-environment-multiple.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-environment-empty.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-environment.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-environment-multiple.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-environment-empty.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_environmentfile(Manager *m) {
52b84b
@@ -484,7 +494,7 @@ static void test_exec_environmentfile(Manager *m) {
52b84b
         r = write_string_file("/tmp/test-exec_environmentfile.conf", e, WRITE_STRING_FILE_CREATE);
52b84b
         assert_se(r == 0);
52b84b
 
52b84b
-        test(m, "exec-environmentfile.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-environmentfile.service", 0, CLD_EXITED);
52b84b
 
52b84b
         (void) unlink("/tmp/test-exec_environmentfile.conf");
52b84b
 }
52b84b
@@ -506,26 +516,26 @@ static void test_exec_passenvironment(Manager *m) {
52b84b
         assert_se(setenv("VAR3", "$word 5 6", 1) == 0);
52b84b
         assert_se(setenv("VAR4", "new\nline", 1) == 0);
52b84b
         assert_se(setenv("VAR5", "passwordwithbackslashes", 1) == 0);
52b84b
-        test(m, "exec-passenvironment.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-passenvironment-repeated.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-passenvironment-empty.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-passenvironment.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-passenvironment-repeated.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-passenvironment-empty.service", 0, CLD_EXITED);
52b84b
         assert_se(unsetenv("VAR1") == 0);
52b84b
         assert_se(unsetenv("VAR2") == 0);
52b84b
         assert_se(unsetenv("VAR3") == 0);
52b84b
         assert_se(unsetenv("VAR4") == 0);
52b84b
         assert_se(unsetenv("VAR5") == 0);
52b84b
-        test(m, "exec-passenvironment-absent.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-passenvironment-absent.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_umask(Manager *m) {
52b84b
-        test(m, "exec-umask-default.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-umask-0177.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-umask-default.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-umask-0177.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_runtimedirectory(Manager *m) {
52b84b
-        test(m, "exec-runtimedirectory.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-runtimedirectory-mode.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-runtimedirectory-owner.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-runtimedirectory.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-runtimedirectory-mode.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-runtimedirectory-owner.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (!check_nobody_user_and_group()) {
52b84b
                 log_notice("nobody user/group is not synthesized or may conflict to other entries, skipping remaining tests in %s", __func__);
52b84b
@@ -537,7 +547,7 @@ static void test_exec_runtimedirectory(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-runtimedirectory-owner-" NOBODY_GROUP_NAME ".service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-runtimedirectory-owner-" NOBODY_GROUP_NAME ".service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_capabilityboundingset(Manager *m) {
52b84b
@@ -556,14 +566,14 @@ static void test_exec_capabilityboundingset(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-capabilityboundingset-simple.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-capabilityboundingset-reset.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-capabilityboundingset-merge.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-capabilityboundingset-invert.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-capabilityboundingset-simple.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-capabilityboundingset-reset.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-capabilityboundingset-merge.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-capabilityboundingset-invert.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_basic(Manager *m) {
52b84b
-        test(m, "exec-basic.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-basic.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_ambientcapabilities(Manager *m) {
52b84b
@@ -585,8 +595,8 @@ static void test_exec_ambientcapabilities(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-ambientcapabilities.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-ambientcapabilities-merge.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ambientcapabilities.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ambientcapabilities-merge.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (!check_nobody_user_and_group()) {
52b84b
                 log_notice("nobody user/group is not synthesized or may conflict to other entries, skipping remaining tests in %s", __func__);
52b84b
@@ -598,8 +608,8 @@ static void test_exec_ambientcapabilities(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-ambientcapabilities-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-ambientcapabilities-merge-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ambientcapabilities-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ambientcapabilities-merge-" NOBODY_USER_NAME ".service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_privatenetwork(Manager *m) {
52b84b
@@ -611,52 +621,52 @@ static void test_exec_privatenetwork(Manager *m) {
52b84b
                 return;
52b84b
         }
52b84b
 
52b84b
-        test(m, "exec-privatenetwork-yes.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-privatenetwork-yes.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_oomscoreadjust(Manager *m) {
52b84b
-        test(m, "exec-oomscoreadjust-positive.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-oomscoreadjust-positive.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (detect_container() > 0) {
52b84b
                 log_notice("Testing in container, skipping remaining tests in %s", __func__);
52b84b
                 return;
52b84b
         }
52b84b
-        test(m, "exec-oomscoreadjust-negative.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-oomscoreadjust-negative.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_ioschedulingclass(Manager *m) {
52b84b
-        test(m, "exec-ioschedulingclass-none.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-ioschedulingclass-idle.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-ioschedulingclass-best-effort.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ioschedulingclass-none.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ioschedulingclass-idle.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ioschedulingclass-best-effort.service", 0, CLD_EXITED);
52b84b
 
52b84b
         if (detect_container() > 0) {
52b84b
                 log_notice("Testing in container, skipping remaining tests in %s", __func__);
52b84b
                 return;
52b84b
         }
52b84b
-        test(m, "exec-ioschedulingclass-realtime.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-ioschedulingclass-realtime.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_unsetenvironment(Manager *m) {
52b84b
-        test(m, "exec-unsetenvironment.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-unsetenvironment.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_specifier(Manager *m) {
52b84b
-        test(m, "exec-specifier.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-specifier@foo-bar.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-specifier-interpolation.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-specifier.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-specifier@foo-bar.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-specifier-interpolation.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_standardinput(Manager *m) {
52b84b
-        test(m, "exec-standardinput-data.service", 0, CLD_EXITED);
52b84b
-        test(m, "exec-standardinput-file.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-standardinput-data.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-standardinput-file.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_standardoutput(Manager *m) {
52b84b
-        test(m, "exec-standardoutput-file.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-standardoutput-file.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 static void test_exec_standardoutput_append(Manager *m) {
52b84b
-        test(m, "exec-standardoutput-append.service", 0, CLD_EXITED);
52b84b
+        test(__func__, m, "exec-standardoutput-append.service", 0, CLD_EXITED);
52b84b
 }
52b84b
 
52b84b
 typedef struct test_entry {