From 06fb88b449806d6de7ca20c73778dd6545a38cf7 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 11 Feb 2013 10:52:30 -0800 Subject: tevent: Add in some test code to allow the panic fallback path to be tested. Signed-off-by: Jeremy Allison Reviewed-by: Stefan Metzmacher --- lib/tevent/tevent_epoll.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib/tevent/tevent_epoll.c') diff --git a/lib/tevent/tevent_epoll.c b/lib/tevent/tevent_epoll.c index 0ef1ffe909..5a17331da6 100644 --- a/lib/tevent/tevent_epoll.c +++ b/lib/tevent/tevent_epoll.c @@ -43,6 +43,24 @@ struct epoll_event_context { bool (*panic_fallback)(struct tevent_context *ev, bool replay); }; +#ifdef TEST_PANIC_FALLBACK +static int epoll_wait_panic_fallback(int epfd, + struct epoll_event *events, + int maxevents, + int timeout) +{ + /* 50% of the time, fail... */ + if ((random() % 2) == 0) { + errno = EINVAL; + return -1; + } + + return epoll_wait(epfd, events, maxevents, timeout); +} + +#define epoll_wait epoll_wait_panic_fallback +#endif + /* called to set the panic fallback function. */ -- cgit