meson.build: move tests to test/meson.build

This requires that we add the top-level directory to includes so the
tests can find the config.h file.
This commit is contained in:
Peter Hutterer 2023-02-09 11:24:02 +10:00
parent dd32adb319
commit cb46522425
2 changed files with 126 additions and 122 deletions

View file

@ -43,6 +43,7 @@ endif
add_project_arguments(cc.get_supported_arguments(cflags), language: 'c')
inc_builddir = include_directories('.')
inc_src = include_directories('src')
inc_proto = include_directories('proto')
@ -263,128 +264,8 @@ endif
# tests
if get_option('tests')
subproject('munit', default_options: 'werror=false')
munit = dependency('munit', fallback: ['munit', 'munit_dep'])
lib_unittest = static_library('unittest',
'src/util-munit.h',
'src/util-munit.c',
dependencies: munit,
)
dep_unittest = declare_dependency(
link_with: lib_unittest,
dependencies: munit
)
test('unit-tests-utils',
executable('unit-tests-utils',
'test/unit-tests.c',
src_libutil,
include_directories: [inc_src],
c_args: ['-D_enable_tests_'],
dependencies: [dep_unittest]))
test('unit-tests-ei',
executable('unit-tests-ei',
'test/unit-tests.c',
src_libei,
include_directories: [inc_src],
c_args: ['-D_enable_tests_'],
dependencies: deps_libei + [dep_unittest]))
test('unit-tests-eis',
executable('unit-tests-eis',
'test/unit-tests.c',
src_libeis,
include_directories: [inc_src],
c_args: ['-D_enable_tests_'],
dependencies: [dep_unittest, dep_libutil, dep_protobuf]))
if build_oeffis
test('unit-tests-oeffis',
executable('unit-tests-oeffis',
'test/unit-tests.c',
src_liboeffis,
include_directories: [inc_src],
c_args: ['-D_enable_tests_'],
dependencies: deps_liboeffis + [dep_unittest]))
env = environment()
env.set('LD_LIBRARY_PATH', meson.current_build_dir())
pymod = import('python')
pymod.find_installation('python3', modules: ['pytest', 'attr', 'dbusmock'])
pytest = find_program('pytest-3', 'pytest')
test('pytest', pytest,
args: ['--verbose', '--log-level=DEBUG'],
suite: 'python',
workdir: meson.current_source_dir() / 'test',
env: env,
)
endif
lib_eierpecken = static_library('eierpecken',
'test/eierpecken.h',
'test/eierpecken.c',
include_directories: [inc_src],
dependencies: [munit, dep_libutil, dep_libei, dep_libeis, dep_libreis],
)
test('eierpecken',
executable('eierpecken',
'test/test-main.c',
'test/test-ei.c',
'test/test-ei-device.c',
'test/test-ei-seat.c',
'test/test-eis.c',
'test/test-reis.c',
link_with: lib_eierpecken,
dependencies: [dep_unittest, dep_libei, dep_libeis]))
valgrind = find_program('valgrind', required : false)
if valgrind.found()
add_test_setup('valgrind',
exe_wrapper : [ valgrind,
'--leak-check=full',
'--gen-suppressions=all',
'--error-exitcode=3' ],
exclude_suites: ['python'], # we don't want to valgrind python tests
timeout_multiplier : 100)
else
message('valgrind not found, disabling valgrind test suite')
endif
# build-test only
executable('test-build-libei',
'test/buildtest.c',
dependencies : [dep_libei],
include_directories : [inc_src],
c_args : ['-Werror', '-DINCLUDE_LIBEI=1'],
install : false)
executable('test-build-libeis',
'test/buildtest.c',
dependencies : [dep_libeis],
include_directories : [inc_src],
c_args : ['-Werror', '-DINCLUDE_LIBEIS=1'],
install : false)
executable('test-build-libreis',
'test/buildtest.c',
dependencies : [dep_libreis],
include_directories : [inc_src],
c_args : ['-Werror', '-DINCLUDE_LIBREIS=1'],
install : false)
if add_languages('cpp', required: false)
executable('test-build-cxx',
'test/buildtest.cc',
dependencies: [dep_libei, dep_libeis],
include_directories: [inc_src],
install: false)
endif
endif # tests
subdir('test')
endif
configure_file(output: 'config.h', configuration: config_h)

