diff --git a/meson.build b/meson.build index 47e17c3..3c41d4b 100644 --- a/meson.build +++ b/meson.build @@ -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) diff --git a/test/meson.build b/test/meson.build new file mode 100644 index 0000000..b10c304 --- /dev/null +++ b/test/meson.build @@ -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