The raw_skew test currently sleeps for 120 seconds to estimate clock drift. This is a very long time for a single test, and can cause timeouts in automated test suites or CI systems.
Allow overriding the sleep time via a command line argument, so it can be adjusted if needed in different environments, while keeping the default at 120 seconds to preserve original behavior. Also add -h/--help support to document this option. Signed-off-by: Wake Liu <[email protected]> --- tools/testing/selftests/timers/raw_skew.c | 24 +++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/timers/raw_skew.c b/tools/testing/selftests/timers/raw_skew.c index a7bae7d80916..5fff3eaf1307 100644 --- a/tools/testing/selftests/timers/raw_skew.c +++ b/tools/testing/selftests/timers/raw_skew.c @@ -27,6 +27,7 @@ #include <time.h> #include <include/vdso/time64.h> #include "kselftest.h" +#include <string.h> #define shift_right(x, s) ({ \ __typeof__(x) __x = (x); \ @@ -87,11 +88,30 @@ void get_monotonic_and_raw(struct timespec *mon, struct timespec *raw) } } +static void usage(char *argv0) +{ + printf("Usage: %s [sleep_secs]\n", argv0); + printf(" sleep_secs: time to sleep in seconds to estimate clock drift (default: 120s)\n"); +} + int main(int argc, char **argv) { struct timespec mon, raw, start, end; long long delta1, delta2, interval, eppm, ppm; struct timex tx1, tx2; + int sleep_sec = 120; + + if (argc > 1) { + if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) { + usage(argv[0]); + ksft_exit_pass(); + } + sleep_sec = atoi(argv[1]); + if (sleep_sec <= 0) { + printf("Invalid sleep time, using default 120s\n"); + sleep_sec = 120; + } + } setbuf(stdout, NULL); @@ -109,9 +129,9 @@ int main(int argc, char **argv) if (tx1.offset) printf("WARNING: ADJ_OFFSET in progress, this will cause inaccurate results\n"); - printf("Estimating clock drift: "); + printf("Estimating clock drift (%ds): ", sleep_sec); fflush(stdout); - sleep(120); + sleep(sleep_sec); get_monotonic_and_raw(&mon, &raw); end = mon; -- 2.55.0.795.g602f6c329a-goog

