From: Kwang Son Date: Fri, 13 Aug 2021 08:10:33 +0000 (-0400) Subject: test: Replace barcode libcheck to gtest X-Git-Tag: accepted/tizen/unified/20210819.123245~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fe4f0e808e85716c52130b2aaf6360f4334c433f;p=platform%2Fcore%2Fapi%2Fmediavision.git test: Replace barcode libcheck to gtest Change-Id: I22339de3c880f3958ee8e049a29d902846fc0acf Signed-off-by: Kwang Son --- diff --git a/packaging/capi-media-vision.spec b/packaging/capi-media-vision.spec index 805d60f..18e1793 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 57768b0..43c7e23 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 bc1711d..bc195d7 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 fb86885..0000000 --- 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 a34fdbd..0000000 --- a/test/testsuites/barcode/test_barcode.c +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include -#include -#include - -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 0000000..a4247dc --- /dev/null +++ b/test/testsuites/barcode/test_barcode.cpp @@ -0,0 +1,105 @@ +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using TestParams = tuple; + +#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 ReadDetPositive1() +{ + vector 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 +{ +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