X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=libevent%2Ftest%2Ftest-time.c;fp=libevent%2Ftest%2Ftest-time.c;h=5628696ed43ce50b469f2f3d7ebbed99ab156c77;hp=0000000000000000000000000000000000000000;hb=9c8a21a5a13808bab520bd257b3d0a6fe16c6b07;hpb=4cafdfb9f307e9cc6131a79d09011ef09f3b8f20 diff --git a/libevent/test/test-time.c b/libevent/test/test-time.c new file mode 100644 index 00000000..5628696e --- /dev/null +++ b/libevent/test/test-time.c @@ -0,0 +1,92 @@ +/* + * Compile with: + * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent + */ +#include "event2/event-config.h" + +#include +#include +#include +#include +#include +#include +#ifndef WIN32 +#include +#include +#endif +#include + +#include "event2/event.h" +#include "event2/event_compat.h" +#include "event2/event_struct.h" + +int called = 0; + +#define NEVENT 20000 + +struct event *ev[NEVENT]; + +static int +rand_int(int n) +{ +#ifdef WIN32 + return (int)(rand() % n); +#else + return (int)(random() % n); +#endif +} + +static void +time_cb(evutil_socket_t fd, short event, void *arg) +{ + struct timeval tv; + int i, j; + + called++; + + if (called < 10*NEVENT) { + for (i = 0; i < 10; i++) { + j = rand_int(NEVENT); + tv.tv_sec = 0; + tv.tv_usec = rand_int(50000); + if (tv.tv_usec % 2) + evtimer_add(ev[j], &tv); + else + evtimer_del(ev[j]); + } + } +} + +int +main(int argc, char **argv) +{ + struct timeval tv; + int i; +#ifdef WIN32 + WORD wVersionRequested; + WSADATA wsaData; + int err; + + wVersionRequested = MAKEWORD(2, 2); + + err = WSAStartup(wVersionRequested, &wsaData); +#endif + + /* Initalize the event library */ + event_init(); + + for (i = 0; i < NEVENT; i++) { + ev[i] = malloc(sizeof(struct event)); + + /* Initalize one event */ + evtimer_set(ev[i], time_cb, ev[i]); + tv.tv_sec = 0; + tv.tv_usec = rand_int(50000); + evtimer_add(ev[i], &tv); + } + + event_dispatch(); + + return (called < NEVENT); +} +