You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
extract_otp_secret_keys/tests/cv2_segfault_repro_test.py

89 lines
3.1 KiB
Python

# pytest for extract_otp_secrets.py
# Run tests:
# pytest
import cv2 # type: ignore
def test_cv2_segfault_6_f0() -> None:
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
yolo_v3_QR_detector = cv2.dnn.readNetFromDarknet(cfgFile='tests/data/qrcode-yolov3-tiny.cfg', darknetModel='tests/data/qrcode-yolov3-tiny_last.weights')
yolo_v3_QR_detector.setPreferableBackend(cv2.dnn.DNN_BACKEND_OPENCV)
output_layer_names = yolo_v3_QR_detector.getLayerNames()
output_layer_name = output_layer_names[yolo_v3_QR_detector.getUnconnectedOutLayers()[0] - 1]
print('cv2.dnn.blobFromImage')
_INPUT_SIZE = (416, 416)
_CONF_THRESHOLD = 0.5
blob = cv2.dnn.blobFromImage(img, 1 / 255, _INPUT_SIZE, swapRB=False, crop=False)
print('yolo.yolo_v3_QR_detector.setInput')
yolo_v3_QR_detector.setInput(blob=blob)
# Transform the image to blob and predict
# print('yolo_v3_QR_detector.forward')
# output = yolo_v3_QR_detector.forward(output_layer_name)
print('Done')
def test_cv2_segfault_6_f1() -> None:
print(cv2.__version__)
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
yolo_v3_QR_detector = cv2.dnn.readNetFromDarknet(cfgFile='tests/data/qrcode-yolov3-tiny.cfg', darknetModel='tests/data/qrcode-yolov3-tiny_last.weights')
yolo_v3_QR_detector.setPreferableBackend(cv2.dnn.DNN_BACKEND_OPENCV)
output_layer_names = yolo_v3_QR_detector.getLayerNames()
output_layer_name = output_layer_names[yolo_v3_QR_detector.getUnconnectedOutLayers()[0] - 1]
print('cv2.dnn.blobFromImage')
_INPUT_SIZE = (416, 416)
_CONF_THRESHOLD = 0.5
blob = cv2.dnn.blobFromImage(img, 1 / 255, _INPUT_SIZE, swapRB=False, crop=False)
print('yolo.yolo_v3_QR_detector.setInput')
yolo_v3_QR_detector.setInput(blob=blob)
print('yolo_v3_QR_detector.enableWinograd(False)')
yolo_v3_QR_detector.enableWinograd(False) # add code to disable the Winograd optimized.
# Transform the image to blob and predict
print('yolo_v3_QR_detector.forward')
output = yolo_v3_QR_detector.forward(output_layer_name)
print('Done')
def test_cv2_segfault_6_f2() -> None:
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
yolo_v3_QR_detector = cv2.dnn.readNetFromDarknet(cfgFile='tests/data/qrcode-yolov3-tiny.cfg', darknetModel='tests/data/qrcode-yolov3-tiny_last.weights')
yolo_v3_QR_detector.setPreferableBackend(cv2.dnn.DNN_BACKEND_OPENCV)
output_layer_names = yolo_v3_QR_detector.getLayerNames()
output_layer_name = output_layer_names[yolo_v3_QR_detector.getUnconnectedOutLayers()[0] - 1]
print('cv2.dnn.blobFromImage')
_INPUT_SIZE = (416, 416)
_CONF_THRESHOLD = 0.5
blob = cv2.dnn.blobFromImage(img, 1 / 255, _INPUT_SIZE, swapRB=False, crop=False)
print('yolo.yolo_v3_QR_detector.setInput')
yolo_v3_QR_detector.setInput(blob=blob)
# Transform the image to blob and predict
print('yolo_v3_QR_detector.forward')
output = yolo_v3_QR_detector.forward(output_layer_name)
print('Done')