mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
test: add the pwtest test framework
Heavily inspired by libinput's litest framework (built around check), this is a from-scratch framework that simplifies adding tests for various parts of pipewire. See the pwtest.h documentation for details but the basics are: - PW_TEST() and PWTEST_SUITE() specify the tests to be run - Test are run in forked processes, any errors/signals are caught and printed to the log - Tests have a custom pipewire daemon started on demand to talk to [1]. The daemon's log is available in the test output. - Output is YAML to be processed into whatever format needed [1] There are limits here, since we can't emulate devices yet there is only so much we can rely on with the daemon.
This commit is contained in:
parent
0054319d88
commit
ed3f882fa9
9 changed files with 1878 additions and 0 deletions
38
test/meson.build
Normal file
38
test/meson.build
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
pwtest_sources = [
|
||||
'pwtest.h',
|
||||
'pwtest-implementation.h',
|
||||
'pwtest.c',
|
||||
]
|
||||
|
||||
pwtest_deps = [
|
||||
pipewire_dep,
|
||||
mathlib,
|
||||
]
|
||||
|
||||
pwtest_c_args = [
|
||||
'-DHAVE_CONFIG_H',
|
||||
'-DBUILD_ROOT="@0@"'.format(meson.build_root()),
|
||||
'-DSOURCE_ROOT="@0@"'.format(meson.source_root()),
|
||||
]
|
||||
|
||||
pwtest_inc = [
|
||||
spa_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,
|
||||
)
|
||||
|
||||
# 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,
|
||||
link_with: pwtest_lib)
|
||||
Loading…
Add table
Add a link
Reference in a new issue