Commit graph

2480 commits

Author SHA1 Message Date
Nirosharn Amarasinghe
dc21de3acd tests: bluetooth: controller: Unit test for SDU interval consideration
-- Unit test to check that the correct payload number is selected based
   on the SDU packet number and the time stamp when fragmenting SDUs
   into PDUs.
-- Ran clang-format on isoal_test_tx and isoal_test_rx

Signed-off-by: Nirosharn Amarasinghe <niag@demant.com>
2023-04-13 16:09:39 +02:00
Gerard Marull-Paretas
4863c5f05b sys/util: extend usage of DIV_ROUND_UP
Many areas of Zephyr divide and round up without using the DIV_ROUND_UP
macro. Make use of it, so that we make use of a tested system macro and
at the same time we make code more readable.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-04-12 16:42:29 +02:00
Magdalena Kasenberg
661f07ba0f bluetooth: tester: Add CONFIG_BTTESTER_LOG_LEVEL
to set a different log level than the default.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
2023-04-12 13:05:32 +02:00
Magdalena Kasenberg
58784b7899 bluetooth: tester: Move LE Audio overlays
The overlays are needed for both single and dual core boards.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
2023-04-12 13:05:32 +02:00
Magdalena Kasenberg
96facf2875 bluetooth: tester: Add overlay file for LE Audio controller
for testing on single core board like nrf52840.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
2023-04-12 13:05:32 +02:00
Magdalena Kasenberg
569d892e7e bluetooth: tester: Update CONFIG_LOG_DEFAULT_LEVEL
Since behavior of CONFIG_LOG_DEFAULT_LEVEL was changed, if set to debug
level, causes stack overflow on nrf52 board.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
2023-04-12 13:05:32 +02:00
Mariusz Skamra
2234b16893 tests: Bluetooth: ascs: Add Source ASE state transition tests
This adds source ASE state transition tests.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
4862200e57 tests: Bluetooth: ascs: Factor out test preambles
Factor out test preambles, to deduplicate the code and improve it's
readablility.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
26e99d9c8c tests: Bluetooth: ascs: Rework expect_bt_bap_stream_ops_stopped_called_once
Make the parameters optional allowing to skip the function parameter
verification.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
d3c8f32364 tests: Bluetooth: ascs: Fix minor typo
This fixes invalid value comparison argument.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
0ede0f57df tests: Bluetooth: ascs: Fix missing inline
This fixes missing inline function specifier.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
7b16658156 tests: Bluetooth: ascs: Reset mocks after test preamble
This adds test_mocks_reset function to be called after test case
preamble. The motivation is to reset the function call state that might
be affected by steps perfromed in the preamble stage, which is not the
code under test.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
6c6cec9880 tests: Bluetooth: ascs: Fix invalid NULL assignment
The iso_server shall be not set to NULL in mock_bt_iso_cleanup(), as
it's UUT responsibility to call bt_iso_server_unregister(). Cleaning
the iso_server in mock_bt_iso_cleanup() might hide bug in the code.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Mariusz Skamra
6fec930c09 tests: Bluetooth: ascs: Set pacs_cap_foreach_custom_fake as default mock
This moves pacs_cap_foreach_custom_fake to mocks to be default mock.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-12 13:05:20 +02:00
Kumar Gala
dca600bd19 samples/tests: bluetooth: Remove qemu_cortex_m3
Remove qemu_cortex_m3 from various bluetooth tests and samples since
they enable NVS which requires CONFIG_FLASH_PAGE_LAYOUT which is
not supported on qemu_cortex_m3 since there is no flash driver.

We get build failures with the arm-clang compiler because nvs.c
is referencing z_impl_flash_get_page_info_by_offs which does not
exist.

Switch to qemu_x86 as the integration_platforms if it was
qemu_cortex_m3 before.

Removed the bluetooth.mesh.mesh_shell.reduced_legacy as this was
added specifically for building on qemu_cortex_m3.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2023-04-12 09:01:34 +02:00
Gerard Marull-Paretas
0ebe14beb4 sys: util: migrate all files to DIV_ROUND_UP
ceiling_fraction is deprecated, use DIV_ROUND_UP.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-04-11 12:00:37 +02:00
Magdalena Kasenberg
196261d4ab bluetooth: tester: Add ASCS and BAP tests handling
Support for tests that use ASCS operations Codec Config, Config QOS,
Enable, Disable, Update Metadata, Release.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
2023-04-05 14:51:30 +02:00
Mariusz Skamra
92d6b78fe6 Bluetooth: audio: Introduce helper BT_AUDIO_RX(TX) flags
This adds new hidden compilation flags that indicate whether the
implementation is configured to be able to receive/transmit audio data.
The flags are profile agnostic to loosen dependencies between
modules/services.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-04-04 13:35:56 +02:00
Emil Gydesen
90dd914e11 Bluetooth: Shell: Guard HRS adv calls with broadcaster
There is no requirement that HRS shall be on a peripheral device
as far as I can tell, and as such the device with HRS may not
be a GAP Broadcaster. Guards the advertising with
CONFIG_BT_BROADCASTER.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-04-03 14:48:59 +00:00
Szymon Janc
aa861727e8 bluetooth: tester: Use fixed value for BT_BUF_ACL_RX_SIZE
Default BT_BUF_ACL_RX_SIZE value varies based on selected host options.
Many buffers size (L2CAP COC MPS in particular) depends on that value
and those may affect qualification test cases steps.

