[bluez/bluez] 0c5b92: build: add doc/test-functional.rst to EXTRA_DIST

From: Luiz Augusto von Dentz <hidden>
Date: 2026-09-10 17:43:54

  Branch: refs/heads/1161557
  Home:   https://github.com/bluez/bluez
  Commit: 0c5b9211ce8a99afa4d5381d5efbf0c082a0b4ce
      https://github.com/bluez/bluez/commit/0c5b9211ce8a99afa4d5381d5efbf0c082a0b4ce
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M Makefile.am

  Log Message:
  -----------
  build: add doc/test-functional.rst to EXTRA_DIST

The functional testing documentation was not distributed with the
tarball, unlike the other documents in doc/.

Assisted-by: opencode:claude-opus-5


  Commit: 93e8e2aae4af57407f7f88b26148ed61f3f993ff
      https://github.com/bluez/bluez/commit/93e8e2aae4af57407f7f88b26148ed61f3f993ff
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M Makefile.am
    A doc/functional-avrcp.rst
    A doc/functional-obex.rst
    A doc/functional-testing.rst

  Log Message:
  -----------
  doc: describe the functional test cases

Add doc/functional-testing.rst describing the test cases under
test/functional as setup, steps, expected outcome and notes, so a test
can be reproduced and reviewed without reading its source, and the
reason behind the way it is written is not lost. The setup of each test
includes a topology diagram showing how many hosts are used and the
role each of them takes.

It also documents the pytest markers (vm, sa, tester) and the
convention of naming security advisory regression tests after their
GHSA id.

Tests for a specific profile need more context than the core ones, so
they are documented separately, in doc/functional-<profile>.rst.

Assisted-by: opencode:claude-opus-5


  Commit: 44a50bf9c754606bd8b96cca0ae3ef5952a3278d
      https://github.com/bluez/bluez/commit/44a50bf9c754606bd8b96cca0ae3ef5952a3278d
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M client/player.c

  Log Message:
  -----------
  client: do not prompt for LE Audio settings on A2DP endpoints

Registering an A2DP endpoint prompted for Locations, Supported
Context, Context, CIG and CIS, which are LE Audio/ISO specific and
have no meaning for A2DP. Worse, answering Locations with a single
location pushes an LC3_CHAN_COUNT LTV into the capabilities, which
corrupts the SBC capabilities.

Register A2DP endpoints right after Max Transports instead, and use
the same helper in endpoint_init_defaults(), which compared against
A2DP_SOURCE_UUID twice and therefore left A2DP Sink endpoints with
ISO and broadcast defaults.

Assisted-by: opencode:claude-opus-5


  Commit: fa0bef6899a0ab8ade319e7c5d5eb84e99183ede
      https://github.com/bluez/bluez/commit/fa0bef6899a0ab8ade319e7c5d5eb84e99183ede
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    A client/scripts/a2dp-sink.bt
    A client/scripts/a2dp-source.bt

  Log Message:
  -----------
  client: add A2DP endpoint registration scripts

Add scripts registering an A2DP Source and an A2DP Sink endpoint with
SBC, so a peer can be set up with a single command:

  bluetoothctl --init-script client/scripts/a2dp-source.bt

Assisted-by: opencode:claude-opus-5


  Commit: 71462b9df290f2e2fb16b07c9eb0915efbb9240f
      https://github.com/bluez/bluez/commit/71462b9df290f2e2fb16b07c9eb0915efbb9240f
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M Makefile.am
    A doc/functional-a2dp.rst
    M doc/functional-testing.rst
    A test/functional/test_a2dp.py

  Log Message:
  -----------
  test: functional: add A2DP tests

Add tests covering A2DP via bluetoothctl: the central registers an
A2DP Source endpoint and the peripheral an A2DP Sink endpoint, using
the endpoint registration scripts. The endpoints are registered before
pairing so the SDP records are in place when the peer resolves the
services.

test_a2dp_transport_created checks a MediaTransport1 object is created
on both sides with the expected endpoint, codec and state, and
test_a2dp_transport_acquire checks the central can acquire it.

Assisted-by: opencode:claude-opus-5


  Commit: 17d960744f4fd229a731474bfc3c8f51257519e7
      https://github.com/bluez/bluez/commit/17d960744f4fd229a731474bfc3c8f51257519e7
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    A client/scripts/a2dp-sink-sbc.bt
    R client/scripts/a2dp-sink.bt
    A client/scripts/a2dp-source-sbc.bt
    R client/scripts/a2dp-source.bt
    M doc/functional-a2dp.rst
    M test/functional/test_a2dp.py

  Log Message:
  -----------
  client: rename media endpoint scripts to include the codec

Name the scripts registering a media endpoint
<profile>-<role>-<codec>[-<preset>].bt, so it is clear what they set
up without having to read them.

