From 739446e925d527775920eb57880fd5d653c3ff41 Mon Sep 17 00:00:00 2001 From: Victor Toso Date: Tue, 15 Feb 2022 13:24:00 +0100 Subject: tests: os: Fix some memory leaks * OsinfoLoader ==413574== 2,512 (40 direct, 2,472 indirect) bytes in 1 blocks are definitely lost in loss record 2,489 of 2,495 ==413574== at 0x48F3437: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==413574== by 0x48DAD4C: ??? (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==413574== by 0x48DBD1C: g_object_new_with_properties (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==413574== by 0x48DC820: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==413574== by 0x407270: test_firmwares_complete_list_inheritance (test-os.c:897) ==413574== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==413574== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==413574== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==413574== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==413574== by 0x49930A9: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7000.3) ==413574== by 0x49930D0: g_test_run (in /usr/lib64/libglib-2.0.so.0.7000.3) ==413574== by 0x403769: main (test-os.c:1062) and ==414148== 2,480 (40 direct, 2,440 indirect) bytes in 1 blocks are definitely lost in loss record 2,477 of 2,484 ==414148== at 0x48F3437: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414148== by 0x48DAD4C: ??? (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414148== by 0x48DBD1C: g_object_new_with_properties (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414148== by 0x48DC820: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414148== by 0x40531D: test_firmwares_complete_list (test-os.c:855) ==414148== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414148== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414148== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414148== by 0x49930A9: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414148== by 0x49930D0: g_test_run (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414148== by 0x403769: main (test-os.c:1061) * OsinfoTreeList ==414820== 1,793 (48 direct, 1,745 indirect) bytes in 1 blocks are definitely lost in loss record 2,424 of 2,438 ==414820== at 0x48F3437: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414820== by 0x48DAD4C: ??? (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414820== by 0x48DC2C7: g_object_new_valist (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414820== by 0x48DC7FC: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414820== by 0x4879165: osinfo_os_get_tree_list (osinfo_os.c:698) ==414820== by 0x404D3C: test_loader (test-os.c:124) ==414820== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414820== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414820== by 0x49930A9: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414820== by 0x49930D0: g_test_run (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414820== by 0x403769: main (test-os.c:1060) * OsinfoFirmwareList ==414989== 1,537 (48 direct, 1,489 indirect) bytes in 1 blocks are definitely lost in loss record 2,391 of 2,405 ==414989== at 0x48F3437: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414989== by 0x48DAD4C: ??? (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414989== by 0x48DC2C7: g_object_new_valist (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414989== by 0x48DC7FC: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==414989== by 0x48763CA: osinfo_list_new_copy (osinfo_list.c:458) ==414989== by 0x4877257: get_all_firmwares_cb (osinfo_os.c:1536) ==414989== by 0x487348E: osinfo_product_foreach_related (osinfo_product.c:436) ==414989== by 0x4873502: osinfo_product_foreach_related (osinfo_product.c:467) ==414989== by 0x487A6A4: osinfo_os_get_complete_firmware_list (osinfo_os.c:1623) ==414989== by 0x40744D: test_firmwares_complete_list_inheritance (test-os.c:942) ==414989== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==414989== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) * OsinfoDeviceDriverList ==415264== 512 (48 direct, 464 indirect) bytes in 1 blocks are definitely lost in loss record 2,355 of 2,384 ==415264== at 0x48F3437: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==415264== by 0x48DAD4C: ??? (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==415264== by 0x48DC2C7: g_object_new_valist (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==415264== by 0x48DC7FC: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==415264== by 0x487A126: osinfo_os_get_device_drivers_prioritized (osinfo_os.c:1251) ==415264== by 0x405830: test_device_driver_priority_helper (test-os.c:235) ==415264== by 0x4059BD: test_device_driver_prioritized_priority (test-os.c:262) ==415264== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==415264== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==415264== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==415264== by 0x49930A9: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7000.3) ==415264== by 0x49930D0: g_test_run (in /usr/lib64/libglib-2.0.so.0.7000.3) Signed-off-by: Victor Toso --- tests/test-os.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/test-os.c b/tests/test-os.c index be3ea20..7657545 100644 --- a/tests/test-os.c +++ b/tests/test-os.c @@ -142,6 +142,7 @@ test_loader(void) } } + g_object_unref(treelist); g_object_unref(loader); } @@ -216,7 +217,8 @@ test_device_driver(void) static void test_device_driver_priority_helper(gint64* expected_priorities, OsinfoDeviceDriverList *(*get_device_drivers_func)(OsinfoOs *), - gint expected_ddlist_length) + gint expected_ddlist_length, + gboolean free_ddlist) { OsinfoLoader *loader = osinfo_loader_new(); OsinfoDb *db; @@ -238,6 +240,9 @@ test_device_driver_priority_helper(gint64* expected_priorities, g_assert_cmpint(osinfo_device_driver_get_priority(dd), ==, expected_priorities[i]); } + if (free_ddlist) + g_object_unref(ddlist); + g_object_unref(db); } @@ -249,7 +254,8 @@ test_device_driver_priority(void) test_device_driver_priority_helper(expected_priorities, osinfo_os_get_device_drivers, - 2); + 2, + FALSE); } @@ -260,7 +266,8 @@ test_device_driver_prioritized_priority(void) test_device_driver_priority_helper(expected_priorities, osinfo_os_get_device_drivers_prioritized, - 1); + 1, + TRUE); } @@ -858,7 +865,6 @@ test_firmwares_complete_list(void) OsinfoFirmwareList *firmwarelist; GError *error = NULL; - loader = osinfo_loader_new(); osinfo_loader_process_path(loader, SRCDIR "/tests/dbdata", &error); g_assert_no_error(error); db = osinfo_loader_get_db(loader); @@ -901,7 +907,6 @@ test_firmwares_complete_list_inheritance(void) OsinfoFirmwareList *firmwarelist; GError *error = NULL; - loader = osinfo_loader_new(); osinfo_loader_process_path(loader, SRCDIR "/tests/dbdata", &error); g_assert_no_error(error); db = osinfo_loader_get_db(loader); @@ -952,6 +957,7 @@ test_firmwares_complete_list_inheritance(void) g_assert_cmpstr(osinfo_firmware_get_firmware_type(firmware), ==, "bios"); g_assert_cmpstr(osinfo_firmware_get_architecture(firmware), ==, "x86_64"); g_assert_true(osinfo_firmware_is_supported(firmware)); + g_clear_object(&firmwarelist); /** * inherit3: -- cgit v1.2.1