mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-10-14 20:02:38 +00:00
0e60e9c063
Add a struct spa_log_topic that allows for logical grouping of messages. The new macros spa_log_logt() and spa_log_logtv() take a topic as argument, the topic's level acts as filter. A new macro spa_log_topic_init() initializes a topic. By default a topic inherits its logger's debug level but a logger implementation may set that topic to a specific fixed log level. The various spa_log_*() macros transparently wrap new and old implementations: - if the implementation is version 0, the new logt() calls drop the topic and get routed into the old log() calls - if the implementation is version 1, the old log() calls use a NULL topic and get routed into the new logt() calls All spa_log_* macros use the SPA_LOG_DEFAULT_TOPIC topic (NULL), it is up to the caller to redefine that. Alternatively, use spa_logt_* to pass an explicit topic. There is one crucial flaw in this implementation: log topics are initialized to their target level by the current logger. Where a topic is initialized but the logger is switched later, the topic is not automatically re-initialized. Ultimately this shouldn't matter for real-world use-cases.
119 lines
3.2 KiB
Meson
119 lines
3.2 KiB
Meson
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.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,
|
|
)
|
|
|
|
test('test pwtest',
|
|
executable('test-pwtest',
|
|
'test-pwtest.c',
|
|
include_directories: pwtest_inc,
|
|
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,
|
|
link_with: pwtest_lib)
|
|
|
|
test('test pipewire utils',
|
|
executable('test-pw-utils',
|
|
'test-properties.c',
|
|
'test-array.c',
|
|
'test-utils.c',
|
|
include_directories: pwtest_inc,
|
|
link_with: pwtest_lib)
|
|
)
|
|
test('test lib',
|
|
executable('test-lib',
|
|
'test-lib.c',
|
|
include_directories: pwtest_inc,
|
|
link_with: pwtest_lib)
|
|
)
|
|
test('test client',
|
|
executable('test-client',
|
|
'test-client.c',
|
|
include_directories: pwtest_inc,
|
|
link_with: pwtest_lib)
|
|
)
|
|
test('test context',
|
|
executable('test-context',
|
|
'test-context.c',
|
|
'test-config.c',
|
|
include_directories: pwtest_inc,
|
|
link_with: [pwtest_lib,
|
|
spa_support_lib,
|
|
spa_dbus_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: [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,
|
|
link_with: pwtest_lib)
|
|
)
|
|
|
|
valgrind = find_program('valgrind', required: false)
|
|
summary({'valgrind (test setup)': valgrind.found()}, bool_yn: true, section: 'Optional programs')
|
|
if valgrind.found()
|
|
valgrind_env = environment()
|
|
add_test_setup('valgrind',
|
|
exe_wrapper : [ valgrind,
|
|
'--leak-check=full',
|
|
'--gen-suppressions=all',
|
|
'--error-exitcode=3',
|
|
],
|
|
env : valgrind_env,
|
|
timeout_multiplier : 3)
|
|
endif
|