kicad/thirdparty/sentry-native/tests/conftest.py

53 lines
1.3 KiB
Python

import os
import pytest
import re
from . import run
from .cmake import CMake
def enumerate_unittests():
regexp = re.compile(r"XX\((.*?)\)")
# TODO: actually generate the `tests.inc` file with python
curdir = os.path.dirname(os.path.realpath(__file__))
with open(os.path.join(curdir, "unit/tests.inc"), "r") as testsfile:
for line in testsfile:
match = regexp.match(line)
if match:
yield match.group(1)
def pytest_generate_tests(metafunc):
if "unittest" in metafunc.fixturenames:
metafunc.parametrize("unittest", enumerate_unittests())
@pytest.fixture(scope="session")
def cmake(tmp_path_factory):
cmake = CMake(tmp_path_factory)
yield cmake.compile
cmake.destroy()
def pytest_addoption(parser):
parser.addoption(
"--with_crashpad_wer",
action="store_true",
help="Enables tests for the crashpad WER module on Windows",
)
def pytest_runtest_setup(item):
if "with_crashpad_wer" in item.keywords and not item.config.getoption(
"--with_crashpad_wer"
):
pytest.skip("need --with_crashpad_wer to run this test")
def pytest_configure(config):
config.addinivalue_line(
"markers",
"with_crashpad_wer: mark test to only run when WER testing is enabled",
)