Remove memory leak on new TC for vc_get_system_command_list() 39/261539/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Tue, 20 Jul 2021 11:23:02 +0000 (20:23 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Wed, 21 Jul 2021 02:19:31 +0000 (11:19 +0900)
Change-Id: Ieeb48b4aee90a4b9bf50f0b2dc3d43bcdab90cb6
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
tests/src/vc_unittests.cpp

index 0320972d6790c520353a25e4a2b227d6093b63ee..780b61e760eb7c4c2570aabecd1f17bcd3f60207 100644 (file)
@@ -106,6 +106,13 @@ static bool __vc_cmd_list_cb(vc_cmd_h vc_command, void* user_data)
 
 static void __vc_mgr_ready()
 {
+       EXPECT_EQ(vc_mgr_initialize(), VC_ERROR_NONE);
+       EXPECT_EQ(vc_mgr_set_state_changed_cb(__vc_mgr_state_changed_cb, nullptr), VC_ERROR_NONE);
+       EXPECT_EQ(vc_mgr_set_service_state_changed_cb(__vc_mgr_service_state_changed_cb, nullptr), VC_ERROR_NONE);
+       EXPECT_EQ(vc_mgr_prepare(), VC_ERROR_NONE);
+       ASSERT_EQ(true, __is_mgr_state_changed(VC_STATE_READY, 5));
+       ASSERT_EQ(true, __is_mgr_service_state_changed(VC_SERVICE_STATE_READY, 5));
+
        vc_cmd_h system_command = nullptr;
        EXPECT_EQ(vc_cmd_create(&system_command), VC_ERROR_NONE);
        EXPECT_EQ(vc_cmd_set_command(system_command, "test"), VC_ERROR_NONE);
@@ -115,14 +122,17 @@ static void __vc_mgr_ready()
        EXPECT_EQ(vc_cmd_list_create(&commands), VC_ERROR_NONE);
        EXPECT_EQ(vc_cmd_list_add(commands, system_command), VC_ERROR_NONE);
 
-       EXPECT_EQ(vc_mgr_initialize(), VC_ERROR_NONE);
-       EXPECT_EQ(vc_mgr_set_state_changed_cb(__vc_mgr_state_changed_cb, nullptr), VC_ERROR_NONE);
-       EXPECT_EQ(vc_mgr_set_service_state_changed_cb(__vc_mgr_service_state_changed_cb, nullptr), VC_ERROR_NONE);
-       EXPECT_EQ(vc_mgr_prepare(), VC_ERROR_NONE);
-       ASSERT_EQ(true, __is_mgr_state_changed(VC_STATE_READY, 5));
-       ASSERT_EQ(true, __is_mgr_service_state_changed(VC_SERVICE_STATE_READY, 5));
-
        EXPECT_EQ(vc_mgr_set_command_list(commands), VC_ERROR_NONE);
+
+       EXPECT_EQ(vc_cmd_list_destroy(commands, true), VC_ERROR_NONE);
+}
+
+static void __vc_mgr_finish()
+{
+       EXPECT_EQ(vc_mgr_unprepare(), VC_ERROR_NONE);
+       EXPECT_EQ(vc_mgr_unset_state_changed_cb(), VC_ERROR_NONE);
+       EXPECT_EQ(vc_mgr_unset_service_state_changed_cb(), VC_ERROR_NONE);
+       EXPECT_EQ(vc_mgr_deinitialize(), VC_ERROR_NONE);
 }
 
 namespace {
@@ -750,6 +760,10 @@ TEST_F(VCTest, vc_get_system_command_list_p)
                ret = vc_get_system_command_list(&list);
                EXPECT_EQ(ret, VC_ERROR_NONE);
 
+               if (NULL != list) {
+                       EXPECT_EQ(vc_cmd_list_destroy(list, true), VC_ERROR_NONE);
+               }
+
                ret = vc_unprepare();
                EXPECT_EQ(ret, VC_ERROR_NONE);
        }
@@ -791,6 +805,9 @@ TEST_F(VCTest, vc_get_system_command_list_p2)
                EXPECT_EQ(ret, VC_ERROR_NONE);
                EXPECT_GT(count, 0);
 
+               EXPECT_EQ(vc_cmd_list_destroy(list, true), VC_ERROR_NONE);
+
+               __vc_mgr_finish();
                ret = vc_unprepare();
                EXPECT_EQ(ret, VC_ERROR_NONE);
        }