test: when skipping tests, always print something
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 12 Sep 2018 11:25:45 +0000 (13:25 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 13 Sep 2018 10:07:34 +0000 (12:07 +0200)
It is quite confusing if the test "fails" without printing anything at all.

A typo in an 'if' statement is also fixed.

src/libsystemd-network/test-dhcp-server.c
src/test/test-boot-timestamps.c
src/test/test-capability.c

index 815b11e..3de25b0 100644 (file)
@@ -54,9 +54,8 @@ static int test_basic(sd_event *event) {
         test_pool(&address_lo, 1, 0);
 
         r = sd_dhcp_server_start(server);
-
         if (r == -EPERM)
-                return EXIT_TEST_SKIP;
+                return log_info_errno(r, "sd_dhcp_server_start failed: %m");
         assert_se(r >= 0);
 
         assert_se(sd_dhcp_server_start(server) == -EBUSY);
@@ -236,8 +235,10 @@ int main(int argc, char *argv[]) {
         assert_se(sd_event_new(&e) >= 0);
 
         r = test_basic(e);
-        if (r != 0)
-                return r;
+        if (r != 0) {
+                log_notice("%s: skipping tests.", program_invocation_short_name);
+                return EXIT_TEST_SKIP;
+        }
 
         test_message_handler();
         test_client_id_hash();
index ef39304..e7deee5 100644 (file)
@@ -91,5 +91,10 @@ int main(int argc, char* argv[]) {
         r = test_boot_timestamps();
         assert(r >= 0);
 
-        return (p > 0 || q > 0 || r >> 0) ? EXIT_SUCCESS : EXIT_TEST_SKIP;
+        bool any = p > 0 || q > 0 || r > 0;
+        if (!any)
+                log_notice("%s: access to firmware variable not possible, skipping tests.",
+                           program_invocation_short_name);
+
+        return any ? EXIT_SUCCESS : EXIT_TEST_SKIP;
 }
index af6d808..5e2d21b 100644 (file)
@@ -91,10 +91,9 @@ static int setup_tests(bool *run_ambient) {
         int r;
 
         nobody = getpwnam(NOBODY_USER_NAME);
-        if (!nobody) {
-                log_error_errno(errno, "Could not find nobody user: %m");
-                return -EXIT_TEST_SKIP;
-        }
+        if (!nobody)
+                return log_error_errno(errno, "Could not find nobody user: %m");
+
         test_uid = nobody->pw_uid;
         test_gid = nobody->pw_gid;
 
@@ -229,12 +228,16 @@ int main(int argc, char *argv[]) {
 
         log_info("have ambient caps: %s", yes_no(ambient_capabilities_supported()));
 
-        if (getuid() != 0)
+        if (getuid() != 0) {
+                log_notice("%s: not root, skipping tests.", program_invocation_short_name);
                 return EXIT_TEST_SKIP;
+        }
 
         r = setup_tests(&run_ambient);
-        if (r < 0)
-                return -r;
+        if (r < 0) {
+                log_notice("%s: skipping tests.", program_invocation_short_name);
+                return EXIT_TEST_SKIP;
+        }
 
         show_capabilities();