]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
testsuite: Add tests for sleep calculation
authorLucas De Marchi <lucas.de.marchi@gmail.com>
Fri, 3 Jun 2022 21:50:46 +0000 (14:50 -0700)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Mon, 27 Jun 2022 06:23:46 +0000 (23:23 -0700)
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
testsuite/test-util.c

index 621446b10503908371c5b820fe0f6dc8a4a5e1f0..fb8c9ef2240c228b60415082441d7ec2a36a12be 100644 (file)
@@ -229,4 +229,45 @@ DEFINE_TEST(test_addu64_overflow,
        );
 
 
+static int test_backoff_time(const struct test *t)
+{
+       unsigned long long delta;
+
+       /* Check exponential increments */
+       get_backoff_delta_msec(now_msec(), now_msec() + 10, &delta);
+       assert_return(delta == 1, EXIT_FAILURE);
+       get_backoff_delta_msec(now_msec(), now_msec() + 10, &delta);
+       assert_return(delta == 2, EXIT_FAILURE);
+       get_backoff_delta_msec(now_msec(), now_msec() + 10, &delta);
+       assert_return(delta == 4, EXIT_FAILURE);
+       get_backoff_delta_msec(now_msec(), now_msec() + 10, &delta);
+       assert_return(delta == 8, EXIT_FAILURE);
+
+       {
+               unsigned long long t0, tend;
+
+               /* Check tail */
+               delta = 4;
+               tend = now_msec() + 3;
+               t0 = tend - 10;
+               get_backoff_delta_msec(t0, tend, &delta);
+               assert_return(delta == 2, EXIT_FAILURE);
+               tend = now_msec() + 1;
+               t0 = tend - 9;
+               get_backoff_delta_msec(t0, tend, &delta);
+               assert_return(delta == 1, EXIT_FAILURE);
+               tend = now_msec();
+               t0 = tend - 10;
+               get_backoff_delta_msec(t0, tend, &delta);
+               assert_return(delta == 0, EXIT_FAILURE);
+       }
+
+       return EXIT_SUCCESS;
+}
+DEFINE_TEST(test_backoff_time,
+       .description = "check implementation of get_backoff_delta_msec()",
+       .need_spawn = false,
+       );
+
+
 TESTSUITE_MAIN();