From 481799afd2d4b3161d97399a67f219bb33f17b84 Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Sat, 8 Mar 2003 14:21:14 +0000 Subject: [PATCH] add persist test svn:r47 --- test/regress.c | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/test/regress.c b/test/regress.c index 949902d2..21a0cd40 100644 --- a/test/regress.c +++ b/test/regress.c @@ -49,6 +49,7 @@ static char wbuf[4096]; static char rbuf[4096]; static int woff; static int roff; +static int usepersist; static struct timeval tset; static struct timeval tcalled; @@ -104,10 +105,13 @@ multiple_write_cb(int fd, short event, void *arg) if (woff >= sizeof(wbuf)) { shutdown(pair[0], SHUT_WR); + if (usepersist) + event_del(ev); return; } - event_add(ev, NULL); + if (!usepersist) + event_add(ev, NULL); } void @@ -121,11 +125,15 @@ multiple_read_cb(int fd, short event, void *arg) fprintf(stderr, "%s: read\n", __func__); return; } - if (len == 0) + if (len == 0) { + if (usepersist) + event_del(ev); return; + } roff += len; - event_add(ev, NULL); + if (!usepersist) + event_add(ev, NULL); } void @@ -205,7 +213,7 @@ main (int argc, char **argv) event_init(); /* Very simple read test */ - setup_test("Simple read :"); + setup_test("Simple read: "); write(pair[0], TEST1, strlen(TEST1)+1); shutdown(pair[0], SHUT_WR); @@ -227,10 +235,12 @@ main (int argc, char **argv) /* Multiple read and write test */ setup_test("Multiple read/write: "); + memset(rbuf, 0, sizeof(rbuf)); for (i = 0; i < sizeof(wbuf); i++) wbuf[i] = i; roff = woff = 0; + usepersist = 0; event_set(&ev, pair[0], EV_WRITE, multiple_write_cb, &ev); event_add(&ev, NULL); @@ -243,6 +253,26 @@ main (int argc, char **argv) cleanup_test(); + /* Multiple read and write test with persist */ + setup_test("Persist read/write: "); + memset(rbuf, 0, sizeof(rbuf)); + for (i = 0; i < sizeof(wbuf); i++) + wbuf[i] = i; + + roff = woff = 0; + usepersist = 1; + + event_set(&ev, pair[0], EV_WRITE|EV_PERSIST, multiple_write_cb, &ev); + event_add(&ev, NULL); + event_set(&ev2, pair[1], EV_READ|EV_PERSIST, multiple_read_cb, &ev2); + event_add(&ev2, NULL); + event_dispatch(); + + if (roff == woff) + test_ok = memcmp(rbuf, wbuf, sizeof(wbuf)) == 0; + + cleanup_test(); + setup_test("Simple timeout: "); tv.tv_usec = 0; -- 2.50.1