pipewire/spa/tests/meson.build
Simon McVittie b852b58f82 Optionally install examples and tests
This makes it easier to test PipeWire in its "as-installed" state,
for example in an OS distribution.

The .test metadata files in ${datadir}/installed-tests/${package} are
a convention taken from GNOME's installed-tests initiative, allowing a
generic test-runner like gnome-desktop-testing to discover and run tests
in an automatic way.

The installation path ${libexecdir}/installed-tests/${package} is also
a convention borrowed from GNOME's installed-tests initiative.

In addition to the automated tests, I've installed example executables
in the same place, for manual testing. They could be separated into
a different directory if desired, but they seem like they have more
similarities with the automated tests than differences: both are there
to test that PipeWire works correctly, and neither should be relied on
for production use. Some examples are installed in deeper subdirectories
to avoid name clashes.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-06-16 17:58:02 +00:00

80 lines
2.1 KiB
Meson

test_apps = [
'test-buffer',
'test-node',
'test-pod',
'test-utils',
]
foreach a : test_apps
test('spa-' + a,
executable('spa-' + a, a + '.c',
dependencies : [dl_lib, pthread_lib, mathlib ],
include_directories : [spa_inc ],
c_args : [ '-D_GNU_SOURCE' ],
install : installed_tests_enabled,
install_dir : installed_tests_execdir),
env : [
'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()),
])
if installed_tests_enabled
test_conf = configuration_data()
test_conf.set('exec', join_paths(installed_tests_execdir, 'spa-' + a))
configure_file(
input: installed_tests_template,
output: 'spa-' + a + '.test',
install_dir: installed_tests_metadir,
configuration: test_conf
)
endif
endforeach
if have_cpp
test_cpp = executable('spa-test-cpp', 'test-cpp.cpp',
include_directories : [spa_inc ],
dependencies : [],
install : installed_tests_enabled,
install_dir : installed_tests_execdir)
test('spa-test-cpp', test_cpp)
if installed_tests_enabled
test_conf = configuration_data()
test_conf.set('exec', join_paths(installed_tests_execdir, 'spa-test-cpp'))
configure_file(
input: installed_tests_template,
output: 'spa-test-cpp.test',
install_dir: installed_tests_metadir,
configuration: test_conf
)
endif
endif
benchmark_apps = [
'stress-ringbuffer',
'benchmark-pod',
'benchmark-dict',
]
foreach a : benchmark_apps
benchmark('spa-' + a,
executable('spa-' + a, a + '.c',
dependencies : [dl_lib, pthread_lib, mathlib ],
include_directories : [spa_inc ],
c_args : [ '-D_GNU_SOURCE' ],
install : installed_tests_enabled,
install_dir : installed_tests_execdir),
env : [
'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()),
])
if installed_tests_enabled
test_conf = configuration_data()
test_conf.set('exec', join_paths(installed_tests_execdir, 'spa-' + a))
configure_file(
input: installed_tests_template,
output: 'spa-' + a + '.test',
install_dir: installed_tests_metadir,
configuration: test_conf
)
endif
endforeach