]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-watchdog: wait just one cycle unless $SYSTEMD_SLOW_TESTS
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 12 Jul 2017 21:11:04 +0000 (21:11 +0000)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 13 Jul 2017 21:54:59 +0000 (17:54 -0400)
Also, if we fail to set the watchdog, run through the rest of the test
without waiting. I think it's useful to still start the commands to
test the error paths, but we can do it quickly.

src/test/test-watchdog.c

index e3c19647fc97f3f431dcfe0d9b31928cb6625d49..276b803cc2f11017e528f3022e27c0d8bb7ecb4c 100644 (file)
 
 #include <unistd.h>
 
+#include "env-util.h"
 #include "log.h"
 #include "watchdog.h"
 
 int main(int argc, char *argv[]) {
-        usec_t t = 10 * USEC_PER_SEC;
-        unsigned i;
+        usec_t t;
+        unsigned i, count;
         int r;
+        bool slow;
 
         log_set_max_level(LOG_DEBUG);
         log_parse_environment();
 
+        r = getenv_bool("SYSTEMD_SLOW_TESTS");
+        slow = r >= 0 ? r : SYSTEMD_SLOW_TESTS_DEFAULT;
+
+        t = slow ? 10 * USEC_PER_SEC : 1 * USEC_PER_SEC;
+        count = slow ? 5 : 3;
+
         r = watchdog_set_timeout(&t);
         if (r < 0)
                 log_warning_errno(r, "Failed to open watchdog: %m");
+        if (r == -EPERM)
+                t = 0;
 
-        for (i = 0; i < 5; i++) {
+        for (i = 0; i < count; i++) {
                 log_info("Pinging...");
                 r = watchdog_ping();
                 if (r < 0)