Fix invalid qrcode attribute 55/291555/3
authorKwanghoon Son <k.son@samsung.com>
Tue, 18 Apr 2023 08:05:07 +0000 (17:05 +0900)
committerKwanghoon Son <k.son@samsung.com>
Mon, 24 Apr 2023 02:31:11 +0000 (11:31 +0900)
mv_barcode_generate_attr_shape_e for
MV_BARCODE_GENERATE_ATTR_SHAPE_ROUND_RECT should failed to generate.

Change-Id: I9ba27b74910d62bde2fdb757198c11920a5d338b
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
mv_barcode/barcode_generator/src/BarcodeGenerator.cpp
test/testsuites/barcode/test_designqr.cpp

index 64cca89..7c1059f 100644 (file)
@@ -109,12 +109,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;
                        }
                }
 
@@ -122,6 +125,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;
@@ -130,7 +135,8 @@ int createBarcode(const std::string &message, BarcodeType type, BarcodeQREncodin
                                break;
 
                        default:
-                               break;
+                               LOGE("Invalid finder shape");
+                               return BARCODE_WARNING_INVALID_OPTION;
                        }
                }
        }
index ea664db..f442fbb 100644 (file)
@@ -94,3 +94,19 @@ INSTANTIATE_TEST_CASE_P(
                                                                                                                        IMAGE2_PATH, IMAGE3_PATH
 #endif
                                                 })));
+
+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);
+}
\ No newline at end of file