Change adds bsim tests with CONFIG_BT_LONG_WQ=n to ensure correct
behavior. Change uses host/gatt/ccc_store test.
Change also switches to using more unique simulation ID in the test
scripts.
Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
Change adds bsim tests with CONFIG_BT_LONG_WQ=n to ensure correct
behavior. Change uses host/security/ccc_update test.
Change also switches to using more unique simulation ID in the test
scripts.
Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
The BLE acronym is not an official description of Bluetooth
LE, and the Bluetooth SIG only ever refers to it as Bluetooth
Low Energy or Bluetooth LE, so Zephyr should as well.
This commit does not change any board or vendor specific
documentation, and the term BLE may still be used in those.
It will be up to the vendors to update it if they want,
since many of them are using the term BLE in their
products.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Since the PACS service is not part of the bt_bap API it should
not use the bt_bap prefix, and instead just be bt_pacs like the
rest of the PACS API.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Commit does the following changes:
* Use functionality from the `babbelkit` library for common functions
related to flags, test progression (failing, passing etc.) and
synchronization between two devices. Locally defined equivalents are
removed.
* Removes the files containing only functionality that is provided
by the `babblekit` library.
* Remove the `test_pre_init_f` and `test_tick_f` functions (commonly
implemented as `test_init` and `test_tick`) from the modified tests.
These functions are not needed as they were only used to fail the test
if a device didn't complete the test within a certain time frame. This
is already handled by the `sim_length` argument used in the test
scripts.
Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
Validate that the connection timeout code path works as expected when
the command buffer pool is under stress.
Signed-off-by: Jordan Yates <jordan@embeint.com>
Update the Central and Peripheral GATT write command sample
to measure throughput across all supported connection PHYs.
Cover the sample in BabbleSIM CI testing to validate the 2M
PHY throughput after all supported PHYs have been changed
once.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
The goal of this test is to ensure that setting the device name by
writing to the GAP 'Device Name' characteristic work as expected.
Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
Added initial CCP client implementation that simply
does discovery of TBS on a remote CCP server.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Remove the HCI command & event emulation layer for ECDH commands and
events. This means that we always do the necessary operations in the host.
The existing BT_ECC Kconfig option stays, but now gets automatically
enabled when necessary (e.g. based on the BT_SMP option), which is why this
commit removes so many explicit assignments in prj.conf files.
Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
This test is overly sensitive to the relative timing of the devices
and/or their random number generation.
Due to this the test failed with its current setup when chanding the
random generation for the nrf54.
Let's work around it by offsetting a bit one of the devices.
This is a provisional workaround until the underlying issue is
addressed.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Added option to set the PACS Characteristics through the bap API,
making PACS configuration runtime available. Source and Sink PAC, as
well as Source/Sink PAC Location is can be set through a register
function in the PACS api.
Signed-off-by: Fredrik Danebjer <frdn@demant.com>
bt_gatt_find_by_uuid used bt_gatt_attr_value_handle but that
function only works to get the value handle of a characteristic
declaration, i.e. if the UUID is not BT_UUID_GATT_CHRC then it
would always return handle = 0. This meant that
bt_gatt_find_by_uuid would always use handle = 0 as the starting
handle for non-BT_UUID_GATT_CHRC attributes, instead of the handle
of the provided attr.
This was not an issue for any UUIDs that may only exist once on a
GATT server, which is most UUIDs, but for UUIDs like the
BT_UUID_TBS_* UUIDs that may be multiple instances of, it would
always return the first attribute rather than the one starting
from the provided start attr.
This commit also ensures that we do not overflow the `end_handle`
when adding 2 uint16_t values.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The broadcast assistant will now validate the content of the
received receive states.
Some modifications were done to the tests to properly
pass these new validations.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Instead of using rs=1,2,3 and 4 we make it 10, 20, 30, 40 as the
other values could cause some connection issues.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Most specs require the use of extended advertising, and most
tests used legacy advertising.
Implement a common function to create and start an extended
advertising set to reduce code duplication.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Workaround by using `-start_offset` to ensure that the ACL
established does not overlap the sink being established.
The behavior between nrf52_bsim and nrf54l15bsim is
different where in the two device are starting to
advertising at the same time in nrf54l15bsim where as
there is an offset already in nrf52_bsim test.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit deals mainly with bsim tests which have `common.c/h` files.
It does the following changes:
* Use functionality from the `babbelkit` library for common functions
related to flags, test progression (failing, passing etc.) and
synchronization between two devices. Locally defined equivalents are
removed.
* Remove the `common.c/h` containing only functionality that is provided
by the `babblekit` library.
* Remove the `test_pre_init_f` and `test_tick_f` functions (commonly
implemented as `test_init` and `test_tick`) from the modified tests.
These functions are not needed as they were only used to fail the test
if a device didn't complete the test within a certain time frame. This
is already handled by the `sim_length` argument used in the test
scripts.
* Changes use of `atol` to `strtol` as the prior is against Zephyr
coding guidelines.
Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
Removed similar prj.conf files and added overlays instead to avoid
duplicate code.
Renamed some test files for consistency.
Signed-off-by: Stine Akredalen <stine.akredalen@nordicsemi.no>
Removes the use of the debug.conf file when building the
tests for the nRF5340, as that will also enable logs and will
log every message between the two cores, making the logs very
verbose.
Copy the lines from debug.conf that we do want to keep
into the bsim specific conf file, and stop using the debug.conf
file.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Commit:
- adds dependency of the mbedtls psa usage on secure storage
- removes PSA ITS emulator and enables usage of
the secure storage in ble mesh bsim tests
- enables secure storage in all ble mesh and related samples
Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
By using `SETTINGS_STATIC_HANDLER_DEFINE_WITH_CPRIO` we can ensure that
BT subsystems always get loaded after BT, and BT Mesh after both of
them.
This solves the host having to register a GATT service in a delayed
manner, as we are sure to now register the GATT service after sc_commit
sets `SC_LOAD`.
Signed-off-by: Kyra Lengfeld <kyra.lengfeld@nordicsemi.no>
Extending existing provisioning test code to use PB-GATT and adding
test cases for provisioning over PB-GATT. Test names are changed to
represent both provisioning brearers. Enabled required kconfigs for
PB-GATT and GATT proxy features in overlay_gatt.conf. Test argument
prov-bearer is added to provisioning tests to select bearer.
Following tests are renamed and extended to use PB-GATT
- pb_adv_multi
- pb_adv_no_oob
- pb_adv_oob_auth_ib_pk
- pb_adv_oob_auth_ignore_oob_pk
- pb_adv_oob_auth_oob_pk
- pb_adv_reprovision
PB-GATT test cases will run only with PSA encryption since tinycrypt
is to be deprecated.
Signed-off-by: alperen sener <alperen.sener@nordicsemi.no>
The CCP API for the Call Control Profile works on top of the
TBS API, and will eventually replace parts of the TBS API.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
A broadcast tests with various BASEs that use a vendor
specific (VS) codec. This tests that we support
non-LC3 codecs on both broadcast sources and sinks
in various configurations.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Split the default broadcast source test so that the reconfigure and
metadata update is not done in the generic test. This makes
the test simpler and easier to modify.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
BSIM tests that enabled CONFIG_BT_CTLR_TEST=y now require
-RealEncryption to pass the Controller's in-system unit test
of ECB module.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Due to adding subgroup count and streams per subgroup
arguments to the broadcast_source test, fix the sink
test that was not ported due to being merged for change
in a different PR.
Relates to commit 01e8d0e3e0 ("tests: Bluetooth: BAP:
Add subgroup and stream args to broadcast_source").
Fixes commit 303d0b786f ("tests: Bluetooth: BAP: Add
test to test invalid bcode").
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add 4 new tests for BAP broadcast:
1) One subgroup with one stream per subgroup
2) One subgroup with two streams per subgroup
3) Two subgroups with one stream per subgroup
4) Two subgroup with two streams per subgroup
To support these, the number of broadcast streams and data paths
was updated to be up to 4.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add subgroup count and streams per subgroup arguments to the
broadcast_source test. This will allow us to run multiple
test setups using the same build and test case.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Fixes build failure, correct the variable is using for
k_sem_take in function test_sink_encrypted_incorrect_code
Fixes#83388
Signed-off-by: Cong Nguyen Huu <cong.nguyenhuu@nxp.com>
Check that the GATT settings added when bonding to a peer and
subscribing to a CCC are correctly deleted when calling `bt_unpair`.
Testing hooks have been added in the Bluetooth settings abstraction
layer to know which key are being added/deleted.
Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
Expand test_sink_encrypted_incorrect_code to retry the sync with
the correct broadcast code after failing the initial sync
with the incorrect broadcast code.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Calling `net_buf_reserve` removed any previous reservation, which
includes the reservation by hci_ipc to hold the H4 type byte. This
resulted in a out-of-bounds net_buf_push in hci_ipc.
This commit also enables asserts in hci_ipc in the audio bsim test,
which reveal the out-of-bounds write.
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
Since now Mbed TLS automatically selects ENTROPY_GENERATOR (or the
test generator, depending on the platform) we can remove this dependency
from all BT related tests and samples.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Test covering multiple single link central devices
connecting to single multilink peripheral device.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Test covering single multilink central device connecting to
multiple single link peripheral devices.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update central multilink sample to use continuous scanning
to speed up connection setup.
Update peripheral identity sample to be configurable for
bsim testing as multiple devices with configurable count
of supported connections.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Several tests were using K_FOREVER when allocating the
buffer for TX in the system workqueue, which is illegal behavior.
The solution chosen was to create a TX thread to handle TX,
similar to the solution used in the audio shell and some
sample applications.
This way we can continue to use K_FOREVER when allocting buffers
and it will always be done in a round-robin fashion while
TXing as much as possible, by always enqueuing all the buffers
with mock data.
Since this works for all streams (both broadcast and unicast),
it was obvious to use the same implementation for all tests,
and thus cleaning up the tests a bit and more them more similar.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>