summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKwang Son <k.son@samsung.com>2021-08-13 04:10:33 -0400
committerKwang Son <k.son@samsung.com>2021-08-13 06:10:59 -0400
commitfe4f0e808e85716c52130b2aaf6360f4334c433f (patch)
tree2688c17632df5b68f8912d96a6068dce407b4ea3
parent335692365c8ef735e851ad05bfb23c2ff4b69541 (diff)
downloadmediavision-fe4f0e808e85716c52130b2aaf6360f4334c433f.tar.gz
mediavision-fe4f0e808e85716c52130b2aaf6360f4334c433f.tar.bz2
mediavision-fe4f0e808e85716c52130b2aaf6360f4334c433f.zip
test: Replace barcode libcheck to gtest
Change-Id: I22339de3c880f3958ee8e049a29d902846fc0acf Signed-off-by: Kwang Son <k.son@samsung.com>
-rw-r--r--packaging/capi-media-vision.spec3
-rw-r--r--test/CMakeLists.txt3
-rw-r--r--test/testsuites/CMakeLists.txt1
-rw-r--r--test/testsuites/barcode/CMakeLists.txt14
-rw-r--r--test/testsuites/barcode/test_barcode.c71
-rw-r--r--test/testsuites/barcode/test_barcode.cpp105
6 files changed, 108 insertions, 89 deletions
diff --git a/packaging/capi-media-vision.spec b/packaging/capi-media-vision.spec
index 805d60f9..18e1793a 100644
--- a/packaging/capi-media-vision.spec
+++ b/packaging/capi-media-vision.spec
@@ -1,6 +1,6 @@
Name: capi-media-vision
Summary: Media Vision library for Tizen Native API
-Version: 0.8.4
+Version: 0.8.5
Release: 0
Group: Multimedia/Framework
License: Apache-2.0 and BSD-3-Clause
@@ -28,7 +28,6 @@ BuildRequires: pkgconfig(gstreamer-base-1.0)
BuildRequires: pkgconfig(gstreamer-app-1.0)
BuildRequires: pkgconfig(libtzplatform-config)
BuildRequires: pkgconfig(ncurses)
-BuildRequires: pkgconfig(check)
BuildRequires: pkgconfig(gtest)
%endif
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 57768b02..43c7e23c 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -6,8 +6,9 @@ cmake_minimum_required(VERSION 2.6)
pkg_check_modules(${PROJECT_NAME}_DEP REQUIRED gtest gtest_main)
add_executable(${PROJECT_NAME}
+ testsuites/barcode/test_barcode.cpp
testsuites/machine_learning/inference/test_inference_helper.cpp
testsuites/machine_learning/inference/test_image_classification.cpp
)
-target_link_libraries(${PROJECT_NAME} ${${PROJECT_NAME}_DEP_LIBRARIES} mv_inference mv_image_helper)
+target_link_libraries(${PROJECT_NAME} ${${PROJECT_NAME}_DEP_LIBRARIES} mv_inference mv_image_helper mv_barcode_detector)
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) \ No newline at end of file
diff --git a/test/testsuites/CMakeLists.txt b/test/testsuites/CMakeLists.txt
index bc1711db..bc195d73 100644
--- a/test/testsuites/CMakeLists.txt
+++ b/test/testsuites/CMakeLists.txt
@@ -6,7 +6,6 @@ set(INC_VIDEO_HELPER "${PROJECT_SOURCE_DIR}/common/video_helper")
set(INC_TS_COMMON "${PROJECT_SOURCE_DIR}/common/testsuite_common")
add_subdirectory(${PROJECT_SOURCE_DIR}/common)
-add_subdirectory(${PROJECT_SOURCE_DIR}/barcode)
add_subdirectory(${PROJECT_SOURCE_DIR}/face)
add_subdirectory(${PROJECT_SOURCE_DIR}/image)
add_subdirectory(${PROJECT_SOURCE_DIR}/surveillance)
diff --git a/test/testsuites/barcode/CMakeLists.txt b/test/testsuites/barcode/CMakeLists.txt
deleted file mode 100644
index fb86885b..00000000
--- a/test/testsuites/barcode/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-project(mv_barcode_test_suite)
-cmake_minimum_required(VERSION 2.6)
-
-pkg_check_modules(${PROJECT_NAME}_DEP REQUIRED ncurses capi-system-info
-dlog check)
-
-add_executable(${PROJECT_NAME} test_barcode.c)
-target_link_libraries(${PROJECT_NAME} ${MV_BARCODE_DETECTOR_LIB_NAME}
-${MV_BARCODE_GENERATOR_LIB_NAME} ${${PROJECT_NAME}_DEP_LIBRARIES}
-avcodec avformat avutil swscale mv_image_helper
-)
-
-install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
-install(FILES mv_barcode_test_suite_auto PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/test/testsuites/barcode/test_barcode.c b/test/testsuites/barcode/test_barcode.c
deleted file mode 100644
index a34fdbd7..00000000
--- a/test/testsuites/barcode/test_barcode.c
+++ /dev/null
@@ -1,71 +0,0 @@
-#include <stdlib.h>
-#include <check.h>
-#include <mv_common.h>
-#include <mv_barcode.h>
-
-mv_engine_config_h mv_engine_config;
-
-void setup(void)
-{
- ck_assert_int_eq(mv_create_engine_config(&mv_engine_config),
- MEDIA_VISION_ERROR_NONE);
-}
-void teardown(void)
-{
- ck_assert_int_eq(mv_destroy_engine_config(mv_engine_config),
- MEDIA_VISION_ERROR_NONE);
-}
-START_TEST(barcode_generate_num)
-{
- ck_assert_int_eq(mv_engine_config_set_string_attribute(
- mv_engine_config,
- MV_BARCODE_GENERATE_ATTR_COLOR_FRONT, "000000"),
- MEDIA_VISION_ERROR_NONE);
- ck_assert_int_eq(mv_engine_config_set_string_attribute(
- mv_engine_config,
- MV_BARCODE_GENERATE_ATTR_COLOR_BACK, "ffffff"),
- MEDIA_VISION_ERROR_NONE);
- ck_assert_int_eq(mv_barcode_generate_image(
- mv_engine_config, "11234", 200, 200, MV_BARCODE_QR,
- MV_BARCODE_QR_MODE_NUMERIC, MV_BARCODE_QR_ECC_HIGH,
- 20, "/tmp/mvtest/gen.png", MV_BARCODE_IMAGE_FORMAT_PNG),
- MEDIA_VISION_ERROR_NONE);
-}
-END_TEST
-START_TEST(barcode_generate_utf8)
-{
- ck_assert_int_eq(mv_engine_config_set_string_attribute(
- mv_engine_config,
- MV_BARCODE_GENERATE_ATTR_COLOR_FRONT, "000000"),
- MEDIA_VISION_ERROR_NONE);
- ck_assert_int_eq(mv_engine_config_set_string_attribute(
- mv_engine_config,
- MV_BARCODE_GENERATE_ATTR_COLOR_BACK, "ffffff"),
- MEDIA_VISION_ERROR_NONE);
- ck_assert_int_eq(mv_barcode_generate_image(
- mv_engine_config, "qr_test1", 200, 200,
- MV_BARCODE_QR, MV_BARCODE_QR_MODE_UTF8,
- MV_BARCODE_QR_ECC_HIGH, 20, "/tmp/mvtest/gen2.png",
- MV_BARCODE_IMAGE_FORMAT_PNG),
- MEDIA_VISION_ERROR_NONE);
-}
-END_TEST
-Suite *barcode_suite(void)
-{
- Suite *s = suite_create("Barcode");
- TCase *tc_core = tcase_create("Core");
- tcase_add_checked_fixture(tc_core, setup, teardown);
- tcase_add_test(tc_core, barcode_generate_num);
- tcase_add_test(tc_core, barcode_generate_utf8);
- suite_add_tcase(s, tc_core);
- return s;
-}
-int main()
-{
- Suite *s = barcode_suite();
- SRunner *sr = srunner_create(s);
- srunner_run_all(sr, CK_NORMAL);
- int number_failed = srunner_ntests_failed(sr);
- srunner_free(sr);
- return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-} \ No newline at end of file
diff --git a/test/testsuites/barcode/test_barcode.cpp b/test/testsuites/barcode/test_barcode.cpp
new file mode 100644
index 00000000..a4247dcd
--- /dev/null
+++ b/test/testsuites/barcode/test_barcode.cpp
@@ -0,0 +1,105 @@
+#include <gtest/gtest.h>
+#include <json-glib/json-glib.h>
+#include <mv_barcode.h>
+#include <string>
+#include <tuple>
+#include <vector>
+#include <ImageHelper.h>
+
+using namespace std;
+using TestParams = tuple<string, string>;
+
+#define BARCODE_IMG_PREFIX \
+ MV_CONFIG_PATH \
+ "/res/img/"
+
+#define BARCODE_JSON \
+ MV_CONFIG_PATH \
+ "/res/media-vision-barcodes.json"
+
+void barcode_detected_cb(mv_source_h source, mv_engine_config_h engine_cfg,
+ const mv_quadrangle_s *barcodes_locations,
+ const char *messages[], const mv_barcode_type_e *types,
+ int number_of_barcodes, void *user_data)
+{
+ EXPECT_EQ(number_of_barcodes, 1);
+ EXPECT_STREQ(messages[0], (const char *) user_data);
+}
+
+vector<TestParams> ReadDetPositive1()
+{
+ vector<TestParams> rv;
+ GError *error = NULL;
+
+ JsonParser *parser = json_parser_new();
+ json_parser_load_from_file(parser, BARCODE_JSON, &error);
+ EXPECT_TRUE(error == NULL);
+
+ JsonReader *reader = json_reader_new(json_parser_get_root(parser));
+
+ json_reader_read_member(reader, "det_positive1");
+ for (gint i = 0; i < json_reader_count_elements(reader); i++) {
+ json_reader_read_element(reader, i);
+
+ json_reader_read_member(reader, "image_name");
+ std::string image_name = json_reader_get_string_value(reader);
+ json_reader_end_member(reader);
+
+ json_reader_read_member(reader, "message");
+ std::string message = json_reader_get_string_value(reader);
+ json_reader_end_member(reader);
+
+ rv.push_back(make_tuple(image_name, message));
+
+ json_reader_end_element(reader);
+ }
+ json_reader_end_member(reader);
+
+ g_object_unref(reader);
+ g_object_unref(parser);
+
+ return rv;
+}
+
+class TestBarcode : public testing::TestWithParam<TestParams>
+{
+public:
+ TestBarcode()
+ {
+ EXPECT_EQ(mv_create_engine_config(&engine_cfg),
+ MEDIA_VISION_ERROR_NONE);
+ EXPECT_EQ(mv_create_source(&mv_source), MEDIA_VISION_ERROR_NONE);
+ }
+ ~TestBarcode()
+ {
+ EXPECT_EQ(mv_destroy_source(mv_source), MEDIA_VISION_ERROR_NONE);
+ EXPECT_EQ(mv_destroy_engine_config(engine_cfg),
+ MEDIA_VISION_ERROR_NONE);
+ }
+ mv_engine_config_h engine_cfg;
+ mv_source_h mv_source;
+};
+
+TEST_P(TestBarcode, Detection)
+{
+ auto image_name = BARCODE_IMG_PREFIX + get<0>(GetParam());
+ auto message = get<1>(GetParam());
+
+ EXPECT_EQ(MediaVision::Common::ImageHelper::loadImageToSource(
+ image_name.c_str(), mv_source),
+ MEDIA_VISION_ERROR_NONE);
+
+ mv_rectangle_s roi = { { 0, 0 }, 0, 0 };
+ mv_source_get_width(mv_source, (unsigned int *) &(roi.width));
+ mv_source_get_width(mv_source, (unsigned int *) &(roi.height));
+ mv_engine_config_set_int_attribute(engine_cfg,
+ MV_BARCODE_DETECT_ATTR_TARGET,
+ MV_BARCODE_DETECT_ATTR_TARGET_ALL);
+
+ EXPECT_EQ(mv_barcode_detect(mv_source, engine_cfg, roi, barcode_detected_cb,
+ (void *) message.c_str()),
+ MEDIA_VISION_ERROR_NONE);
+}
+
+INSTANTIATE_TEST_CASE_P(GeneralAndSpecial, TestBarcode,
+ testing::ValuesIn(ReadDetPositive1())); \ No newline at end of file