Changeset View
Changeset View
Standalone View
Standalone View
head/graphics/wayland/files/patch-tests_event-loop-test.c
--- tests/event-loop-test.c.orig 2017-08-08 18:20:52 UTC | --- tests/event-loop-test.c.orig 2020-02-11 23:46:03 UTC | ||||
+++ tests/event-loop-test.c | +++ tests/event-loop-test.c | ||||
@@ -167,10 +167,10 @@ TEST(event_loop_signal) | @@ -168,10 +168,10 @@ TEST(event_loop_signal) | ||||
signal_callback, &got_it); | signal_callback, &got_it); | ||||
assert(source); | assert(source); | ||||
- wl_event_loop_dispatch(loop, 0); | - wl_event_loop_dispatch(loop, 0); | ||||
+ assert(wl_event_loop_dispatch(loop, 0) == 0); | + assert(wl_event_loop_dispatch(loop, 0) == 0); | ||||
assert(!got_it); | assert(!got_it); | ||||
- kill(getpid(), SIGUSR1); | - kill(getpid(), SIGUSR1); | ||||
- wl_event_loop_dispatch(loop, 0); | - wl_event_loop_dispatch(loop, 0); | ||||
+ assert(kill(getpid(), SIGUSR1) == 0); | + assert(kill(getpid(), SIGUSR1) == 0); | ||||
+ assert(wl_event_loop_dispatch(loop, 0) == 0); | + assert(wl_event_loop_dispatch(loop, 0) == 0); | ||||
assert(got_it == 1); | assert(got_it == 1); | ||||
wl_event_source_remove(source); | wl_event_source_remove(source); | ||||
@@ -234,11 +234,19 @@ TEST(event_loop_timer) | @@ -235,11 +235,11 @@ TEST(event_loop_timer) | ||||
source = wl_event_loop_add_timer(loop, timer_callback, &got_it); | source1 = wl_event_loop_add_timer(loop, timer_callback, &got_it); | ||||
assert(source); | assert(source1); | ||||
- wl_event_source_timer_update(source, 10); | - wl_event_source_timer_update(source1, 20); | ||||
- wl_event_loop_dispatch(loop, 0); | + assert(wl_event_source_timer_update(source1, 20) == 0); | ||||
+ assert(wl_event_source_timer_update(source, 10) == 0); | |||||
+ assert(wl_event_loop_dispatch(loop, 0) == 0); | source2 = wl_event_loop_add_timer(loop, timer_callback, &got_it); | ||||
assert(!got_it); | assert(source2); | ||||
- wl_event_loop_dispatch(loop, 20); | - wl_event_source_timer_update(source2, 100); | ||||
+ /* FreeBSD has a bug where it converts ms_timeout to ticks; it always adds 1 to the tick count. | + assert(wl_event_source_timer_update(source2, 100) == 0); | ||||
+ * Consequently, we need to grossly overcompensate here. | |||||
+ * See: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/hackers/2012-07/msg00319.html */ | /* Check that the timer marked for 20 msec from now fires within 30 | ||||
+ assert(wl_event_loop_dispatch(loop, 50) == 0); | * msec, and that the timer marked for 100 msec is expected to fire | ||||
@@ -248,11 +248,11 @@ TEST(event_loop_timer) | |||||
wl_event_loop_dispatch(loop, 0); | |||||
assert(got_it == 0); | |||||
- wl_event_loop_dispatch(loop, 30); | |||||
+ assert(wl_event_loop_dispatch(loop, 30) == 0); | |||||
assert(got_it == 1); | assert(got_it == 1); | ||||
+ | wl_event_loop_dispatch(loop, 0); | ||||
+ /* Check it doesn't fire again. */ | assert(got_it == 1); | ||||
+ got_it = 0; | - wl_event_loop_dispatch(loop, 90); | ||||
+ assert(wl_event_loop_dispatch(loop, 20) == 0); | + assert(wl_event_loop_dispatch(loop, 90) == 0); | ||||
+ assert(!got_it); | assert(got_it == 2); | ||||
wl_event_source_remove(source); | wl_event_source_remove(source1); | ||||
wl_event_loop_destroy(loop); |