diff options
-rw-r--r-- | tests/data/DISABLED | 2 | ||||
-rw-r--r-- | tests/data/Makefile.am | 2 | ||||
-rw-r--r-- | tests/data/test1504 | 58 | ||||
-rw-r--r-- | tests/data/test1505 | 58 | ||||
-rw-r--r-- | tests/libtest/Makefile.inc | 10 | ||||
-rw-r--r-- | tests/libtest/lib1502.c | 20 |
6 files changed, 146 insertions, 4 deletions
diff --git a/tests/data/DISABLED b/tests/data/DISABLED index 0f2116c55..79cc31c41 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -6,3 +6,5 @@ 1209 1211 1503 +1504 +1505 diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 162f32f4a..5701eb5f2 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -93,7 +93,7 @@ test1379 test1380 test1381 test1382 test1383 test1384 test1385 test1386 \ test1387 test1388 test1389 test1390 test1391 test1392 test1393 \ test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \ test1408 test1409 test1410 test1411 test1412 test1413 \ -test1500 test1501 test1502 test1503 \ +test1500 test1501 test1502 test1503 test1504 test1505 \ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \ test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \ test2016 test2017 test2018 test2019 test2020 test2021 test2022 \ diff --git a/tests/data/test1504 b/tests/data/test1504 new file mode 100644 index 000000000..cedc9cce0 --- /dev/null +++ b/tests/data/test1504 @@ -0,0 +1,58 @@ +<testcase> +<info> +<keywords> +HTTP +HTTP GET +multi +CURLOPT_RESOLVE +</keywords> +</info> + +<reply> +<data> +HTTP/1.1 200 OK +Date: Thu, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 6 +Connection: close +Content-Type: text/html +Funny-head: yesyes + +-foo- +</data> +</reply> + +# +# Client-side +<client> +<server> +http +</server> +<tool> +lib1504 +</tool> + <name> +HTTP multi with CURLOPT_RESOLVE, cleanup sequence UB + </name> + <command> +http://google.com:%HTTPPORT/1504 %HTTPPORT %HOSTIP +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strip> +^User-Agent:.* +</strip> +<protocol> +GET /1504 HTTP/1.1
+Host: google.com:%HTTPPORT
+Accept: */*
+
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test1505 b/tests/data/test1505 new file mode 100644 index 000000000..3ab52849b --- /dev/null +++ b/tests/data/test1505 @@ -0,0 +1,58 @@ +<testcase> +<info> +<keywords> +HTTP +HTTP GET +multi +CURLOPT_RESOLVE +</keywords> +</info> + +<reply> +<data> +HTTP/1.1 200 OK +Date: Thu, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 6 +Connection: close +Content-Type: text/html +Funny-head: yesyes + +-foo- +</data> +</reply> + +# +# Client-side +<client> +<server> +http +</server> +<tool> +lib1505 +</tool> + <name> +HTTP multi with CURLOPT_RESOLVE, cleanup sequence PB + </name> + <command> +http://google.com:%HTTPPORT/1505 %HTTPPORT %HOSTIP +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strip> +^User-Agent:.* +</strip> +<protocol> +GET /1505 HTTP/1.1
+Host: google.com:%HTTPPORT
+Accept: */*
+
+</protocol> +</verify> +</testcase> diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc index 99da5a9c6..b9789f88f 100644 --- a/tests/libtest/Makefile.inc +++ b/tests/libtest/Makefile.inc @@ -20,7 +20,7 @@ noinst_PROGRAMS = chkhostname \ lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568 \ lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib586 lib587 \ lib590 lib591 lib597 lib598 lib599 libauthretry libntlmconnect \ - lib1500 lib1501 lib1502 lib1503 + lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c chkhostname_LDADD = @CURL_NETWORK_LIBS@ @@ -224,6 +224,14 @@ lib1503_SOURCES = lib1502.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1503_LDADD = $(TESTUTIL_LIBS) lib1503_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1503 +lib1504_SOURCES = lib1502.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) +lib1504_LDADD = $(TESTUTIL_LIBS) +lib1504_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1504 + +lib1505_SOURCES = lib1502.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) +lib1505_LDADD = $(TESTUTIL_LIBS) +lib1505_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1505 + libauthretry_SOURCES = libauthretry.c $(SUPPORTFILES) libntlmconnect_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) diff --git a/tests/libtest/lib1502.c b/tests/libtest/lib1502.c index 4cf89c4ab..2b50c4733 100644 --- a/tests/libtest/lib1502.c +++ b/tests/libtest/lib1502.c @@ -20,6 +20,9 @@ * ***************************************************************************/ /* + * This source code is used for lib1502, lib1503, lib1504 and lib1505 with + * only #ifdefs controlling the cleanup sequence. + * * Test case 1502 converted from bug report #3575448, identifying a memory * leak in the CURLOPT_RESOLVE handling with the multi interface. */ @@ -108,7 +111,6 @@ test_cleanup: #ifdef LIB1502 /* undocumented cleanup sequence - type UA */ - curl_multi_cleanup(multi); curl_easy_cleanup(easy); curl_global_cleanup(); @@ -116,13 +118,27 @@ test_cleanup: #ifdef LIB1503 /* proper cleanup sequence - type PA */ - curl_multi_remove_handle(multi, easy); curl_multi_cleanup(multi); curl_easy_cleanup(easy); curl_global_cleanup(); #endif +#ifdef LIB1504 + /* undocumented cleanup sequence - type UB */ + curl_easy_cleanup(easy); + curl_multi_cleanup(multi); + curl_global_cleanup(); +#endif + +#ifdef LIB1505 + /* proper cleanup sequence - type PB */ + curl_multi_remove_handle(multi, easy); + curl_easy_cleanup(easy); + curl_multi_cleanup(multi); + curl_global_cleanup(); +#endif + curl_slist_free_all(dns_cache_list); return res; |