diff options
Diffstat (limited to 'test/meson.build')
-rw-r--r-- | test/meson.build | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/test/meson.build b/test/meson.build new file mode 100644 index 0000000..1ce7d00 --- /dev/null +++ b/test/meson.build @@ -0,0 +1,156 @@ +pwtest_sources = [ + 'pwtest.h', + 'pwtest-implementation.h', + 'pwtest.c', + 'pwtest-compat.c', +] + +pwtest_deps = [ + pipewire_dep, + mathlib, + dl_lib, + cap_lib, + epoll_shim_dep +] + +pwtest_c_args = [ + '-DBUILD_ROOT="@0@"'.format(meson.project_build_root()), + '-DSOURCE_ROOT="@0@"'.format(meson.project_source_root()), +] + +pwtest_inc = [ + pipewire_inc, + configinc, + includes_inc, +] + +pwtest_lib = static_library( + 'pwtest', + pwtest_sources, + c_args: pwtest_c_args, + dependencies: pwtest_deps, + include_directories: pwtest_inc, +) + +test('test-pwtest', + executable('test-pwtest', + 'test-pwtest.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) +) + +# Compilation only, this is the example file for how pwtest works and most +# of its tests will fail. +executable('test-example', + 'test-example.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) + +test('test-pw-utils', + executable('test-pw-utils', + 'test-properties.c', + 'test-array.c', + 'test-map.c', + 'test-utils.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) +) + +test('test-lib', + executable('test-lib', + 'test-lib.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) +) + +test('test-client', + executable('test-client', + 'test-client.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) +) + +test('test-loop', + executable('test-loop', + 'test-loop.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) +) + +test('test-context', + executable('test-context', + 'test-context.c', + 'test-config.c', + include_directories: pwtest_inc, + dependencies: [spa_dep, spa_support_dep, spa_dbus_dep], + link_with: [pwtest_lib, + pipewire_module_protocol_native, + pipewire_module_client_node, + pipewire_module_client_device, + pipewire_module_adapter, + pipewire_module_metadata, + pipewire_module_session_manager]) +) + +test('test-support', + executable('test-support', + 'test-support.c', + 'test-logger.c', + include_directories: pwtest_inc, + dependencies: [spa_dep, systemd_dep, spa_support_dep, spa_journal_dep], + link_with: [pwtest_lib]) +) +test('test-spa', + executable('test-spa', + 'test-spa-buffer.c', + 'test-spa-json.c', + 'test-spa-utils.c', + 'test-spa-log.c', + 'test-spa-node.c', + 'test-spa-pod.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) +) + +openal_info = find_program('openal-info', required: false) +if openal_info.found() + cdata.set_quoted('OPENAL_INFO_PATH', openal_info.full_path()) +endif +summary({'openal-info': openal_info.found()}, bool_yn: true, section: 'Functional test programs') + +pactl = find_program('pactl', required: false) +if pactl.found() + cdata.set_quoted('PACTL_PATH', pactl.full_path()) +endif +summary({'pactl': pactl.found()}, bool_yn: true, section: 'Functional test programs') + +if default_sm == 'media-session' or default_sm == 'wireplumber' + test('test-functional', + executable('test-functional', + 'test-functional.c', + include_directories: pwtest_inc, + dependencies: [ spa_dep ], + link_with: pwtest_lib) + ) +endif + +valgrind = find_program('valgrind', required: false) +summary({'valgrind (test setup)': valgrind.found()}, bool_yn: true, section: 'Optional programs') +if valgrind.found() + valgrind_env = environment({'PIPEWIRE_DEBUG': 'D'}) + add_test_setup('valgrind', + exe_wrapper : [ valgrind, + '--leak-check=full', + '--gen-suppressions=all', + '--error-exitcode=3', + ], + env : valgrind_env, + timeout_multiplier : 3) +endif |