mirror of
https://github.com/troglobit/libuev.git
synced 2026-10-02 13:52:35 +07:00
Many users look at both examples *and* unit tests to learn how to use a library. We should pride ourselves in that we have not just working but also correct and readable tests. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
32 lines
557 B
C
32 lines
557 B
C
#include "check.h"
|
|
#include <time.h>
|
|
#include <sys/time.h>
|
|
|
|
#define TIMEOUT 2 /* 2 sec */
|
|
struct timeval start;
|
|
|
|
static void cb(uev_t *w, void *UNUSED(arg), int events)
|
|
{
|
|
struct timeval now;
|
|
|
|
if (UEV_ERROR == events)
|
|
fprintf(stderr, "timer watcher failed, ignoring ...\n");
|
|
|
|
gettimeofday(&now, NULL);
|
|
fail_unless(now.tv_sec == start.tv_sec + TIMEOUT);
|
|
|
|
uev_exit(w->ctx);
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
uev_t w;
|
|
uev_ctx_t ctx;
|
|
|
|
uev_init(&ctx);
|
|
uev_timer_init(&ctx, &w, cb, NULL, TIMEOUT * 1000, 0);
|
|
gettimeofday(&start, NULL);
|
|
|
|
return uev_run(&ctx, 0);
|
|
}
|