mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-04-09 08:21:08 -04:00
test: add AVB protocol test suite with loopback transport
Add a test suite for the AVB (Audio Video Bridging) protocol stack that runs entirely in software, requiring no hardware, root privileges, or running PipeWire daemon. The loopback transport (avb-transport-loopback.h) replaces raw AF_PACKET sockets with in-memory packet capture, using a synthetic MAC address and eventfd for protocol handlers that need a valid fd. Test utilities (test-avb-utils.h) provide helpers for creating test servers, injecting packets, advancing time, and building ADP packets. Tests cover: - ADP entity available/departing/discover/timeout - MRP attribute lifecycle (create, begin, join) - Milan v1.2 mode server creation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a73988d38d
commit
ef4ff8cfd0
4 changed files with 730 additions and 0 deletions
|
|
@ -163,3 +163,42 @@ if valgrind.found()
|
|||
env : valgrind_env,
|
||||
timeout_multiplier : 3)
|
||||
endif
|
||||
|
||||
if build_module_avb
|
||||
avb_test_inc = [pwtest_inc, include_directories('../src/modules')]
|
||||
avb_module_sources = [
|
||||
'../src/modules/module-avb/avb.c',
|
||||
'../src/modules/module-avb/adp.c',
|
||||
'../src/modules/module-avb/acmp.c',
|
||||
'../src/modules/module-avb/aecp.c',
|
||||
'../src/modules/module-avb/aecp-aem.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-available.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-get-set-control.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-get-set-name.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-get-set-clock-source.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-get-set-sampling-rate.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-deregister-unsolicited-notifications.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-register-unsolicited-notifications.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-get-set-stream-format.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-lock-entity.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/cmd-get-set-configuration.c',
|
||||
'../src/modules/module-avb/aecp-aem-cmds-resps/reply-unsol-helpers.c',
|
||||
'../src/modules/module-avb/es-builder.c',
|
||||
'../src/modules/module-avb/avdecc.c',
|
||||
'../src/modules/module-avb/descriptors.c',
|
||||
'../src/modules/module-avb/maap.c',
|
||||
'../src/modules/module-avb/mmrp.c',
|
||||
'../src/modules/module-avb/mrp.c',
|
||||
'../src/modules/module-avb/msrp.c',
|
||||
'../src/modules/module-avb/mvrp.c',
|
||||
'../src/modules/module-avb/srp.c',
|
||||
'../src/modules/module-avb/stream.c',
|
||||
]
|
||||
test('test-avb',
|
||||
executable('test-avb',
|
||||
['test-avb.c'] + avb_module_sources,
|
||||
include_directories: avb_test_inc,
|
||||
dependencies: [spa_dep, pipewire_dep, mathlib, dl_lib, rt_lib],
|
||||
link_with: pwtest_lib)
|
||||
)
|
||||
endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue