From f1874e67901fef0054b73afc9de3d7935bae99ce Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 20 Dec 2022 17:50:09 +0100 Subject: [PATCH] glib-aux/tests: avoid valgrind leak with nmtst_add_test_func() When only running a subset of the tests (with "-p"), then valgrind indicates a leak. Avoid that. $ ./tools/run-nm-test.sh -m src/core/platform/tests/test-route-linux -v # no leak $ ./tools/run-nm-test.sh -m src/core/platform/tests/test-route-linux -v -p /route/ip4 # many leaks: ==1662102== 107 (96 direct, 11 indirect) bytes in 1 blocks are definitely lost in loss record 388 of 448 ==1662102== at 0x4848464: calloc (vg_replace_malloc.c:1340) ==1662102== by 0x4F615F0: g_malloc0 (gmem.c:163) ==1662102== by 0x1621A6: _nmtst_add_test_func_full (nm-test-utils.h:918) ==1662102== by 0x1623EB: _nmtstp_setup_tests (test-route.c:2179) ==1662102== by 0x16E53D: main (test-common.c:2693) ==1662102== { Memcheck:Leak match-leak-kinds: definite fun:calloc fun:g_malloc0 fun:_nmtst_add_test_func_full fun:_nmtstp_setup_tests fun:main } --- src/libnm-glib-aux/nm-test-utils.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libnm-glib-aux/nm-test-utils.h b/src/libnm-glib-aux/nm-test-utils.h index 9299b39fa..5196c9a07 100644 --- a/src/libnm-glib-aux/nm-test-utils.h +++ b/src/libnm-glib-aux/nm-test-utils.h @@ -957,7 +957,11 @@ _nmtst_add_test_func_full(const char *testpath, memcpy((char *) data->testpath, testpath, testpath_len); - g_test_add_data_func_full(testpath, data, _nmtst_test_run, g_free); + _nmtst_testdata_track_add(data, g_free); + g_test_add_data_func_full(testpath, + data, + _nmtst_test_run, + _nmtst_testdata_track_steal_and_free); } #define nmtst_add_test_func_full(testpath, func_test, func_setup, func_teardown, ...) \