summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTae-Young Chung <ty83.chung@samsung.com>2017-09-08 17:54:57 +0900
committerTae-Young Chung <ty83.chung@samsung.com>2017-09-11 06:43:54 +0000
commit66ced45743e49f562c7fd2457830f9aaec4a3f19 (patch)
treecb62ca256392e0e507453eeb0f855ad57e1c8d3b
parent27e57e1845545278d32f98c3a44ef20d2177d216 (diff)
downloadmediavision-66ced45743e49f562c7fd2457830f9aaec4a3f19.tar.gz
mediavision-66ced45743e49f562c7fd2457830f9aaec4a3f19.tar.bz2
mediavision-66ced45743e49f562c7fd2457830f9aaec4a3f19.zip
Replace readdir() with readdir_r() and add cv::exception handlingsubmit/tizen_4.0/20170911.065127
1. Replace readdir() with readdir_r() because of unguaranteed thread safety of readdir() 2. Add try-catch when cvtcolor is called. If exception might be thrown, *_INVALID_OPERATION would be returned. Then, testsuite can handle the error case. Change-Id: Id6ef3455ff5e5e37be8e91cf1c7af817093e7d48 Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com> (cherry picked from commit 68ea52fcc93936cb059d57240a92102ec65919cc)
-rw-r--r--packaging/capi-media-vision.spec2
-rw-r--r--test/testsuites/common/image_helper/src/ImageHelper.cpp6
-rw-r--r--test/testsuites/face/face_test_suite.c15
-rw-r--r--test/testsuites/image/image_test_suite.c13
4 files changed, 20 insertions, 16 deletions
diff --git a/packaging/capi-media-vision.spec b/packaging/capi-media-vision.spec
index f3abded5..9683593d 100644
--- a/packaging/capi-media-vision.spec
+++ b/packaging/capi-media-vision.spec
@@ -1,7 +1,7 @@
Name: capi-media-vision
Summary: Media Vision library for Tizen Native API
Version: 0.3.27
-Release: 0
+Release: 1
Group: Multimedia/Framework
License: Apache-2.0 and BSD-3-Clause
Source0: %{name}-%{version}.tar.gz
diff --git a/test/testsuites/common/image_helper/src/ImageHelper.cpp b/test/testsuites/common/image_helper/src/ImageHelper.cpp
index 1be08fa0..b72c2e36 100644
--- a/test/testsuites/common/image_helper/src/ImageHelper.cpp
+++ b/test/testsuites/common/image_helper/src/ImageHelper.cpp
@@ -68,7 +68,11 @@ int ImageHelper::loadImageToBuffer(
if (!image.data)
return MEDIA_VISION_ERROR_INVALID_PARAMETER;
- cv::cvtColor(image, image, CV_BGR2RGB);
+ try {
+ cv::cvtColor(image, image, CV_BGR2RGB);
+ } catch (cv::Exception &e) {
+ return MEDIA_VISION_ERROR_INVALID_OPERATION;
+ }
*pBufferSize = image.total() * image.elemSize();
(*pDataBuffer) = new unsigned char[*pBufferSize];
diff --git a/test/testsuites/face/face_test_suite.c b/test/testsuites/face/face_test_suite.c
index 40832b2f..74fe5b78 100644
--- a/test/testsuites/face/face_test_suite.c
+++ b/test/testsuites/face/face_test_suite.c
@@ -1797,7 +1797,9 @@ int process_image_file(
int frames_counter = 0;
char (*frames)[FILE_PATH_SIZE] = (char **)malloc(0);
- struct dirent *ent;
+ int ret = 0;
+ struct dirent ent;
+ struct dirent *ent_eof;
DIR *dir = opendir(track_target_file_name);
if (dir == NULL) {
@@ -1805,22 +1807,19 @@ int process_image_file(
return MEDIA_VISION_ERROR_INVALID_PATH;
}
- while ((ent = readdir(dir)) != NULL) {
- if (ent->d_name[0] == '.' || strlen(ent->d_name) < 4)
+ while ((ret = readdir_r(dir, &ent, &ent_eof)) == 0 && ent_eof != NULL) {
+ if (ent.d_name[0] == '.' || strlen(ent.d_name) < 4)
continue;
- if (strcmp(".jpg", ent->d_name + strlen(ent->d_name) - 4) != 0)
+ if (strcmp(".jpg", ent.d_name + strlen(ent.d_name) -4) != 0)
continue;
-
frames_counter++;
frames = (char **) realloc(frames, frames_counter * FILE_PATH_SIZE);
-
snprintf(frames[frames_counter -1], FILE_PATH_SIZE, "%s/%s",
- track_target_file_name, ent->d_name);
+ track_target_file_name, ent.d_name);
}
-
closedir(dir);
if (frames_counter <= 0)
diff --git a/test/testsuites/image/image_test_suite.c b/test/testsuites/image/image_test_suite.c
index dc5503c7..cedc8ea2 100644
--- a/test/testsuites/image/image_test_suite.c
+++ b/test/testsuites/image/image_test_suite.c
@@ -1234,7 +1234,9 @@ int perform_track_image(mv_image_tracking_model_h target)
int frames_counter = 0;
char (*frames)[FILE_PATH_SIZE] = (char **)malloc(0);
- struct dirent *ent;
+ int ret = 0;
+ struct dirent ent;
+ struct dirent *ent_eof;
DIR *dir = opendir(path_to_image);
if (dir == NULL) {
@@ -1242,19 +1244,18 @@ int perform_track_image(mv_image_tracking_model_h target)
return MEDIA_VISION_ERROR_INVALID_PATH;
}
- while ((ent = readdir(dir)) != NULL) {
- if (ent->d_name[0] == '.' || strlen(ent->d_name) < 4)
+ while ((ret = readdir_r(dir, &ent, &ent_eof)) == 0 && ent_eof != NULL) {
+ if (ent.d_name[0] == '.' || strlen(ent.d_name) < 4)
continue;
- if (strcmp(".jpg", ent->d_name + strlen(ent->d_name) -4) != 0)
+ if (strcmp(".jpg", ent.d_name + strlen(ent.d_name) -4) != 0)
continue;
frames_counter++;
frames = (char**)realloc(frames, frames_counter * FILE_PATH_SIZE);
- snprintf(frames[frames_counter -1], FILE_PATH_SIZE, "%s/%s", path_to_image, ent->d_name);
+ snprintf(frames[frames_counter -1], FILE_PATH_SIZE, "%s/%s", path_to_image, ent.d_name);
}
-
closedir(dir);
if (frames_counter <= 0)