[UTC][capi-media-vision][Non-ACR][Fixed memory leak(TSAM-12733)]
authorTae-Young Chung <ty83.chung@samsung.com>
Mon, 6 Feb 2017 13:21:48 +0000 (22:21 +0900)
committerTae-Young Chung <ty83.chung@samsung.com>
Mon, 6 Feb 2017 13:21:55 +0000 (22:21 +0900)
Change-Id: I9055ee99d387a7195fa2003607a0ec6ab276b4b1
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
src/utc/capi-media-vision/utc-mv_common.c
src/utc/capi-media-vision/utc-mv_face.c
src/utc/capi-media-vision/utc-mv_image.c
src/utc/capi-media-vision/utc-mv_surveillance.c

index 32e047319580e927246bd8ee3e070352987ad041..638654514c131c4fc2a86a72aa5e3b5eab3afe5c 100755 (executable)
@@ -460,11 +460,13 @@ bool _attribute_supported_callback(
                 printf("Default string attribute %s wasn't set in engine "
                         "configuration by default. Failed\n", attribute_name);
                 *isCorrect = false;
+                free(real_str_value);
                 printf("FAILED\n");
                 return true;
             }
             printf("Expected value: [%s] | Real value: [%s]\n", str_value, real_str_value);
             are_exp_act_equal = 0 == strcmp(str_value, real_str_value);
+            free(real_str_value);
             break;
         default:
             printf("Attribute type received in mv_supported_attribute_cb "
@@ -505,10 +507,13 @@ int utc_mediavision_mv_create_source_p(void)
 
     mv_source_h source = NULL;
 
-    const int ret = mv_create_source(&source);
+    int ret = mv_create_source(&source);
     assert_eq(ret, MEDIA_VISION_ERROR_NONE);
     assert_neq(source, (void*) NULL);
 
+    ret = mv_destroy_source(source);
+    assert_eq(ret, MEDIA_VISION_ERROR_NONE);
+
     printf("Before return mv_create_source_p\n");
 
     return 0;
index ebaa692e917679a252b4f740cd2a4dd474e56380..9e56257bae349d76a8c78519644ca1c3863ef214 100755 (executable)
@@ -441,10 +441,13 @@ int utc_mediavision_mv_face_tracking_model_create_p(void)
     }
 
     mv_face_tracking_model_h test_tracking_model = NULL;
-    const int ret = mv_face_tracking_model_create(&test_tracking_model);
+    int ret = mv_face_tracking_model_create(&test_tracking_model);
     assert_neq(NULL, test_tracking_model);
     assert_eq(MEDIA_VISION_ERROR_NONE, ret);
 
+    ret = mv_face_tracking_model_destroy(test_tracking_model);
+    assert_eq(MEDIA_VISION_ERROR_NONE, ret);
+
     printf("Before return mv_face_tracking_model_create_p\n");
 
     return 0;
@@ -847,6 +850,12 @@ int utc_mediavision_mv_face_tracking_model_load_n(void)
     ret = mv_face_tracking_model_load(
               "/fake/path/test_trk_model",
               &source_model);
+
+    if (source_model) {
+        int ret2 = mv_face_tracking_model_destroy(source_model);
+        assert_eq(MEDIA_VISION_ERROR_NONE, ret2);
+    }
+
     assert_eq(MEDIA_VISION_ERROR_INVALID_PATH, ret);
 
     printf("Before return mv_face_tracking_model_load_n\n");
index e208ccdc0b661043c2c0ccaec801e27103bc46a5..e63f5e2fc66da7d61baf28e2a5253d64e2624f4e 100755 (executable)
@@ -259,7 +259,10 @@ int utc_mediavision_mv_image_tracking_model_create_p(void)
     }
 
     mv_image_tracking_model_h tracking_model;
-    const int ret = mv_image_tracking_model_create(&tracking_model);
+    int ret = mv_image_tracking_model_create(&tracking_model);
+    assert_eq(MEDIA_VISION_ERROR_NONE, ret);
+
+    ret = mv_image_tracking_model_destroy(tracking_model);
     assert_eq(MEDIA_VISION_ERROR_NONE, ret);
 
     printf("Before return mv_image_tracking_model_create_p\n");
