test timeouts
authorNiels Provos <provos@gmail.com>
Sun, 15 Sep 2002 18:55:21 +0000 (18:55 +0000)
committerNiels Provos <provos@gmail.com>
Sun, 15 Sep 2002 18:55:21 +0000 (18:55 +0000)
svn:r33

test/test-time.c [new file with mode: 0644]

diff --git a/test/test-time.c b/test/test-time.c
new file mode 100644 (file)
index 0000000..a26c973
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Compile with:
+ * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <event.h>
+
+int called = 0;
+
+#define NEVENT 20000
+
+struct event *ev[NEVENT];
+
+void
+time_cb(int fd, short event, void *arg)
+{
+       struct timeval tv;
+       int i, j;
+
+       called++;
+
+       if (called < 10*NEVENT) {
+               for (i = 0; i < 10; i++) {
+                       j = random() % NEVENT;
+                       tv.tv_sec = 0;
+                       tv.tv_usec = random() % 50000L;
+                       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;
+
+       /* 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 = random() % 50000L;
+               evtimer_add(ev[i], &tv);
+       }
+
+       event_dispatch();
+
+       return (called < NEVENT);
+}
+