From: Nick Mathewson Date: Fri, 17 Jul 2009 20:23:12 +0000 (+0000) Subject: Trivial tests to exercise deferred and locking bufferevent code. X-Git-Tag: release-2.0.3-alpha~171 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c02b305ae59a2ac8c01bce36c6c0dbc195503195;p=libevent Trivial tests to exercise deferred and locking bufferevent code. These are done as variations of test_bufferevent_connect, since that one exercises event callbacks as well as read/write callbacks. The coverage for bufferevent.c is now up to about 87%, from about 70%. svn:r1358 --- diff --git a/test/regress_bufferevent.c b/test/regress_bufferevent.c index 8ac87813..fd0c2944 100644 --- a/test/regress_bufferevent.c +++ b/test/regress_bufferevent.c @@ -448,6 +448,14 @@ test_bufferevent_connect(void *arg) struct bufferevent *bev1=NULL, *bev2=NULL; struct sockaddr_in localhost; struct sockaddr *sa = (struct sockaddr*)&localhost; + int be_flags=BEV_OPT_CLOSE_ON_FREE; + + if (strstr((char*)data->setup_data, "defer")) { + be_flags |= BEV_OPT_DEFER_CALLBACKS; + } + if (strstr((char*)data->setup_data, "lock")) { + be_flags |= BEV_OPT_THREADSAFE; + } memset(&localhost, 0, sizeof(localhost)); @@ -460,8 +468,10 @@ test_bufferevent_connect(void *arg) 16, sa, sizeof(localhost)); tt_assert(lev); tt_assert(!evconnlistener_enable(lev)); - bev1 = bufferevent_socket_new(data->base, -1, BEV_OPT_CLOSE_ON_FREE); - bev2 = bufferevent_socket_new(data->base, -1, BEV_OPT_CLOSE_ON_FREE); + bev1 = bufferevent_socket_new(data->base, -1, be_flags); + bev2 = bufferevent_socket_new(data->base, -1, be_flags); + tt_assert(bev1); + tt_assert(bev2); bufferevent_setcb(bev1, NULL, NULL, reader_eventcb, data->base); bufferevent_setcb(bev2, NULL, NULL, reader_eventcb, data->base); @@ -494,7 +504,11 @@ struct testcase_t bufferevent_testcases[] = { LEGACY(bufferevent_filters, TT_ISOLATED), LEGACY(bufferevent_pair_filters, TT_ISOLATED), { "bufferevent_connect", test_bufferevent_connect, TT_FORK|TT_NEED_BASE, - &basic_setup, NULL }, + &basic_setup, "" }, + { "bufferevent_connect_defer", test_bufferevent_connect, + TT_FORK|TT_NEED_BASE, &basic_setup, "defer" }, + { "bufferevent_connect_lock", test_bufferevent_connect, + TT_FORK|TT_NEED_BASE|TT_NEED_THREADS, &basic_setup, "lock" }, #ifdef _EVENT_HAVE_LIBZ LEGACY(bufferevent_zlib, TT_ISOLATED), #else