From 6f6fa0d28a4249ead3a0446bd5a17fd6d47baf2f Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Wed, 9 Sep 2015 19:15:18 +0300 Subject: [PATCH] test/regress_http: cover evhttp_request_own() --- test/regress_http.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/test/regress_http.c b/test/regress_http.c index c86ec95f..9f56f503 100644 --- a/test/regress_http.c +++ b/test/regress_http.c @@ -971,6 +971,7 @@ http_allowed_methods_test(void *arg) evutil_closesocket(fd3); } +static void http_request_no_action_done(struct evhttp_request *, void *); static void http_request_done(struct evhttp_request *, void *); static void http_request_empty_done(struct evhttp_request *, void *); @@ -1334,6 +1335,13 @@ http_cancel_test(void *arg) evhttp_free(http); } +static void +http_request_no_action_done(struct evhttp_request *req, void *arg) +{ + EVUTIL_ASSERT(exit_base); + event_base_loopexit(exit_base, NULL); +} + static void http_request_done(struct evhttp_request *req, void *arg) { @@ -4055,6 +4063,41 @@ http_write_during_read_test(void *arg) evhttp_free(http); } +static void +http_request_own_test(void *arg) +{ + struct basic_test_data *data = arg; + ev_uint16_t port = 0; + struct evhttp_connection *evcon = NULL; + struct evhttp_request *req = NULL; + + test_ok = 0; + exit_base = data->base; + + http = http_setup(&port, data->base, 0); + evhttp_free(http); + + evcon = evhttp_connection_base_new(data->base, NULL, "127.0.0.1", port); + tt_assert(evcon); + + req = evhttp_request_new(http_request_no_action_done, NULL); + + if (evhttp_make_request(evcon, req, EVHTTP_REQ_GET, "/test") == -1) { + tt_abort_msg("Couldn't make request"); + } + evhttp_request_own(req); + + event_base_dispatch(data->base); + + end: + if (evcon) + evhttp_connection_free(evcon); + if (req) + evhttp_request_free(req); + + test_ok = 1; +} + #define HTTP_LEGACY(name) \ { #name, run_legacy_test_fn, TT_ISOLATED|TT_LEGACY, &legacy_setup, \ http_##name##_test } @@ -4116,6 +4159,7 @@ struct testcase_t http_testcases[] = { HTTP(set_family_ipv6), HTTP(write_during_read), + HTTP(request_own), END_OF_TESTCASES }; -- 2.50.1