tests: Bluetooth: Run Audio BSIM test on nrf5340bsim
Add support for running the audio BSIM tests on the nrf5340bsim board. This expands the tests we run in CI. To support all tests with the hci_ipc sample for the netcore, it is updated to support a bit more while still fitting on the netcore on the nRF5340 series. The behavior of advertisement seems to differ a little bit, which required the bap_unicast_server_test.c to update how it restarts advertisements. Two broadcast tests that are passing on the nRF52 BSIM is also failing due an assert. This should be investigated at a later time. Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
parent
5365421fa1
commit
fa0bbad205
10 changed files with 126 additions and 40 deletions
|
@ -14,7 +14,7 @@ CONFIG_LTO=y
|
|||
|
||||
CONFIG_BT=y
|
||||
CONFIG_BT_HCI_RAW=y
|
||||
CONFIG_BT_MAX_CONN=2
|
||||
CONFIG_BT_MAX_CONN=3
|
||||
|
||||
# Workaround: Unable to allocate command buffer when using K_NO_WAIT since
|
||||
# Host number of completed commands does not follow normal flow control.
|
||||
|
@ -40,7 +40,7 @@ CONFIG_BT_ISO_CENTRAL=y
|
|||
CONFIG_BT_ISO_PERIPHERAL=y
|
||||
|
||||
# ISO Streams
|
||||
CONFIG_BT_ISO_MAX_CHAN=2
|
||||
CONFIG_BT_ISO_MAX_CHAN=4
|
||||
|
||||
# Controller
|
||||
CONFIG_BT_LL_SW_SPLIT=y
|
||||
|
@ -87,6 +87,7 @@ CONFIG_BT_CTLR_ADV_PERIODIC=y
|
|||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=2
|
||||
|
||||
# ISO Receive Controller
|
||||
CONFIG_BT_CTLR_ADV_EXT=y
|
||||
|
@ -98,15 +99,21 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
|
|||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_STREAMS=2
|
||||
CONFIG_BT_CTLR_CONN_ISO_STREAMS_PER_GROUP=2
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_ISO_TX_MTU=310
|
||||
CONFIG_BT_ISO_TX_BUF_COUNT=4
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
CONFIG_BT_ISO_RX_MTU=310
|
||||
CONFIG_BT_CTLR_ISO_RX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISOAL_SINKS=2
|
||||
|
||||
|
|
22
tests/bsim/bluetooth/audio/Kconfig.sysbuild
Normal file
22
tests/bsim/bluetooth/audio/Kconfig.sysbuild
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Copyright (c) 2023-2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
source "share/sysbuild/Kconfig"
|
||||
|
||||
config NET_CORE_BOARD
|
||||
string
|
||||
default "nrf5340dk/nrf5340/cpunet" if "$(BOARD)" = "nrf5340dk"
|
||||
default "nrf5340_audio_dk/nrf5340/cpunet" if "$(BOARD)" = "nrf5340_audio_dk"
|
||||
default "nrf5340bsim/nrf5340/cpunet" if $(BOARD_TARGET_STRING) = "NRF5340BSIM_NRF5340_CPUAPP"
|
||||
|
||||
config NET_CORE_IMAGE_HCI_IPC
|
||||
bool "HCI IPC image on network core"
|
||||
default y
|
||||
depends on NET_CORE_BOARD != ""
|
||||
|
||||
|
||||
config NATIVE_SIMULATOR_PRIMARY_MCU_INDEX
|
||||
int
|
||||
# Let's pass the test arguments to the application MCU test
|
||||
# otherwise by default they would have gone to the net core.
|
||||
default 0 if $(BOARD_TARGET_STRING) = "NRF5340BSIM_NRF5340_CPUAPP"
|
|
@ -10,6 +10,13 @@ set -ue
|
|||
|
||||
source ${ZEPHYR_BASE}/tests/bsim/compile.source
|
||||
|
||||
app=tests/bsim/bluetooth/audio compile
|
||||
if [ "${BOARD_TS}" == "nrf5340bsim_nrf5340_cpuapp" ]; then
|
||||
app=tests/bsim/bluetooth/audio exe_name=bs_${BOARD_TS}_${app}_prj_conf \
|
||||
sysbuild=1 compile
|
||||
else
|
||||
app=tests/bsim/bluetooth/audio conf_overlay=overlay-bt_ll_sw_split.conf \
|
||||
exe_name=bs_${BOARD_TS}_${app}_prj_conf \
|
||||
sysbuild=1 compile
|
||||
fi
|
||||
|
||||
wait_for_background_jobs
|
||||
|
|
45
tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf
Normal file
45
tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Controller Settings
|
||||
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=255
|
||||
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
|
||||
|
||||
# Controller advanced options
|
||||
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||
CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
|
||||
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
|
||||
CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
|
||||
CONFIG_BT_CTLR_SCAN_UNRESERVED=y
|
||||
CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
|
||||
CONFIG_BT_TICKER_EXT=y
|
||||
CONFIG_BT_TICKER_EXT_SLOT_WINDOW_YIELD=y
|
||||
|
||||
# ISO Broadcaster Controller
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=2
|
||||
|
||||
# ISO Receive Controller
|
||||
CONFIG_BT_CTLR_SYNC_ISO=y
|
||||
CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
|
||||
|
||||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_STREAMS=2
|
||||
CONFIG_BT_CTLR_CONN_ISO_STREAMS_PER_GROUP=2
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_ISO_TX_MTU=310
|
||||
CONFIG_BT_ISO_TX_BUF_COUNT=4
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
CONFIG_BT_ISO_RX_MTU=310
|
||||
CONFIG_BT_CTLR_ISO_RX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISOAL_SINKS=2
|
|
@ -17,6 +17,9 @@ CONFIG_BT_SMP=y
|
|||
CONFIG_BT_L2CAP_TX_MTU=128
|
||||
CONFIG_BT_BUF_ACL_RX_SIZE=255
|
||||
CONFIG_BT_BUF_ACL_TX_SIZE=251
|
||||
CONFIG_BT_BUF_EVT_RX_SIZE=255
|
||||
CONFIG_BT_BUF_CMD_TX_SIZE=255
|
||||
CONFIG_BT_TINYCRYPT_ECC=y
|
||||
|
||||
CONFIG_BT_AUDIO=y
|
||||
CONFIG_BT_BAP_UNICAST_SERVER=y
|
||||
|
@ -202,36 +205,3 @@ CONFIG_BT_GMAP_LOG_LEVEL_DBG=y
|
|||
|
||||
# LOGGING
|
||||
CONFIG_LOG_MODE_IMMEDIATE=y
|
||||
|
||||
# Controller Settings
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_SYNC_ISO=y
|
||||
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=255
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
|
||||
|
||||
# Controller ISO Broadcast Settings
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=2
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
|
||||
|
||||
# Controller ISO Unicast Settings
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
CONFIG_BT_CTLR_ISOAL_SINKS=2
|
||||
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
|
||||
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=4
|
||||
|
||||
# Controller advanced options
|
||||
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||
CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
|
||||
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
|
||||
CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
|
||||
CONFIG_BT_CTLR_SCAN_UNRESERVED=y
|
||||
CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
|
||||
CONFIG_BT_TICKER_EXT=y
|
||||
CONFIG_BT_TICKER_EXT_SLOT_WINDOW_YIELD=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_STREAMS=2
|
||||
CONFIG_BT_CTLR_CONN_ISO_STREAMS_PER_GROUP=2
|
||||
|
|
|
@ -555,8 +555,10 @@ static void restart_adv_cb(struct k_work *work)
|
|||
|
||||
err = bt_le_ext_adv_start(ext_adv, BT_LE_EXT_ADV_START_DEFAULT);
|
||||
if (err != 0) {
|
||||
FAIL("Failed to start advertising set (err %d)\n", err);
|
||||
return;
|
||||
if (err != -EALREADY) {
|
||||
FAIL("Failed to start advertising set (err %d)\n", err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
27
tests/bsim/bluetooth/audio/sysbuild.cmake
Normal file
27
tests/bsim/bluetooth/audio/sysbuild.cmake
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Copyright (c) 2023-2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if(SB_CONFIG_NET_CORE_IMAGE_HCI_IPC)
|
||||
# For builds in the nrf5340, we build the netcore image with the controller
|
||||
|
||||
set(NET_APP hci_ipc)
|
||||
set(NET_APP_SRC_DIR ${ZEPHYR_BASE}/samples/bluetooth/${NET_APP})
|
||||
|
||||
ExternalZephyrProject_Add(
|
||||
APPLICATION ${NET_APP}
|
||||
SOURCE_DIR ${NET_APP_SRC_DIR}
|
||||
BOARD ${SB_CONFIG_NET_CORE_BOARD}
|
||||
)
|
||||
|
||||
set(${NET_APP}_CONF_FILE
|
||||
${NET_APP_SRC_DIR}/nrf5340_cpunet_iso-bt_ll_sw_split.conf
|
||||
CACHE INTERNAL ""
|
||||
)
|
||||
|
||||
native_simulator_set_child_images(${DEFAULT_IMAGE} ${NET_APP})
|
||||
endif()
|
||||
|
||||
native_simulator_set_final_executable(${DEFAULT_IMAGE})
|
||||
|
||||
|
||||
native_simulator_set_primary_mcu_index(${DEFAULT_IMAGE} ${NET_APP})
|
|
@ -41,8 +41,12 @@ Execute_AC_14 24_1_1
|
|||
Execute_AC_14 24_2_1
|
||||
Execute_AC_14 32_1_1
|
||||
Execute_AC_14 32_2_1
|
||||
Execute_AC_14 441_1_1
|
||||
Execute_AC_14 441_2_1
|
||||
# ASSERTION FAIL [err == ((isoal_status_t) 0x00) || err == ((isoal_status_t) 0x04)]
|
||||
# @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/hci/hci_driver.c:513
|
||||
# Execute_AC_14 441_1_1
|
||||
# ASSERTION FAIL [err == ((isoal_status_t) 0x00) || err == ((isoal_status_t) 0x04)]
|
||||
# @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/hci/hci_driver.c:513
|
||||
# Execute_AC_14 441_2_1
|
||||
Execute_AC_14 48_1_1
|
||||
Execute_AC_14 48_2_1
|
||||
Execute_AC_14 48_3_1
|
||||
|
|
|
@ -17,6 +17,7 @@ app=tests/bsim/bluetooth/ll/bis sysbuild=1 compile
|
|||
app=tests/bsim/bluetooth/ll/cis conf_overlay=overlay-acl_group.conf sysbuild=1 compile
|
||||
|
||||
run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/samples/compile.sh
|
||||
run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/audio/compile.sh
|
||||
run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/audio_samples/compile.sh
|
||||
|
||||
wait_for_background_jobs
|
||||
|
|
|
@ -4,3 +4,4 @@ tests/bsim/bluetooth/ll/conn/tests_scripts/basic_conn_encrypted_split_privacy.sh
|
|||
tests/bsim/bluetooth/ll/bis/tests_scripts/broadcast_iso.sh
|
||||
tests/bsim/bluetooth/samples/central_hr_peripheral_hr/
|
||||
tests/bsim/bluetooth/audio_samples/
|
||||
tests/bsim/bluetooth/audio/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue