From: Azat Khuzhin Date: Wed, 2 Sep 2015 14:17:43 +0000 (+0300) Subject: test/regress_ssl: covert that we can't change fd with underlying X-Git-Tag: release-2.1.6-beta~90^2~55^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df507afafd370bdfa19dc275adf1815e80f8a269;p=libevent test/regress_ssl: covert that we can't change fd with underlying --- diff --git a/test/regress_ssl.c b/test/regress_ssl.c index e8cff947..6896e8ec 100644 --- a/test/regress_ssl.c +++ b/test/regress_ssl.c @@ -199,10 +199,15 @@ enum regress_openssl_type }; static void -bufferevent_openssl_check_fd(struct bufferevent *bev) +bufferevent_openssl_check_fd(struct bufferevent *bev, int filter) { - tt_int_op(bufferevent_getfd(bev), !=, -1); - tt_int_op(bufferevent_setfd(bev, -1), ==, 0); + if (filter) { + tt_int_op(bufferevent_getfd(bev), ==, -1); + tt_int_op(bufferevent_setfd(bev, -1), ==, -1); + } else { + tt_int_op(bufferevent_getfd(bev), !=, -1); + tt_int_op(bufferevent_setfd(bev, -1), ==, 0); + } tt_int_op(bufferevent_getfd(bev), ==, -1); end: @@ -290,7 +295,7 @@ eventcb(struct bufferevent *bev, short what, void *ctx) TT_BLATHER(("Got a good EOF")); ++got_close; if (type & REGRESS_OPENSSL_FD) { - bufferevent_openssl_check_fd(bev); + bufferevent_openssl_check_fd(bev, type & REGRESS_OPENSSL_FILTER); } if (type & REGRESS_OPENSSL_FREED) { bufferevent_openssl_check_freed(bev); @@ -300,7 +305,7 @@ eventcb(struct bufferevent *bev, short what, void *ctx) TT_BLATHER(("Got an error.")); ++got_error; if (type & REGRESS_OPENSSL_FD) { - bufferevent_openssl_check_fd(bev); + bufferevent_openssl_check_fd(bev, type & REGRESS_OPENSSL_FILTER); } if (type & REGRESS_OPENSSL_FREED) { bufferevent_openssl_check_freed(bev); @@ -569,6 +574,9 @@ struct testcase_t ssl_testcases[] = { { "bufferevent_socketpair_freed_fd", regress_bufferevent_openssl, TT_ISOLATED, &basic_setup, T(REGRESS_OPENSSL_SOCKETPAIR | REGRESS_OPENSSL_FREED | REGRESS_OPENSSL_FD) }, + { "bufferevent_filter_freed_fd", regress_bufferevent_openssl, + TT_ISOLATED, &basic_setup, + T(REGRESS_OPENSSL_FILTER | REGRESS_OPENSSL_FREED | REGRESS_OPENSSL_FD) }, #undef T { "bufferevent_connect", regress_bufferevent_openssl_connect,