]> granicus.if.org Git - libevent/commitdiff
test: add --retries-delay (and set to 1 second by default)
authorAzat Khuzhin <azat@libevent.org>
Sun, 19 Sep 2021 10:18:40 +0000 (13:18 +0300)
committerAzat Khuzhin <azat@libevent.org>
Sun, 19 Sep 2021 10:49:18 +0000 (13:49 +0300)
In attemp to address failures of dns/tcp_* tests under windows [1].

  [1]: https://github.com/azat/libevent/runs/3644218468?check_suite_focus=true

test/tinytest.c

index 5314c424d8aceabe5b76b114ef90a4eec21aa039..76b2f02e461462d1ae9c2b703543c1fd081ed213 100644 (file)
@@ -73,6 +73,7 @@ static int opt_nofork = 0; /**< Suppress calls to fork() for debugging. */
 static int opt_verbosity = 1; /**< -==quiet,0==terse,1==normal,2==verbose */
 static unsigned int opt_timeout = DEFAULT_TESTCASE_TIMEOUT; /**< Timeout for every test (using alarm()) */
 static unsigned int opt_retries = 3; /**< How much test with TT_RETRIABLE should be retried */
+static unsigned int opt_retries_delay = 1; /**< How much seconds to delay before retrying */
 const char *verbosity_flag = "";
 
 const struct testlist_alias_t *cfg_aliases=NULL;
@@ -399,7 +400,15 @@ tinytest_set_flag_(struct testgroup_t *groups, const char *arg, int set, unsigne
 static void
 usage(struct testgroup_t *groups, int list_groups)
 {
-       puts("Options are: [--verbose|--quiet|--terse] [--no-fork] [--timeout <sec>] [--retries <n>]");
+       puts("Options are:");
+       puts("  --verbose");
+       puts("  --quiet");
+       puts("  --terse");
+       puts("  --no-fork");
+       puts("  --timeout <sec>");
+       puts("  --retries <n>");
+       puts("  --retries-delay <n>");
+       puts("");
        puts("  Specify tests by name, or using a prefix ending with '..'");
        puts("  To skip a test, prefix its name with a colon.");
        puts("  To enable a disabled test, prefix its name with a plus.");
@@ -510,6 +519,13 @@ tinytest_main(int c, const char **v, struct testgroup_t *groups)
                                        return -1;
                                }
                                opt_retries = (unsigned)atoi(v[i]);
+                       } else if (!strcmp(v[i], "--retries-delay")) {
+                               ++i;
+                               if (i >= c) {
+                                       fprintf(stderr, "--retries-delay requires argument\n");
+                                       return -1;
+                               }
+                               opt_retries_delay = (unsigned)atoi(v[i]);
                        } else {
                                fprintf(stderr, "Unknown option %s. Try --help\n", v[i]);
                                return -1;
@@ -546,7 +562,12 @@ tinytest_main(int c, const char **v, struct testgroup_t *groups)
                                        break;
                                if (!(testcase->flags & TT_RETRIABLE))
                                        break;
-                               printf("\n  [RETRYING %s (%i)]\n", testcase->name, attempts);
+                               printf("\n  [RETRYING %s (attempts left %i, delay %i sec)]\n", testcase->name, attempts, opt_retries_delay);
+#ifdef _WIN32
+                               Sleep(opt_retries_delay * 1000);
+#else
+                               sleep(opt_retries_delay);
+#endif
                                if (!attempts--)
                                        break;
                        }