zephyr/tests/bluetooth/tester
Emil Gydesen 62f90c62ab tests: Bluetooth: Tester: Refactor audio TX
Instead of relying on the bap_send_cmd and a ring buffer,
the tester will now automatically start transmitting on
streams can that transmit once they enter the streaming state,
and stop again once once they leave the streaming state.

This ensures that we are always sending, which help pass
the PTS tests that require us to send, without having the
autopts client constant telling the tester to send.

This also ensures that we actually send SDUs of the right size
by not relying on a ring buffer, but using a separate thread
that sends data from a predefined array of ISO mock data.

This is easily expandable to multiple streams (including a mix
of unicast and broadcast) using different SDU sizes and easy to
expand to also use one or more software codecs.

The design is based on the TX thread for the BAP Unicast
Client sample and the audio babblesim tests.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-12-17 17:53:23 +01:00
..
boards Revert "samples/tests: bluetooth: remove ENTROPY_GENERATOR selection" 2024-12-12 00:15:39 +00:00
src tests: Bluetooth: Tester: Refactor audio TX 2024-12-17 17:53:23 +01:00
CMakeLists.txt tests: Bluetooth: Move audio related BTP files 2024-06-07 22:08:59 -05:00
hci_ipc_cpunet.conf tests: bluetooth: tester: make hci_ipc confs generic for multi-core 2024-11-27 08:16:50 +01:00
hci_ipc.conf tests: bluetooth: tester: make hci_ipc confs generic for multi-core 2024-11-27 08:16:50 +01:00
Kconfig
Kconfig.sysbuild tests: Bluetooth: tester: Workaround Bus Fault in nRF53x using full RAM 2024-11-08 09:25:28 -06:00
overlay-le-audio.conf Bluetooth: tester: enable VCS volume flags notify 2024-12-11 08:01:20 +01:00
overlay-mesh.conf Tests: Bluetooth: Tester: Mesh DFUM and BLOB should have own elements 2024-12-04 09:23:44 +01:00
prj.conf Bluetooth: Host: more secure defaults for key size and legacy pairing 2024-12-04 12:10:54 +01:00
rd_rw612_bga.overlay samples: tests: bluetooth: Add support for rd_rw612_bga 2024-05-25 11:23:04 +03:00
README
sysbuild.cmake tests: bluetooth: tester: make hci_ipc confs generic for multi-core 2024-11-27 08:16:50 +01:00
testcase.yaml nxp: combine MONOLITHIC_BT and MONOLITHIC_IEEE802154 2024-12-10 11:11:38 +01:00

Title: Bluetooth tester application

Description:

Tester application uses binary protocol to control Zephyr stack and is aimed at
automated testing. It requires two serial ports to operate.
The first serial is used by Bluetooth Testing Protocol (BTP) to drive Bluetooth
stack. BTP commands and events are received and buffered for further processing
over the same serial.

BTP specification can be found in auto-pts project repository:
https://github.com/intel/auto-pts
The auto-pts is an automation framework for PTS Bluetooth testing tool provided
by Bluetooth SIG.

See https://docs.zephyrproject.org/latest/guides/bluetooth/index.html for full
documentation about how to use this test.

--------------------------------------------------------------------------------

Supported Profiles:

GAP, GATT, SM
--------------------------------------------------------------------------------

Building and running on QEMU:

QEMU should have connection with the external host Bluetooth hardware.
The btproxy tool from BlueZ can be used to give access to a Bluetooth controller
attached to the Linux host OS:

$ sudo tools/btproxy -u
Listening on /tmp/bt-server-bredr

/tmp/bt-server-bredr option is already set in Makefile through QEMU_EXTRA_FLAGS.

To build tester application for QEMU use BOARD=qemu_cortex_m3 and
CONF_FILE=qemu.conf. After this qemu can be started through the "run"
build target.

Note: Target board have to support enough UARTs for BTP and controller.
      We recommend using qemu_cortex_m3.

'bt-stack-tester' UNIX socket (previously set in Makefile) can be used for now
to control tester application.
--------------------------------------------------------------------------------

Next, build and flash tester application by employing the "flash" build
target.

Use serial client, e.g. PUTTY to communicate over the serial port
(typically /dev/ttyUSBx) with the tester using BTP.