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;
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.");
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;
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;
}