From: Kwanghoon Son Date: Tue, 18 Apr 2023 08:05:07 +0000 (+0900) Subject: Fix invalid qrcode attribute X-Git-Tag: accepted/tizen/7.0/unified/20230511.180842~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F05%2F291905%2F1;p=platform%2Fcore%2Fapi%2Fmediavision.git Fix invalid qrcode attribute mv_barcode_generate_attr_shape_e for MV_BARCODE_GENERATE_ATTR_SHAPE_ROUND_RECT should failed to generate. Change-Id: Iacccd1f31f5d6be572562abb15619cb5a8068d06 Cherry-pick-from : 337e7ecc55e25dd54e102df778fbd77bb38e41e6 Signed-off-by: Kwanghoon Son --- diff --git a/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp b/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp index b86a50d2..aaad942b 100644 --- a/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp +++ b/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp @@ -114,12 +114,15 @@ int createBarcode(const std::string &message, BarcodeType type, BarcodeQREncodin if (ret == MEDIA_VISION_ERROR_NONE) { switch (value) { + case MV_BARCODE_GENERATE_ATTR_SHAPE_RECT: + break; case MV_BARCODE_GENERATE_ATTR_SHAPE_CIRCLE: symbol->output_options |= BARCODE_DATA_CIRCLE; break; default: - break; + LOGE("Invalid data shape"); + return BARCODE_WARNING_INVALID_OPTION; } } @@ -127,6 +130,8 @@ int createBarcode(const std::string &message, BarcodeType type, BarcodeQREncodin if (ret == MEDIA_VISION_ERROR_NONE) { switch (value) { + case MV_BARCODE_GENERATE_ATTR_SHAPE_RECT: + break; case MV_BARCODE_GENERATE_ATTR_SHAPE_ROUND_RECT: symbol->output_options |= BARCODE_FINDER_ROUNDRECT; break; @@ -135,7 +140,8 @@ int createBarcode(const std::string &message, BarcodeType type, BarcodeQREncodin break; default: - break; + LOGE("Invalid finder shape"); + return BARCODE_WARNING_INVALID_OPTION; } } } diff --git a/test/testsuites/barcode/test_designqr.cpp b/test/testsuites/barcode/test_designqr.cpp index 67f73455..748e6539 100644 --- a/test/testsuites/barcode/test_designqr.cpp +++ b/test/testsuites/barcode/test_designqr.cpp @@ -83,3 +83,19 @@ INSTANTIATE_TEST_CASE_P( MV_BARCODE_GENERATE_ATTR_SHAPE_RECT, MV_BARCODE_GENERATE_ATTR_SHAPE_ROUND_RECT, MV_BARCODE_GENERATE_ATTR_SHAPE_CIRCLE }), testing::ValuesIn(vector { "", IMAGE1_PATH }))); + +TEST(DesignQR, NegativeShape) +{ + mv_engine_config_h engine_cfg = NULL; + int qr_version, img_size; + + ASSERT_EQ(mv_create_engine_config(&engine_cfg), MEDIA_VISION_ERROR_NONE); + ASSERT_EQ(mv_engine_config_set_int_attribute(engine_cfg, MV_BARCODE_GENERATE_ATTR_DATA_SHAPE, + MV_BARCODE_GENERATE_ATTR_SHAPE_ROUND_RECT), + MEDIA_VISION_ERROR_NONE); + ASSERT_EQ(mv_barcode_generate_image(engine_cfg, "http://MEDIA_VISION_ERROR_INVALID_PARAMETER", 200, 200, + MV_BARCODE_QR, MV_BARCODE_QR_MODE_UTF8, MV_BARCODE_QR_ECC_LOW, 5, + "/tmp/this_not_saved", MV_BARCODE_IMAGE_FORMAT_PNG), + MEDIA_VISION_ERROR_INVALID_PARAMETER); + ASSERT_EQ(mv_destroy_engine_config(engine_cfg), MEDIA_VISION_ERROR_NONE); +}