@@ -1428,6 +1431,9 @@ int utc_mediavision_mv_image_tracking_model_set_target_p(void)
     ret = mv_image_object_destroy(target);
     assert_eq(MEDIA_VISION_ERROR_NONE, ret);
 
+    ret = mv_destroy_source(target_image);
+    assert_eq(MEDIA_VISION_ERROR_NONE, ret);
+
     printf("Before return mv_image_tracking_model_set_target_p\n");
 
     return 0;
index ffc0b51f33461f504bb3409fbd90c53ab88b353c..3b8c0634a871499f6db78bdd4af292539a2409eb 100755 (executable)
@@ -1546,16 +1546,17 @@ void get_person_appearance_result_cb(mv_surveillance_event_trigger_h event_trigg
                                        MV_SURVEILLANCE_PERSONS_APPEARED_NUMBER,
                                        &number_appeared_persons);
 
-       mv_rectangle_s *appeared_locations = malloc(
-                       sizeof(mv_rectangle_s) * number_appeared_persons);
+       if (number_appeared_persons > 0) {
+               mv_rectangle_s *appeared_locations = malloc(
+                               sizeof(mv_rectangle_s) * number_appeared_persons);
 
-       res->appeared_locations_obtaining_err =
-                       mv_surveillance_get_result_value(event_result,
-                                       MV_SURVEILLANCE_PERSONS_APPEARED_LOCATIONS,
-                                       appeared_locations);
+               res->appeared_locations_obtaining_err =
+                               mv_surveillance_get_result_value(event_result,
+                                               MV_SURVEILLANCE_PERSONS_APPEARED_LOCATIONS,
+                                               appeared_locations);
 
-       if (number_appeared_persons > 0)
                free(appeared_locations);
+       }
 
        size_t number_of_tracked_persons = 0;
        res->number_of_tracked_persons_obtaining_err =
@@ -1563,16 +1564,17 @@ void get_person_appearance_result_cb(mv_surveillance_event_trigger_h event_trigg
                                        MV_SURVEILLANCE_PERSONS_TRACKED_NUMBER,
                                        &number_of_tracked_persons);
 
-       mv_rectangle_s *tracked_locations = malloc(
-                       sizeof(mv_rectangle_s) * number_of_tracked_persons);
+       if (number_of_tracked_persons > 0) {
+               mv_rectangle_s *tracked_locations = malloc(
+                               sizeof(mv_rectangle_s) * number_of_tracked_persons);
 
-       res->tracked_locations_obtaining_err =
-                       mv_surveillance_get_result_value(event_result,
-                                       MV_SURVEILLANCE_PERSONS_TRACKED_LOCATIONS,
-                                       tracked_locations);
+               res->tracked_locations_obtaining_err =
+                               mv_surveillance_get_result_value(event_result,
+                                               MV_SURVEILLANCE_PERSONS_TRACKED_LOCATIONS,
+                                               tracked_locations);
 
-       if (number_of_tracked_persons > 0)
                free(tracked_locations);
+       }
 
        size_t number_of_disappeared_persons = 0;
        res->number_of_disappeared_persons_obtaining_err =
@@ -1580,16 +1582,17 @@ void get_person_appearance_result_cb(mv_surveillance_event_trigger_h event_trigg
                                        MV_SURVEILLANCE_PERSONS_DISAPPEARED_NUMBER,
                                        &number_of_disappeared_persons);
 
-       mv_rectangle_s *disappeared_locations = malloc(
-                       sizeof(mv_rectangle_s) * number_of_disappeared_persons);
+       if (number_of_disappeared_persons > 0) {
+               mv_rectangle_s *disappeared_locations = malloc(
+                               sizeof(mv_rectangle_s) * number_of_disappeared_persons);
 
-       res->disappeared_locations_obtaining_err =
-                       mv_surveillance_get_result_value(event_result,
-                                       MV_SURVEILLANCE_PERSONS_DISAPPEARED_LOCATIONS,
-                                       disappeared_locations);
+               res->disappeared_locations_obtaining_err =
+                               mv_surveillance_get_result_value(event_result,
+                                               MV_SURVEILLANCE_PERSONS_DISAPPEARED_LOCATIONS,
+                                               disappeared_locations);
 
-       if (number_of_disappeared_persons > 0)
                free(disappeared_locations);
+       }
 
        printf("Before return get_person_appearance_result_cb\n");
 }