Assisted-by: opencode:claude-opus-5


  Commit: 12a5b0076eb9e9873f61b9467bffd63bd21e0698
      https://github.com/bluez/bluez/commit/12a5b0076eb9e9873f61b9467bffd63bd21e0698
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    A client/scripts/bap-sink-lc3.bt
    A client/scripts/bap-source-lc3.bt

  Log Message:
  -----------
  client: add BAP endpoint registration scripts

Add scripts registering a local PAC Source and a local PAC Sink
endpoint with LC3, to set up the two sides of a BAP unicast stream:

  bluetoothctl --init-script client/scripts/bap-source-lc3.bt

The locations and contexts match the ones bluetoothctl uses when
registering the endpoints itself, so that the metadata of a stream is
not rejected.

Assisted-by: opencode:claude-opus-5


  Commit: b7f2681c4f7b8bfac2f2c3cb625a73b393a8edb3
      https://github.com/bluez/bluez/commit/b7f2681c4f7b8bfac2f2c3cb625a73b393a8edb3
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M doc/bluetoothctl.rst

  Log Message:
  -----------
  doc: bluetoothctl: document init script option and scripts

The --init-script option was not documented. Document it, along with
the scripts shipped in client/scripts and the roles they set up.

Assisted-by: opencode:claude-opus-5


  Commit: c0ae00492e0cc79b0b40f4d85865649366cb7645
      https://github.com/bluez/bluez/commit/c0ae00492e0cc79b0b40f4d85865649366cb7645
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M Makefile.am
    A doc/functional-bap.rst
    M doc/functional-testing.rst
    A test/functional/test_bap.py

  Log Message:
  -----------
  test: functional: add BAP unicast tests

Add tests covering BAP unicast via bluetoothctl: the initiator
registers a PAC Source endpoint, the acceptor a PAC Sink endpoint, and
after pairing the initiator configures the remote endpoint with a
preset.

test_bap_unicast_transport_created checks a MediaTransport1 object is
created on both sides with the expected endpoint, codec and state, and
test_bap_unicast_transport_acquire checks the initiator can acquire
them.

The endpoints are configured for stereo, so a stream is created per
location, each with its own CIS in the same CIG. All the transports
have to be acquired, as the CIS are only created once every CIS of the
CIG is ready.

Assisted-by: opencode:claude-opus-5


  Commit: 47071a59cee9a04852bd06b45874d720b7965271
      https://github.com/bluez/bluez/commit/47071a59cee9a04852bd06b45874d720b7965271
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M doc/functional-bap.rst
    M test/functional/test_bap.py

  Log Message:
  -----------
  test: functional: add BAP broadcast tests

Add tests covering BAP broadcast via bluetoothctl: the Broadcast
Source registers a BCAA endpoint, configures it and starts the
broadcast, while the Broadcast Sink registers a BAA endpoint and scans,
syncing to the periodic advertising on its own, without a Broadcast
Assistant. Run them for a plain broadcast and for a Public Broadcast
Profile one.

test_bap_broadcast_transport_created checks a MediaTransport1 object is
created for each BIS of the BASE, and test_bap_broadcast_transport_acquire
checks selecting the transport with the broadcast code moves it to
broadcasting and acquiring it succeeds.

Assisted-by: opencode:claude-opus-5


  Commit: e071c2266e8f57e72cb81082e452a798e474a3a5
      https://github.com/bluez/bluez/commit/e071c2266e8f57e72cb81082e452a798e474a3a5
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M doc/functional-bap.rst
    M test/functional/test_bap.py

  Log Message:
  -----------
  test: functional: add BAP broadcast assistant test

Add a test covering the Broadcast Assistant sharing a broadcast with a
Scan Delegator, with the Broadcast Source and the Broadcast Assistant
colocated so the assistant shares its own broadcast. The delegator
receives the periodic advertising sync over the connection to the
assistant (PAST), instead of scanning the source itself.

The topology where the assistant relays a source it scanned, which
does not use PAST, needs the assistant on a third host and can be
added later.

Assisted-by: opencode:claude-opus-5


  Commit: aca79b6a378ff9a9551d6b6c9090a8ab1beb3bde
      https://github.com/bluez/bluez/commit/aca79b6a378ff9a9551d6b6c9090a8ab1beb3bde
  Author: Luiz Augusto von Dentz [off-list ref]
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M profiles/audio/bap.c

  Log Message:
  -----------
  bap: reuse the PA sync established to discover a Broadcast Source

A Broadcast Sink creates a short lived PA sync to read the BASE of a
Broadcast Source, closes it, and creates a new one once a stream is
enabled, as syncing to the BIG requires a PA sync. The second sync has
to be established again before the BIG sync can be requested, which
delays the start of the stream.

Keep the sync of the BIG Info report around instead, and reuse it, but
only while there is nothing else to discover, as a sync holds resources
that are needed to discover other Broadcast Sources: it is released as
soon as another source is probed, and after a grace timeout if no
stream is enabled in the meantime.

Assisted-by: opencode:claude-opus-5


Compare: https://github.com/bluez/bluez/compare/0c5b9211ce8a%5E...aca79b6a378f

To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help