]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-daemon: sleep just a little bit by default 6365/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 12 Jul 2017 22:01:46 +0000 (22:01 +0000)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 13 Jul 2017 21:55:02 +0000 (17:55 -0400)
With previous commits, test-daemon is one of the slowest tests.
Under normal circumstances, the notifications go nowhere anyway,
because the test process does not have privileges.

The timeout can be specified as an argument. This is useful to
e.g. test handling of the notifications, which is much easier
with a longer timeout.

src/test/test-daemon.c

index a7cb4262824846d97a6b33e914142d57f39eb859..e5887cc06ab7a5f8e60b9a66654ecadf088bbde9 100644 (file)
 
 #include "sd-daemon.h"
 
+#include "parse-util.h"
 #include "strv.h"
 
 int main(int argc, char*argv[]) {
         _cleanup_strv_free_ char **l = NULL;
         int n, i;
+        usec_t duration = USEC_PER_SEC / 10;
+
+        if (argc >= 2) {
+                unsigned x;
+
+                assert_se(safe_atou(argv[1], &x) >= 0);
+                duration = x * USEC_PER_SEC;
+        }
 
         n = sd_listen_fds_with_names(false, &l);
         if (n < 0) {
@@ -38,27 +47,27 @@ int main(int argc, char*argv[]) {
 
         sd_notify(0,
                   "STATUS=Starting up");
-        sleep(1);
+        usleep(duration);
 
         sd_notify(0,
                   "STATUS=Running\n"
                   "READY=1");
-        sleep(1);
+        usleep(duration);
 
         sd_notify(0,
                   "STATUS=Reloading\n"
                   "RELOADING=1");
-        sleep(1);
+        usleep(duration);
 
         sd_notify(0,
                   "STATUS=Running\n"
                   "READY=1");
-        sleep(1);
+        usleep(duration);
 
         sd_notify(0,
                   "STATUS=Quitting\n"
                   "STOPPING=1");
-        sleep(1);
+        usleep(duration);
 
         return EXIT_SUCCESS;
 }