mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-17 16:29:28 -04:00
Add a unit test in which an event is created with event_base_once() but never fires
This commit is contained in:
parent
0a396a02ba
commit
4343edf3c6
@ -2259,6 +2259,32 @@ end:
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_event_once_never(void *ptr)
|
||||||
|
{
|
||||||
|
struct basic_test_data *data = ptr;
|
||||||
|
struct timeval tv;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
/* Have one trigger in 10 seconds (don't worry, because) */
|
||||||
|
tv.tv_sec = 10;
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
called = 0;
|
||||||
|
r = event_base_once(data->base, -1, EV_TIMEOUT,
|
||||||
|
timeout_called_once_cb, NULL, &tv);
|
||||||
|
|
||||||
|
/* But shut down the base in 75 msec. */
|
||||||
|
tv.tv_sec = 0;
|
||||||
|
tv.tv_usec = 75*1000;
|
||||||
|
event_base_loopexit(data->base, &tv);
|
||||||
|
|
||||||
|
event_base_dispatch(data->base);
|
||||||
|
|
||||||
|
tt_int_op(called, ==, 0);
|
||||||
|
end:
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_event_pending(void *ptr)
|
test_event_pending(void *ptr)
|
||||||
{
|
{
|
||||||
@ -2562,6 +2588,7 @@ struct testcase_t main_testcases[] = {
|
|||||||
LEGACY(multiple_events_for_same_fd, TT_ISOLATED),
|
LEGACY(multiple_events_for_same_fd, TT_ISOLATED),
|
||||||
LEGACY(want_only_once, TT_ISOLATED),
|
LEGACY(want_only_once, TT_ISOLATED),
|
||||||
{ "event_once", test_event_once, TT_ISOLATED, &basic_setup, NULL },
|
{ "event_once", test_event_once, TT_ISOLATED, &basic_setup, NULL },
|
||||||
|
{ "event_once_never", test_event_once_never, TT_ISOLATED, &basic_setup, NULL },
|
||||||
{ "event_pending", test_event_pending, TT_ISOLATED, &basic_setup,
|
{ "event_pending", test_event_pending, TT_ISOLATED, &basic_setup,
|
||||||
NULL },
|
NULL },
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
Loading…
x
Reference in New Issue
Block a user