steps in single tests

cv2_segfault_repro_1
scito 1 year ago
parent 5e10b26067
commit 375d345965

@ -40,20 +40,20 @@ jobs:
python -m pip install --upgrade pip
pip install -U -r requirements-dev.txt
pip install -U .
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=200 --statistics
if: matrix.python-version != '3.7'
- name: Type checking with mypy
run: |
mypy --install-types --non-interactive src/*.py tests/*.py
mypy --strict src/*.py tests/*.py
if: matrix.python-version == '3.x' && matrix.platform == 'ubuntu-latest'
# - name: Lint with flake8
# run: |
# # stop the build if there are Python syntax errors or undefined names
# flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
# flake8 . --count --exit-zero --max-complexity=10 --max-line-length=200 --statistics
# if: matrix.python-version != '3.7'
# - name: Type checking with mypy
# run: |
# mypy --install-types --non-interactive src/*.py tests/*.py
# mypy --strict src/*.py tests/*.py
# if: matrix.python-version == '3.x' && matrix.platform == 'ubuntu-latest'
- name: Test with pytest
run: pytest -vvv -s tests/extract_otp_secrets_test.py::test_cv2_segfault
run: pytest -vvv -s tests/extract_otp_secrets_test.py
if: (matrix.python-version != '3.x' || matrix.platform != 'ubuntu-latest')
# && matrix.platform != 'macos-latest'
- name: Test with pytest (with code coverage)

@ -43,7 +43,185 @@ qreader_available: bool = extract_otp_secrets.qreader_available
# @pytest.mark.skipif(sys.platform.startswith("win") or not qreader_available or sys.implementation.name == 'pypy' or sys.version_info >= (3, 10), reason="Quickfix")
def test_cv2_segfault(qr_mode: str) -> None:
def test_cv2_segfault_1(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
qr_mode_2 = extract_otp_secrets.QRMode[qr_mode]
print(f'detect and decode for qr_mode {qr_mode_2}')
print('Done')
def test_cv2_segfault_2(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
qr_mode_2 = extract_otp_secrets.QRMode[qr_mode]
print(f'detect and decode for qr_mode {qr_mode_2}')
if qr_mode_2 in [extract_otp_secrets.QRMode.QREADER, extract_otp_secrets.QRMode.DEEP_QREADER]:
print('cv.QRCodeDetector()')
cv2.QRCodeDetector()
elif qr_mode_2 == extract_otp_secrets.QRMode.CV2:
cv2.QRCodeDetector().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.WECHAT:
cv2.wechat_qrcode.WeChatQRCode().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.ZBAR:
zbar.decode(img)
print('extract_otp_secrets.main')
extract_otp_secrets.main(['--qr', qr_mode, 'tests/data/test_googleauth_export.png'])
print('Done')
def test_cv2_segfault_3(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
qr_mode_2 = extract_otp_secrets.QRMode[qr_mode]
print(f'detect and decode for qr_mode {qr_mode_2}')
if qr_mode_2 in [extract_otp_secrets.QRMode.QREADER, extract_otp_secrets.QRMode.DEEP_QREADER]:
print('cv.QRCodeDetector()')
cv2.QRCodeDetector()
print('from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector')
from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector
elif qr_mode_2 == extract_otp_secrets.QRMode.CV2:
cv2.QRCodeDetector().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.WECHAT:
cv2.wechat_qrcode.WeChatQRCode().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.ZBAR:
zbar.decode(img)
print('extract_otp_secrets.main')
extract_otp_secrets.main(['--qr', qr_mode, 'tests/data/test_googleauth_export.png'])
print('Done')
def test_cv2_segfault_4(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
qr_mode_2 = extract_otp_secrets.QRMode[qr_mode]
print(f'detect and decode for qr_mode {qr_mode_2}')
if qr_mode_2 in [extract_otp_secrets.QRMode.QREADER, extract_otp_secrets.QRMode.DEEP_QREADER]:
print('cv.QRCodeDetector()')
cv2.QRCodeDetector()
print('from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector')
from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector
print('_YoloV3QRDetector()')
_YoloV3QRDetector()
elif qr_mode_2 == extract_otp_secrets.QRMode.CV2:
cv2.QRCodeDetector().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.WECHAT:
cv2.wechat_qrcode.WeChatQRCode().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.ZBAR:
zbar.decode(img)
print('extract_otp_secrets.main')
extract_otp_secrets.main(['--qr', qr_mode, 'tests/data/test_googleauth_export.png'])
print('Done')
def test_cv2_segfault_5(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
qr_mode_2 = extract_otp_secrets.QRMode[qr_mode]
print(f'detect and decode for qr_mode {qr_mode_2}')
if qr_mode_2 in [extract_otp_secrets.QRMode.QREADER, extract_otp_secrets.QRMode.DEEP_QREADER]:
print('cv.QRCodeDetector()')
cv2.QRCodeDetector()
print('from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector')
from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector
print('_YoloV3QRDetector()')
_YoloV3QRDetector()
print('from qreader import QReader')
from qreader import QReader
elif qr_mode_2 == extract_otp_secrets.QRMode.CV2:
cv2.QRCodeDetector().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.WECHAT:
cv2.wechat_qrcode.WeChatQRCode().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.ZBAR:
zbar.decode(img)
print('extract_otp_secrets.main')
extract_otp_secrets.main(['--qr', qr_mode, 'tests/data/test_googleauth_export.png'])
print('Done')
def test_cv2_segfault_6(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')
img = cv2.imread('tests/data/test_googleauth_export.png')
qr_mode_2 = extract_otp_secrets.QRMode[qr_mode]
print(f'detect and decode for qr_mode {qr_mode_2}')
if qr_mode_2 in [extract_otp_secrets.QRMode.QREADER, extract_otp_secrets.QRMode.DEEP_QREADER]:
print('cv.QRCodeDetector()')
cv2.QRCodeDetector()
print('from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector')
from __yolo_v3_qr_detector.yolov3_qr_detector import _YoloV3QRDetector
print('_YoloV3QRDetector()')
_YoloV3QRDetector()
print('from qreader import QReader')
from qreader import QReader
print('QReader()')
qreader = QReader()
elif qr_mode_2 == extract_otp_secrets.QRMode.CV2:
cv2.QRCodeDetector().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.WECHAT:
cv2.wechat_qrcode.WeChatQRCode().detectAndDecode(img)
elif qr_mode_2 == extract_otp_secrets.QRMode.ZBAR:
zbar.decode(img)
print('extract_otp_secrets.main')
extract_otp_secrets.main(['--qr', qr_mode, 'tests/data/test_googleauth_export.png'])
print('Done')
def test_cv2_segfault_7_all(qr_mode: str) -> None:
print(f'QRmode: {qr_mode}')
print('cv2.imread')

Loading…
Cancel
Save