To make core tests more predictable just use fixed values big enough to
comply with all configurations requirements.

This was affecting L2CAP/COS/ECFC/BV-04-C.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-31 14:00:48 +02:00
Szymon Czapracki
33bf1fa0c6 Bluetooth: audio: Expand AICS API
This commit adds new API functions for AICS
Setting automatic/manual only gain modes
Setting mute disabled
Use new functions in btp.vcp

Signed-off-by: Szymon Czapracki <szymon.czapracki@codecoup.pl>
2023-03-31 09:20:15 +02:00
Szymon Janc
06c6a9cb1c bluetooth: tester: Enable extended advertising
Some peripheral tests are failing if CONFIG_BT_EXT_ADV=n.
That was previously implicitly enabled by MESH but it has
dedicated overlay.

Affected tests:
GAP/BROB/BCST/BV-03-C
GAP/CONN/UCON/BV-06-C
GAP/PRIV/CONN/BV-10-C

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-30 13:48:30 +02:00
Mariusz Skamra
64ccf9eb2a tests: Bluetooth: ascs: Add Sink ASE state machine test cases
This adds another set of test cases to cover the ASE state
transitions.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-30 13:48:22 +02:00
Mariusz Skamra
067d4bf41d tests: Bluetooth: ascs: Stop using hardcoded ASE_ID in tests
This adds ASE_ID getter function to be used in the tests. The function
performs read operation on ASE charateristic. The characteristic value
is ensured to be ASE Idle state characterisitic value, which carries
information about ASE_ID value.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-30 13:48:22 +02:00
Mariusz Skamra
8ce062bd37 tests: Bluetooth: ascs: Refactor ase getter function
This refactors the function used to get the ASE for the tests.
Reworked function allows to get several ASE's for the test with a single
function call.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-30 13:48:22 +02:00
Mariusz Skamra
87214c3f5a tests: Bluetooth: ascs: Factor out ASE state transition test cases
This cleans up the code by moving the ASE State Machine transition
test cases to separate source file.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-30 13:48:22 +02:00
Szymon Janc
b4db4d3ad1 bluetooth: tester: Validate key size when reading local database
Key size validation was missing on getting local database which
resulted in selecting invalid characteristic by PTS for key size
validation tests.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-29 09:02:59 +02:00
Mariusz Skamra
507cd32072 tests: Bluetooth: ascs: Add test for Sink entering streaming state
This adds unit test for Sink ASE entering streaming state.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-28 15:07:09 +02:00
Mariusz Skamra
33767540d9 tests: Bluetooth: audio: Extend kernel mocks
This adds basic functionality that mocks the k_work API. The ASCS uses
delayed work to defer the CIS disconnection.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-28 15:07:09 +02:00
Mariusz Skamra
73e4a736fb tests: Bluetooth: audio: Extend ISO mock implementation
This adds ISO mock with very basic functionality that is needed to mock
the `bt_iso_` functions used by ASCS.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-28 15:07:09 +02:00
Mariusz Skamra
58de595c70 Bluetooth: audio: ascs: Register ISO server on ASCS init
This moves the ISO server registration to bt_ascs_init.
When the ASCS gets cleaned up (the callbacks are unregistered), the ISO
server gets unregistered.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-28 15:07:09 +02:00
Mariusz Skamra
f5b31c21a9 Bluetooth: audio: ascs: Fix Response_Code for mandatory opcodes
This fixes invalid Unsupported Opcode Response_Code that
happened to be sent in ASE Control Point notification
as the response to operation initiated with Mandatory opcode
to support.
When the Unicast Server callbacks are not registered, every
operation that is initiated by client will fail with
Unspecified Error instead.

Fixes: #56139
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-28 15:07:09 +02:00
Mariusz Skamra
31aa555890 Bluetooth: audio: ascs: Cleanup ASCS on callback unregister
This adds cleanup of ASCS that is called when upper layer unregisters
it's callbacks. Without callbacks registered, the service is unusable.
The ASE's that were in non-idle state stay in this state, because the
implementation returns an error on every operation that is performed by
the client. The cleanup added moves all the ASE's to idle state.