123
test/meson.build Normal file
View file

@ -0,0 +1,123 @@
subproject('munit', default_options: 'werror=false')
munit = dependency('munit', fallback: ['munit', 'munit_dep'])
lib_unittest = static_library('unittest',
'../src/util-munit.h',
'../src/util-munit.c',
dependencies: munit,
include_directories: [inc_builddir],
)
dep_unittest = declare_dependency(
link_with: lib_unittest,
dependencies: munit
)
test('unit-tests-utils',
executable('unit-tests-utils',
'unit-tests.c',
src_libutil,
include_directories: [inc_src, inc_builddir],
c_args: ['-D_enable_tests_'],
dependencies: [dep_unittest]))
test('unit-tests-ei',
executable('unit-tests-ei',
'unit-tests.c',
src_libei,
include_directories: [inc_src, inc_proto, inc_builddir],
c_args: ['-D_enable_tests_'],
dependencies: deps_libei + [dep_unittest]))
test('unit-tests-eis',
executable('unit-tests-eis',
'unit-tests.c',
src_libeis,
include_directories: [inc_src, inc_proto, inc_builddir],
c_args: ['-D_enable_tests_'],
dependencies: [dep_unittest, dep_libutil, dep_protobuf]))
if build_oeffis
test('unit-tests-oeffis',
executable('unit-tests-oeffis',
'unit-tests.c',
src_liboeffis,
include_directories: [inc_src, inc_builddir],
c_args: ['-D_enable_tests_'],
dependencies: deps_liboeffis + [dep_unittest]))
env = environment()
env.set('LD_LIBRARY_PATH', meson.current_build_dir())
pymod = import('python')
pymod.find_installation('python3', modules: ['pytest', 'attr', 'dbusmock'])
pytest = find_program('pytest-3', 'pytest')
test('pytest', pytest,
args: ['--verbose', '--log-level=DEBUG'],
suite: 'python',
workdir: meson.current_source_dir(),
env: env,
)
endif
lib_eierpecken = static_library('eierpecken',
'eierpecken.h',
'eierpecken.c',
include_directories: [inc_src, inc_builddir],
dependencies: [munit, dep_libutil, dep_libei, dep_libeis, dep_libreis],
)
test('eierpecken',
executable('eierpecken',
'test-main.c',
'test-ei.c',
'test-ei-device.c',
'test-ei-seat.c',
'test-eis.c',
'test-reis.c',
link_with: lib_eierpecken,
include_directories: [inc_builddir],
dependencies: [dep_unittest, dep_libei, dep_libeis]))
valgrind = find_program('valgrind', required : false)
if valgrind.found()
add_test_setup('valgrind',
exe_wrapper : [ valgrind,
'--leak-check=full',
'--gen-suppressions=all',
'--error-exitcode=3' ],
exclude_suites: ['python'], # we don't want to valgrind python tests
timeout_multiplier : 100)
else
message('valgrind not found, disabling valgrind test suite')
endif
# build-test only
executable('test-build-libei',
'buildtest.c',
dependencies : [dep_libei],
include_directories : [inc_src],
c_args : ['-Werror', '-DINCLUDE_LIBEI=1'],
install : false)
executable('test-build-libeis',
'buildtest.c',
dependencies : [dep_libeis],
include_directories : [inc_src],
c_args : ['-Werror', '-DINCLUDE_LIBEIS=1'],
install : false)
executable('test-build-libreis',
'buildtest.c',
dependencies : [dep_libreis],
include_directories : [inc_src],
c_args : ['-Werror', '-DINCLUDE_LIBREIS=1'],
install : false)
if add_languages('cpp', required: false)
executable('test-build-cxx',
'buildtest.cc',
dependencies: [dep_libei, dep_libeis],
include_directories: [inc_src],
install: false)
endif