mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-27 14:36:16 +01:00
tests: Add some rounding tolerance in timeout test
Occasionally this test fails in CI with the message: ``` assertion failed: (current_time / 1000000 - last_time / 1000000 == 1) ``` The way this calculation is done at the moment, a difference of 1001ms between `current_time` and `last_time` can result in failure, if the times are close to a multiple to 1000ms. Change it to only truncate the result after doing the subtraction, and add a 500ms tolerance to account for scheduling delays in the test. (For example, the `test_func()` could be called, then descheduled before it gets to call `g_get_monotonic_time()`. Additionally, change the test to use `g_assert_cmpint()` so that future failures provide more useful debug information. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
parent
a4be8577ed
commit
ff56386788
@ -152,11 +152,13 @@ test_func (gpointer data)
|
||||
|
||||
/* We accept 2 on the first iteration because _add_seconds() can
|
||||
* have an initial latency of 1 second, see its documentation.
|
||||
*
|
||||
* Allow up to 500ms leeway for rounding and scheduling.
|
||||
*/
|
||||
if (count == 0)
|
||||
g_assert (current_time / 1000000 - last_time / 1000000 <= 2);
|
||||
g_assert_cmpint (current_time / 1000 - last_time / 1000, <=, 2500);
|
||||
else
|
||||
g_assert (current_time / 1000000 - last_time / 1000000 == 1);
|
||||
g_assert_cmpint (current_time / 1000 - last_time / 1000, <=, 1500);
|
||||
|
||||
last_time = current_time;
|
||||
count++;
|
||||
|
Loading…
Reference in New Issue
Block a user