Fixes: #56111
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-28 15:07:09 +02:00
Krzysztof Kopyściński
03c966d9ef tests: Bluetooth: Mesh: add unit tests for blob_io_flash module
This tests functions accessible from blob_io_flash via `bt_mesh_blob_io`
object. Whole partition of slot1 is filled with test data using
flash_map API and then read using blob_io_flash, by reading it as blocks
and chunks. `chunk_wr` is tested my writing sample data of size of slot1
partition and checked if each chunk is written correctly, and if whole
partition is filled with correct data at the end. Both of these test
use `bt_mesh_blob_io_flash_init` and `io_open` to prepare stream and
call `block_start` at every new block to check if flash is prepared
correctly.

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
2023-03-28 15:06:44 +02:00
Krzysztof Kopyściński
4bcd03d2cb Tests: Bluetooth: Make space for Mesh tests
This commit moves app from /tests/bluetooth/mesh to
tests/bluetooth/mesh/basic. This allows to reuse /tests/bluetooth/mesh
directory as location for more tests.

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
2023-03-28 15:06:44 +02:00
Szymon Janc
70a0364c2a bluetooth: tester: Add support for BTP GATT Change Database command
This command allows for more predictable GATT database changed tests
and allows to reduce custom test configurations from autopts.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-28 15:06:24 +02:00
Szymon Janc
577d4b004f bluetooth: tester: Add MESH and LE Audio overlays
Initially I was hoping we can avoid dedicated overlays and have all
config options enabled but it turned out that built-in services
may affect other tests (especially core related like GAP and GATT).

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-27 09:50:09 +02:00
Szymon Janc
fc8560fc85 Bluetooth: tester: Fix not updating value length on write
Previously tests were passing only because initial value in
database and PTS value used for testing had same length.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2023-03-24 17:37:37 +00:00
Mariusz Skamra
7c6f2d78d2 tests: Bluetooth: ascs: Fix bap_unicast_server_cb mocks
This fixes merge conflict issue by adding missing function
parameters that were introduced in
57784df5f0.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-22 21:20:43 +01:00
Mariusz Skamra
b176c51785 tests: Bluetooth: audio: Add initial ASCS unit tests
This adds initial ASCS unit tests.
Failing test cases have been conditionally skipped with Zephyr issue
number.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-22 11:39:18 +01:00
Mariusz Skamra
269290d614 tests: bluetooth: audio: Add mocks for audio
This adds common mocks to be used while unit testing Bluetooth Audio
code.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-03-22 11:39:18 +01:00
Ahmed Moheb
48000cd5a4 tests: bluetooth: host: Add UT for bt_dh_key_gen()
Unit test project for bt_dh_key_gen().
This is part of subsys/bluetooth/host/ecc.c unit testing.

Signed-off-by: Ahmed Moheb <ahmed.moheb@nordicsemi.no>
2023-03-22 09:33:42 +01:00
Ahmed Moheb
aebd5d84a0 tests: bluetooth: host: Add UT for bt_pub_key_get()
Unit test project for bt_pub_key_get().
This is part of subsys/bluetooth/host/ecc.c unit testing.

Signed-off-by: Ahmed Moheb <ahmed.moheb@nordicsemi.no>
2023-03-22 09:33:42 +01:00
Ahmed Moheb
fac21b3616 tests: bluetooth: host: Add UT for bt_pub_key_gen()
Unit test project for bt_pub_key_gen().
This is part of subsys/bluetooth/host/ecc.c unit testing.

Signed-off-by: Ahmed Moheb <ahmed.moheb@nordicsemi.no>
2023-03-22 09:33:42 +01:00
Ahmed Moheb
a774314e69 tests: bluetooth: host: Add UT for bt_pub_key_is_debug()
Unit test project for bt_pub_key_is_debug().
This is part of subsys/bluetooth/host/ecc.c unit testing.

Signed-off-by: Ahmed Moheb <ahmed.moheb@nordicsemi.no>
2023-03-22 09:33:42 +01:00
Ahmed Moheb
3c76bd06e4 tests: bluetooth: host: Add mocks for ecc.c
Add required mocks to be able to compile/test /bluetooth/host/ecc.c

Signed-off-by: Ahmed Moheb <ahmed.moheb@nordicsemi.no>
2023-03-22 09:33:42 +01:00
Théo Battrel
a3ac4421d2 Bluetooth: Tests: Fix bt_buf_get_evt test
Fix #55957. The `bt_buf_get_evt` test was using `net_buf` structures
without allocating it properly.

Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
2023-03-21 22:49:34 +09:00
Sebastian Panceac
2e7c02bef6 Bluetooth: pairing: OOB: Separate LE SC OOB from legacy OOB logic
Some systems can support only legacy OOB pairing while others only
LE SC OOB pairing.

The existent API function "bt_set_oob_data_flag" was removed.

Two new API functions were added:

 * "bt_le_oob_set_legacy_flag" to signal that legacy OOB pairing is used
 * "bt_le_oob_set_sc_flag" to signal that LE SC OOB pairing is used

The code will now advertise the presence of OOB flag depending
on the type of pairing method(SC vs legacy)

Signed-off-by: Sebastian Panceac <sebastian.panceac@ext.grandcentrix.net>
2023-03-20 16:13:18 +01:00
Aleksander Wasaznik
6b6178be30 Bluetooth: Shell: Make gatt notify more general
Make `gatt notify` take the source handle and the data to send.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2023-03-20 09:51:24 +01:00
Alberto Escolar Piedras
f27c0b4905 tests bsim: Change folder structure
Bsim won't be limited anymore to BT tests.
In preparation for adding more tests in network areas
swap the tests/bluetooth/bsim with tests/bsim/bluetooth

There is no other changes in this commit beyond that.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-03-17 19:59:50 +01:00