]> granicus.if.org Git - libevent/commitdiff
test/regress_be: cover finalizers from inactive to active queue
authorAzat Khuzhin <a3at.mail@gmail.com>
Thu, 8 Oct 2015 22:40:02 +0000 (01:40 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Fri, 30 Oct 2015 11:45:20 +0000 (14:45 +0300)
Right now this will fail with the next assertion:
$ regress --no-fork --verbose bufferevent/bufferevent_socket_filter_inactive
bufferevent/bufferevent_socket_filter_inactive: [err] ../event.c:862: Assertion TAILQ_EMPTY(&base->activequeues[i]) failed in event_base_free_
Aborted

test/regress_bufferevent.c

index 81c5de5ab1f41c1039b6c69b02b56ee10b52fe9b..72636ca60eb510940dc59b954d1ef42ed0ad1841 100644 (file)
@@ -1151,6 +1151,23 @@ end:
                bufferevent_free(bev);
 }
 
+static void
+test_bufferevent_socket_filter_inactive(void *arg)
+{
+       struct basic_test_data *data = arg;
+       struct bufferevent *bev = NULL, *bevf = NULL;
+
+       bev = bufferevent_socket_new(data->base, -1, 0);
+       bevf = bufferevent_filter_new(bev, NULL, NULL, 0, NULL, NULL);
+
+end:
+       if (bevf)
+               bufferevent_free(bevf);
+       if (bev)
+               bufferevent_free(bev);
+}
+
+
 struct testcase_t bufferevent_testcases[] = {
 
        LEGACY(bufferevent, TT_ISOLATED),
@@ -1209,6 +1226,10 @@ struct testcase_t bufferevent_testcases[] = {
          test_bufferevent_connect_fail_eventcb,
          TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
 
+       { "bufferevent_socket_filter_inactive",
+         test_bufferevent_socket_filter_inactive,
+         TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
+
        END_OF_TESTCASES,
 };