|
Packit Service |
8ebd8e |
# Add a way to discover and run python unit tests separately
|
|
Packit Service |
8ebd8e |
# https://github.com/mesonbuild/meson/issues/6851
|
|
Packit Service |
8ebd8e |
python_tests = [
|
|
Packit Service |
8ebd8e |
# List all the python tests, must be in the form:
|
|
Packit Service |
8ebd8e |
# {
|
|
Packit Service |
8ebd8e |
# 'name': 'test name',
|
|
Packit Service |
8ebd8e |
# 'file': 'full test file path, use files('path')[0]',
|
|
Packit Service |
8ebd8e |
# Fields below are optional:
|
|
Packit Service |
8ebd8e |
# 'workdir': '',
|
|
Packit Service |
8ebd8e |
# 'env': [],
|
|
Packit Service |
8ebd8e |
# 'depends': [],
|
|
Packit Service |
8ebd8e |
# 'suite': [],
|
|
Packit Service |
8ebd8e |
# 'extra_args': [],
|
|
Packit Service |
8ebd8e |
# 'timeout': 30,
|
|
Packit Service |
8ebd8e |
# 'is_parallel': true,
|
|
Packit Service |
8ebd8e |
# }
|
|
Packit Service |
8ebd8e |
]
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
address_sanitizer = get_option('b_sanitize') == 'address'
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
tests = [
|
|
Packit Service |
8ebd8e |
'fprintd',
|
|
Packit Service |
8ebd8e |
'test_fprintd_utils',
|
|
Packit Service |
8ebd8e |
]
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
foreach t: tests
|
|
Packit Service |
8ebd8e |
python_tests += [
|
|
Packit Service |
8ebd8e |
{
|
|
Packit Service |
8ebd8e |
'name': t,
|
|
Packit Service |
8ebd8e |
'file': files(meson.current_source_dir() / t + '.py')[0],
|
|
Packit Service |
8ebd8e |
'env': [
|
|
Packit Service |
8ebd8e |
'G_DEBUG=fatal-criticals',
|
|
Packit Service |
8ebd8e |
'G_MESSAGES_DEBUG=all',
|
|
Packit Service |
8ebd8e |
'FPRINT_BUILD_DIR=' + meson.build_root() / 'src',
|
|
Packit Service |
8ebd8e |
'TOPSRCDIR=' + meson.source_root(),
|
|
Packit Service |
8ebd8e |
],
|
|
Packit Service |
8ebd8e |
'depends': [
|
|
Packit Service |
8ebd8e |
fprintd,
|
|
Packit Service |
8ebd8e |
fprintd_utils,
|
|
Packit Service |
8ebd8e |
],
|
|
Packit Service |
8ebd8e |
'suite': [t == 'fprintd' ? 'daemon' : ''],
|
|
Packit Service |
8ebd8e |
}
|
|
Packit Service |
8ebd8e |
]
|
|
Packit Service |
8ebd8e |
endforeach
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
if get_option('pam')
|
|
Packit Service |
8ebd8e |
subdir('pam')
|
|
Packit Service |
8ebd8e |
endif
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
# Add a way to discover and run python unit tests separately
|
|
Packit Service |
8ebd8e |
# https://github.com/mesonbuild/meson/issues/6851
|
|
Packit Service |
8ebd8e |
unittest_inspector = find_program('unittest_inspector.py')
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
foreach pt: python_tests
|
|
Packit Service |
8ebd8e |
r = run_command(unittest_inspector, pt.get('file'))
|
|
Packit Service |
8ebd8e |
unit_tests = r.stdout().strip().split('\n')
|
|
Packit Service |
8ebd8e |
base_args = [ pt.get('file') ] + pt.get('extra_args', [])
|
|
Packit Service |
8ebd8e |
suite = pt.get('suite', [])
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
if r.returncode() == 0 and unit_tests.length() > 0
|
|
Packit Service |
8ebd8e |
suite += pt.get('name')
|
|
Packit Service |
8ebd8e |
else
|
|
Packit Service |
8ebd8e |
unit_tests = [pt.get('name')]
|
|
Packit Service |
8ebd8e |
endif
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
foreach ut: unit_tests
|
|
Packit Service |
8ebd8e |
ut_suite = suite
|
|
Packit Service |
8ebd8e |
ut_args = base_args
|
|
Packit Service |
8ebd8e |
if unit_tests.length() > 1
|
|
Packit Service |
8ebd8e |
ut_args += ut
|
|
Packit Service |
8ebd8e |
ut_suite += ut.split('.')[0]
|
|
Packit Service |
8ebd8e |
endif
|
|
Packit Service |
8ebd8e |
test(ut,
|
|
Packit Service |
8ebd8e |
python3,
|
|
Packit Service |
8ebd8e |
args: ut_args,
|
|
Packit Service |
8ebd8e |
suite: ut_suite,
|
|
Packit Service |
8ebd8e |
depends: pt.get('depends', []),
|
|
Packit Service |
8ebd8e |
workdir: pt.get('workdir', meson.build_root()),
|
|
Packit Service |
8ebd8e |
env: pt.get('env', []),
|
|
Packit Service |
8ebd8e |
timeout: pt.get('timeout', 30),
|
|
Packit Service |
8ebd8e |
is_parallel: pt.get('is_parallel', true),
|
|
Packit Service |
8ebd8e |
)
|
|
Packit Service |
8ebd8e |
endforeach
|
|
Packit Service |
8ebd8e |
endforeach
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
timeout_multiplier = 1
|
|
Packit Service |
8ebd8e |
test_envs = [
|
|
Packit Service |
8ebd8e |
'G_SLICE=always-malloc',
|
|
Packit Service |
8ebd8e |
'MALLOC_CHECK_=2',
|
|
Packit Service |
8ebd8e |
]
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
if address_sanitizer
|
|
Packit Service |
8ebd8e |
timeout_multiplier = 3
|
|
Packit Service |
8ebd8e |
test_envs += [
|
|
Packit Service |
8ebd8e |
'ADDRESS_SANITIZER=true',
|
|
Packit Service |
8ebd8e |
'ASAN_OPTIONS=@0@'.format(':'.join([
|
|
Packit Service |
8ebd8e |
'abort_on_error=true',
|
|
Packit Service |
8ebd8e |
'symbolize=true',
|
|
Packit Service |
8ebd8e |
])),
|
|
Packit Service |
8ebd8e |
'LSAN_OPTIONS=@0@'.format(':'.join([
|
|
Packit Service |
8ebd8e |
'exitcode=0',
|
|
Packit Service |
8ebd8e |
'strict_string_checks=true',
|
|
Packit Service |
8ebd8e |
'suppressions=@0@'.format(
|
|
Packit Service |
8ebd8e |
files(meson.current_source_dir() / 'LSAN-leaks-suppress.txt')[0]),
|
|
Packit Service |
8ebd8e |
])),
|
|
Packit Service |
8ebd8e |
]
|
|
Packit Service |
8ebd8e |
endif
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
add_test_setup('default_setup',
|
|
Packit Service |
8ebd8e |
is_default: true,
|
|
Packit Service |
8ebd8e |
env: test_envs,
|
|
Packit Service |
8ebd8e |
timeout_multiplier: timeout_multiplier
|
|
Packit Service |
8ebd8e |
)
|
|
Packit Service |
8ebd8e |
|
|
Packit Service |
8ebd8e |
if not address_sanitizer and find_program('valgrind', required: false).found()
|
|
Packit Service |
8ebd8e |
glib_share = glib_dep.get_pkgconfig_variable('prefix') / 'share' / glib_dep.name()
|
|
Packit Service |
8ebd8e |
glib_suppressions = glib_share + '/valgrind/glib.supp'
|
|
Packit Service |
8ebd8e |
add_test_setup('valgrind',
|
|
Packit Service |
8ebd8e |
env: [
|
|
Packit Service |
8ebd8e |
'G_SLICE=always-malloc',
|
|
Packit Service |
8ebd8e |
'VALGRIND=' + glib_suppressions,
|
|
Packit Service |
8ebd8e |
],
|
|
Packit Service |
8ebd8e |
timeout_multiplier: 5
|
|
Packit Service |
8ebd8e |
)
|
|
Packit Service |
8ebd8e |
endif
|
|
Packit Service |
8ebd8e |
|