This is an automated email from the ASF dual-hosted git repository. masaori pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push: new 344950e997 LSan: Fix memory leak of test_proxy_hdrs (#10542) 344950e997 is described below commit 344950e99736681e58e6a2455fb306862570c2ed Author: Masaori Koshiba <masa...@apache.org> AuthorDate: Tue Oct 17 07:27:36 2023 +0900 LSan: Fix memory leak of test_proxy_hdrs (#10542) * LSan: Fix memory leak of test_proxy_hdrs * Suppress test_http_hdr_print_and_copy_aux leak --- ci/asan_leak_suppression/unit_tests.txt | 2 ++ proxy/hdrs/Makefile.am | 1 + proxy/hdrs/unit_tests/test_Hdrs.cc | 5 +++++ proxy/http/unit_tests/test_HttpTransact.cc | 21 +++++++++++++++++++++ 4 files changed, 29 insertions(+) diff --git a/ci/asan_leak_suppression/unit_tests.txt b/ci/asan_leak_suppression/unit_tests.txt index f1848dacd5..da34e83c61 100644 --- a/ci/asan_leak_suppression/unit_tests.txt +++ b/ci/asan_leak_suppression/unit_tests.txt @@ -6,3 +6,5 @@ leak:CRYPTO_realloc leak:ConsCell # PR#10295 leak:pcre_jit_stack_alloc +# PR#10541 +leak:test_http_hdr_print_and_copy_aux diff --git a/proxy/hdrs/Makefile.am b/proxy/hdrs/Makefile.am index 670317c1b2..b1691d6610 100644 --- a/proxy/hdrs/Makefile.am +++ b/proxy/hdrs/Makefile.am @@ -72,6 +72,7 @@ check_PROGRAMS = \ test_XPACK TESTS = $(check_PROGRAMS) +TESTS_ENVIRONMENT = LSAN_OPTIONS=suppressions=$(abs_top_srcdir)/ci/asan_leak_suppression/unit_tests.txt test_proxy_hdrs_CPPFLAGS = $(AM_CPPFLAGS) \ -I$(abs_top_srcdir)/lib/catch2 diff --git a/proxy/hdrs/unit_tests/test_Hdrs.cc b/proxy/hdrs/unit_tests/test_Hdrs.cc index 4f70c2d063..265edb0993 100644 --- a/proxy/hdrs/unit_tests/test_Hdrs.cc +++ b/proxy/hdrs/unit_tests/test_Hdrs.cc @@ -32,6 +32,7 @@ #include "tscore/Regex.h" #include "tscore/ink_time.h" #include "tscore/Random.h" +#include "tscpp/util/PostScript.h" #include "catch.hpp" @@ -280,6 +281,7 @@ test_http_hdr_null_char(int testnum, const char *request, const char * /*request { int err; HTTPHdr hdr; + ts::PostScript hdr_defer([&]() -> void { hdr.destroy(); }); HTTPParser parser; const char *start; char cpy_buf[2048]; @@ -308,6 +310,7 @@ test_http_hdr_null_char(int testnum, const char *request, const char * /*request break; } } + if (err != PARSE_RESULT_ERROR) { std::printf("FAILED: (test #%d) no parse error parsing request with null char\n", testnum); return (0); @@ -320,6 +323,7 @@ test_http_hdr_ctl_char(int testnum, const char *request, const char * /*request_ { int err; HTTPHdr hdr; + ts::PostScript hdr_defer([&]() -> void { hdr.destroy(); }); HTTPParser parser; const char *start; char cpy_buf[2048]; @@ -571,6 +575,7 @@ TEST_CASE("HdrTest", "[proxy][hdrtest]") }; MIMEHdr hdr; + ts::PostScript hdr_defer([&]() -> void { hdr.destroy(); }); MIMEParser parser; mime_parser_init(&parser); diff --git a/proxy/http/unit_tests/test_HttpTransact.cc b/proxy/http/unit_tests/test_HttpTransact.cc index 518e173236..25cf06ce9c 100644 --- a/proxy/http/unit_tests/test_HttpTransact.cc +++ b/proxy/http/unit_tests/test_HttpTransact.cc @@ -22,7 +22,10 @@ */ #include <string_view> + #include "tscore/Diags.h" +#include "tscpp/util/PostScript.h" + #include "HttpTransact.h" #include "records/I_RecordsConfig.h" @@ -40,6 +43,9 @@ TEST_CASE("HttpTransact", "[http]") { HTTPHdr hdr1; HTTPHdr hdr2; + ts::PostScript hdr1_defer([&]() -> void { hdr1.destroy(); }); + ts::PostScript hdr2_defer([&]() -> void { hdr2.destroy(); }); + MIMEField *field; const char *str; int len; @@ -125,6 +131,9 @@ TEST_CASE("HttpTransact", "[http]") { HTTPHdr hdr1; HTTPHdr hdr2; + ts::PostScript hdr1_defer([&]() -> void { hdr1.destroy(); }); + ts::PostScript hdr2_defer([&]() -> void { hdr2.destroy(); }); + MIMEField *field; const char *str; int len; @@ -203,6 +212,9 @@ TEST_CASE("HttpTransact", "[http]") { HTTPHdr hdr1; HTTPHdr hdr2; + ts::PostScript hdr1_defer([&]() -> void { hdr1.destroy(); }); + ts::PostScript hdr2_defer([&]() -> void { hdr2.destroy(); }); + MIMEField *field; const char *str; int len; @@ -281,6 +293,9 @@ TEST_CASE("HttpTransact", "[http]") { HTTPHdr hdr1; HTTPHdr hdr2; + ts::PostScript hdr1_defer([&]() -> void { hdr1.destroy(); }); + ts::PostScript hdr2_defer([&]() -> void { hdr2.destroy(); }); + MIMEField *field; const char *str; int len; @@ -359,6 +374,9 @@ TEST_CASE("HttpTransact", "[http]") { HTTPHdr hdr1; HTTPHdr hdr2; + ts::PostScript hdr1_defer([&]() -> void { hdr1.destroy(); }); + ts::PostScript hdr2_defer([&]() -> void { hdr2.destroy(); }); + MIMEField *field; const char *str; int len; @@ -447,6 +465,9 @@ TEST_CASE("HttpTransact", "[http]") { HTTPHdr cached_headers; HTTPHdr response_headers; + ts::PostScript cached_headers_defer([&]() -> void { cached_headers.destroy(); }); + ts::PostScript response_headers_defer([&]() -> void { response_headers.destroy(); }); + MIMEField *field; const char *str; int len;