Skip to content

Commit 9310b34

Browse files
Thalleyfabiobaltieri
authored andcommitted
tests: bsim: Bluetooth: BAP: Refactor bap_test_stream
Refactor the bap_test_stream struct and rename to audio_test_stream so that it can be used by CAP as well. Signed-off-by: Emil Gydesen <[email protected]>
1 parent 1270bce commit 9310b34

File tree

6 files changed

+132
-80
lines changed

6 files changed

+132
-80
lines changed

tests/bsim/bluetooth/audio/src/bap_broadcast_sink_test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ static struct bt_le_scan_recv_info broadcaster_info;
3131
static bt_addr_le_t broadcaster_addr;
3232
static struct bt_le_per_adv_sync *pa_sync;
3333
static uint32_t broadcaster_broadcast_id;
34-
static struct bap_test_stream broadcast_sink_streams[CONFIG_BT_BAP_BROADCAST_SNK_STREAM_COUNT];
34+
static struct audio_test_stream broadcast_sink_streams[CONFIG_BT_BAP_BROADCAST_SNK_STREAM_COUNT];
3535
static struct bt_bap_stream *streams[ARRAY_SIZE(broadcast_sink_streams)];
3636
static uint32_t requested_bis_sync;
3737
static struct bt_le_ext_adv *ext_adv;
@@ -274,7 +274,7 @@ static void recv_cb(struct bt_bap_stream *stream,
274274
const struct bt_iso_recv_info *info,
275275
struct net_buf *buf)
276276
{
277-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
277+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
278278

279279
if ((test_stream->rx_cnt % 100U) == 0U) {
280280
printk("Incoming audio on stream %p len %u and ts %u\n", stream, buf->len,
@@ -363,7 +363,7 @@ static int init(void)
363363
UNSET_FLAG(pa_synced);
364364

365365
for (size_t i = 0U; i < ARRAY_SIZE(streams); i++) {
366-
streams[i] = &broadcast_sink_streams[i].stream;
366+
streams[i] = bap_stream_from_audio_test_stream(&broadcast_sink_streams[i]);
367367
bt_bap_stream_cb_register(streams[i], &stream_ops);
368368
}
369369

tests/bsim/bluetooth/audio/src/bap_broadcast_source_test.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ NET_BUF_POOL_FIXED_DEFINE(tx_pool,
2828
CONFIG_BT_CONN_TX_USER_DATA_SIZE, NULL);
2929

3030
extern enum bst_result_t bst_result;
31-
static struct bap_test_stream broadcast_source_streams[CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT];
31+
static struct audio_test_stream broadcast_source_streams[CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT];
3232
static struct bt_bap_lc3_preset preset_16_2_1 = BT_BAP_LC3_BROADCAST_PRESET_16_2_1(
3333
BT_AUDIO_LOCATION_FRONT_LEFT, BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED);
3434
static struct bt_bap_lc3_preset preset_16_1_1 = BT_BAP_LC3_BROADCAST_PRESET_16_1_1(
@@ -51,7 +51,7 @@ static void stopped_cb(struct bt_bap_stream *stream, uint8_t reason)
5151

5252
static void stream_sent_cb(struct bt_bap_stream *stream)
5353
{
54-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
54+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
5555
struct net_buf *buf;
5656
int ret;
5757

@@ -111,7 +111,8 @@ static int setup_broadcast_source(struct bt_bap_broadcast_source **source)
111111
sizeof(broadcast_source_streams));
112112

113113
for (size_t i = 0; i < ARRAY_SIZE(stream_params); i++) {
114-
stream_params[i].stream = &broadcast_source_streams[i].stream;
114+
stream_params[i].stream =
115+
bap_stream_from_audio_test_stream(&broadcast_source_streams[i]);
115116
bt_bap_stream_cb_register(stream_params[i].stream,
116117
&stream_ops);
117118
#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0
@@ -141,7 +142,7 @@ static int setup_broadcast_source(struct bt_bap_broadcast_source **source)
141142
}
142143

143144
for (size_t i = 0U; i < ARRAY_SIZE(broadcast_source_streams); i++) {
144-
struct bap_test_stream *test_stream = &broadcast_source_streams[i];
145+
struct audio_test_stream *test_stream = &broadcast_source_streams[i];
145146

146147
test_stream->tx_sdu_size = preset_16_1_1.qos.sdu;
147148
}
@@ -258,7 +259,8 @@ static void test_broadcast_source_reconfig(struct bt_bap_broadcast_source *sourc
258259
int err;
259260

260261
for (size_t i = 0; i < ARRAY_SIZE(stream_params); i++) {
261-
stream_params[i].stream = &broadcast_source_streams[i].stream;
262+
stream_params[i].stream =
263+
bap_stream_from_audio_test_stream(&broadcast_source_streams[i]);
262264
stream_params[i].data_len = ARRAY_SIZE(bis_codec_data);
263265
stream_params[i].data = bis_codec_data;
264266
}
@@ -283,7 +285,7 @@ static void test_broadcast_source_reconfig(struct bt_bap_broadcast_source *sourc
283285
}
284286

285287
for (size_t i = 0U; i < ARRAY_SIZE(broadcast_source_streams); i++) {
286-
struct bap_test_stream *test_stream = &broadcast_source_streams[i];
288+
struct audio_test_stream *test_stream = &broadcast_source_streams[i];
287289

288290
test_stream->tx_sdu_size = preset_16_1_1.qos.sdu;
289291
}
@@ -433,12 +435,10 @@ static void test_main(void)
433435
printk("Sending data\n");
434436
for (size_t i = 0U; i < ARRAY_SIZE(broadcast_source_streams); i++) {
435437
for (unsigned int j = 0U; j < BROADCAST_ENQUEUE_COUNT; j++) {
436-
struct bap_test_stream *test_stream =
437-
CONTAINER_OF(&broadcast_source_streams[i].stream,
438-
struct bap_test_stream, stream);
438+
struct audio_test_stream *test_stream = &broadcast_source_streams[i];
439439

440440
test_stream->tx_active = true;
441-
stream_sent_cb(&broadcast_source_streams[i].stream);
441+
stream_sent_cb(&test_stream->stream.bap_stream);
442442
}
443443
}
444444

tests/bsim/bluetooth/audio/src/bap_unicast_client_test.c

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ NET_BUF_POOL_FIXED_DEFINE(tx_pool, TOTAL_BUF_NEEDED, BT_ISO_SDU_BUF_SIZE(CONFIG_
2424
extern enum bst_result_t bst_result;
2525

2626
static volatile size_t sent_count;
27-
static struct bap_test_stream g_streams[CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT];
27+
static struct audio_test_stream test_streams[CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT];
2828
static struct bt_bap_ep *g_sinks[CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT];
2929
static struct bt_bap_ep *g_sources[CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT];
3030

31-
static struct bt_bap_unicast_group_stream_pair_param pair_params[ARRAY_SIZE(g_streams)];
32-
static struct bt_bap_unicast_group_stream_param stream_params[ARRAY_SIZE(g_streams)];
31+
static struct bt_bap_unicast_group_stream_pair_param pair_params[ARRAY_SIZE(test_streams)];
32+
static struct bt_bap_unicast_group_stream_param stream_params[ARRAY_SIZE(test_streams)];
3333

3434
/* Mandatory support preset by both client and server */
3535
static struct bt_bap_lc3_preset preset_16_2_1 = BT_BAP_LC3_UNICAST_PRESET_16_2_1(
@@ -63,7 +63,7 @@ static void stream_configured(struct bt_bap_stream *stream,
6363

6464
static void stream_qos_set(struct bt_bap_stream *stream)
6565
{
66-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
66+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
6767

6868
printk("QoS set stream %p\n", stream);
6969

@@ -95,7 +95,7 @@ static void stream_metadata_updated(struct bt_bap_stream *stream)
9595

9696
static void stream_disabled(struct bt_bap_stream *stream)
9797
{
98-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
98+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
9999

100100
test_stream->tx_active = false;
101101

@@ -119,7 +119,7 @@ static void stream_released(struct bt_bap_stream *stream)
119119
static void stream_recv_cb(struct bt_bap_stream *stream, const struct bt_iso_recv_info *info,
120120
struct net_buf *buf)
121121
{
122-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
122+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
123123

124124
printk("Incoming audio on stream %p len %u and ts %u\n", stream, buf->len, info->ts);
125125

@@ -152,7 +152,7 @@ static void stream_recv_cb(struct bt_bap_stream *stream, const struct bt_iso_rec
152152

153153
static void stream_sent_cb(struct bt_bap_stream *stream)
154154
{
155-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
155+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
156156
struct net_buf *buf;
157157
int ret;
158158

@@ -489,8 +489,11 @@ static void init(void)
489489
return;
490490
}
491491

492-
for (size_t i = 0; i < ARRAY_SIZE(g_streams); i++) {
493-
g_streams[i].stream.ops = &stream_ops;
492+
for (size_t i = 0; i < ARRAY_SIZE(test_streams); i++) {
493+
struct bt_bap_stream *bap_stream =
494+
bap_stream_from_audio_test_stream(&test_streams[i]);
495+
496+
bap_stream->ops = &stream_ops;
494497
}
495498

496499
bt_le_scan_cb_register(&bap_scan_cb);
@@ -674,7 +677,7 @@ static int enable_stream(struct bt_bap_stream *stream)
674677
static void enable_streams(size_t stream_cnt)
675678
{
676679
for (size_t i = 0U; i < stream_cnt; i++) {
677-
struct bt_bap_stream *stream = &g_streams[i].stream;
680+
struct bt_bap_stream *stream = bap_stream_from_audio_test_stream(&test_streams[i]);
678681
int err;
679682

680683
err = enable_stream(stream);
@@ -713,7 +716,7 @@ static int metadata_update_stream(struct bt_bap_stream *stream)
713716
static void metadata_update_streams(size_t stream_cnt)
714717
{
715718
for (size_t i = 0U; i < stream_cnt; i++) {
716-
struct bt_bap_stream *stream = &g_streams[i].stream;
719+
struct bt_bap_stream *stream = bap_stream_from_audio_test_stream(&test_streams[i]);
717720
int err;
718721

719722
err = metadata_update_stream(stream);
@@ -788,8 +791,8 @@ static void transceive_streams(void)
788791
sink_stream = pair_params[0].tx_param == NULL ? NULL : pair_params[0].tx_param->stream;
789792

790793
if (sink_stream != NULL) {
791-
struct bap_test_stream *test_stream =
792-
CONTAINER_OF(sink_stream, struct bap_test_stream, stream);
794+
struct audio_test_stream *test_stream =
795+
audio_test_stream_from_bap_stream(sink_stream);
793796

794797
test_stream->tx_active = true;
795798
for (unsigned int i = 0U; i < ENQUEUE_COUNT; i++) {
@@ -803,8 +806,8 @@ static void transceive_streams(void)
803806
}
804807

805808
if (source_stream != NULL) {
806-
const struct bap_test_stream *test_stream =
807-
CONTAINER_OF(source_stream, struct bap_test_stream, stream);
809+
const struct audio_test_stream *test_stream =
810+
audio_test_stream_from_bap_stream(source_stream);
808811

809812
/* Keep receiving until we reach the minimum expected */
810813
while (test_stream->rx_cnt < MIN_SEND_COUNT) {
@@ -822,7 +825,8 @@ static void disable_streams(size_t stream_cnt)
822825
UNSET_FLAG(flag_stream_disabled);
823826

824827
do {
825-
err = bt_bap_stream_disable(&g_streams[i].stream);
828+
err = bt_bap_stream_disable(
829+
bap_stream_from_audio_test_stream(&test_streams[i]));
826830
if (err == -EBUSY) {
827831
k_sleep(BAP_STREAM_RETRY_WAIT);
828832
} else if (err != 0) {
@@ -845,7 +849,8 @@ static void release_streams(size_t stream_cnt)
845849
UNSET_FLAG(flag_stream_released);
846850

847851
do {
848-
err = bt_bap_stream_release(&g_streams[i].stream);
852+
err = bt_bap_stream_release(
853+
bap_stream_from_audio_test_stream(&test_streams[i]));
849854
if (err == -EBUSY) {
850855
k_sleep(BAP_STREAM_RETRY_WAIT);
851856
} else if (err != 0) {
@@ -869,12 +874,13 @@ static size_t create_unicast_group(struct bt_bap_unicast_group **unicast_group)
869874
memset(stream_params, 0, sizeof(stream_params));
870875
memset(pair_params, 0, sizeof(pair_params));
871876

872-
for (size_t i = 0U; i < MIN(ARRAY_SIZE(g_sinks), ARRAY_SIZE(g_streams)); i++) {
877+
for (size_t i = 0U; i < MIN(ARRAY_SIZE(g_sinks), ARRAY_SIZE(test_streams)); i++) {
873878
if (g_sinks[i] == NULL) {
874879
break;
875880
}
876881

877-
stream_params[stream_cnt].stream = &g_streams[stream_cnt].stream;
882+
stream_params[stream_cnt].stream =
883+
bap_stream_from_audio_test_stream(&test_streams[stream_cnt]);
878884
stream_params[stream_cnt].qos = &preset_16_2_1.qos;
879885
pair_params[i].tx_param = &stream_params[stream_cnt];
880886

@@ -883,12 +889,13 @@ static size_t create_unicast_group(struct bt_bap_unicast_group **unicast_group)
883889
break;
884890
}
885891

886-
for (size_t i = 0U; i < MIN(ARRAY_SIZE(g_sources), ARRAY_SIZE(g_streams)); i++) {
892+
for (size_t i = 0U; i < MIN(ARRAY_SIZE(g_sources), ARRAY_SIZE(test_streams)); i++) {
887893
if (g_sources[i] == NULL) {
888894
break;
889895
}
890896

891-
stream_params[stream_cnt].stream = &g_streams[stream_cnt].stream;
897+
stream_params[stream_cnt].stream =
898+
bap_stream_from_audio_test_stream(&test_streams[stream_cnt]);
892899
stream_params[stream_cnt].qos = &preset_16_2_1.qos;
893900
pair_params[i].rx_param = &stream_params[stream_cnt];
894901

tests/bsim/bluetooth/audio/src/bap_unicast_server_test.c

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ static const struct bt_audio_codec_cap lc3_codec_cap = {
4848
},
4949
};
5050

51-
static struct bap_test_stream streams[CONFIG_BT_ASCS_ASE_SNK_COUNT + CONFIG_BT_ASCS_ASE_SRC_COUNT];
51+
static struct audio_test_stream
52+
test_streams[CONFIG_BT_ASCS_ASE_SNK_COUNT + CONFIG_BT_ASCS_ASE_SRC_COUNT];
5253

5354
static const struct bt_audio_codec_qos_pref qos_pref =
5455
BT_AUDIO_CODEC_QOS_PREF(true, BT_GAP_LE_PHY_2M, 0x02, 10, 40000, 40000, 40000, 40000);
@@ -80,8 +81,8 @@ static void print_ase_info(struct bt_bap_ep *ep, void *user_data)
8081

8182
static struct bt_bap_stream *stream_alloc(void)
8283
{
83-
for (size_t i = 0; i < ARRAY_SIZE(streams); i++) {
84-
struct bt_bap_stream *stream = &streams[i].stream;
84+
for (size_t i = 0; i < ARRAY_SIZE(test_streams); i++) {
85+
struct bt_bap_stream *stream = bap_stream_from_audio_test_stream(&test_streams[i]);
8586

8687
if (!stream->conn) {
8788
return stream;
@@ -101,7 +102,7 @@ static int lc3_config(struct bt_conn *conn, const struct bt_bap_ep *ep, enum bt_
101102

102103
*stream = stream_alloc();
103104
if (*stream == NULL) {
104-
printk("No streams available\n");
105+
printk("No test_streams available\n");
105106
*rsp = BT_BAP_ASCS_RSP(BT_BAP_ASCS_RSP_CODE_NO_MEM, BT_BAP_ASCS_REASON_NONE);
106107
return -ENOMEM;
107108
}
@@ -133,7 +134,7 @@ static int lc3_reconfig(struct bt_bap_stream *stream, enum bt_audio_dir dir,
133134
static int lc3_qos(struct bt_bap_stream *stream, const struct bt_audio_codec_qos *qos,
134135
struct bt_bap_ascs_rsp *rsp)
135136
{
136-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
137+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
137138

138139
printk("QoS: stream %p qos %p\n", stream, qos);
139140

@@ -182,7 +183,7 @@ static int lc3_metadata(struct bt_bap_stream *stream, const uint8_t meta[], size
182183

183184
static int lc3_disable(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
184185
{
185-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
186+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
186187

187188
printk("Disable: stream %p\n", stream);
188189

@@ -251,7 +252,7 @@ static void stream_started_cb(struct bt_bap_stream *stream)
251252
static void stream_recv_cb(struct bt_bap_stream *stream, const struct bt_iso_recv_info *info,
252253
struct net_buf *buf)
253254
{
254-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
255+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
255256

256257
printk("Incoming audio on stream %p len %u and ts %u\n", stream, buf->len, info->ts);
257258

@@ -284,7 +285,7 @@ static void stream_recv_cb(struct bt_bap_stream *stream, const struct bt_iso_rec
284285

285286
static void stream_sent_cb(struct bt_bap_stream *stream)
286287
{
287-
struct bap_test_stream *test_stream = CONTAINER_OF(stream, struct bap_test_stream, stream);
288+
struct audio_test_stream *test_stream = audio_test_stream_from_bap_stream(stream);
288289
struct net_buf *buf;
289290
int ret;
290291

@@ -323,15 +324,15 @@ static struct bt_bap_stream_ops stream_ops = {
323324
.sent = stream_sent_cb,
324325
};
325326

326-
static void transceive_streams(void)
327+
static void transceive_test_streams(void)
327328
{
328329
struct bt_bap_stream *source_stream = NULL;
329330
struct bt_bap_stream *sink_stream = NULL;
330331
struct bt_bap_ep_info info;
331332
int err;
332333

333-
for (size_t i = 0U; i < ARRAY_SIZE(streams); i++) {
334-
struct bt_bap_stream *stream = &streams[i].stream;
334+
for (size_t i = 0U; i < ARRAY_SIZE(test_streams); i++) {
335+
struct bt_bap_stream *stream = bap_stream_from_audio_test_stream(&test_streams[i]);
335336

336337
if (stream->ep == NULL) {
337338
break;
@@ -345,7 +346,7 @@ static void transceive_streams(void)
345346
return;
346347
}
347348

348-
/* Ensure that all configured streams are in the streaming state before
349+
/* Ensure that all configured test_streams are in the streaming state before
349350
* starting TX and RX
350351
*/
351352
if (info.state == BT_BAP_EP_STATE_STREAMING) {
@@ -363,8 +364,8 @@ static void transceive_streams(void)
363364
}
364365

365366
if (source_stream != NULL) {
366-
struct bap_test_stream *test_stream =
367-
CONTAINER_OF(source_stream, struct bap_test_stream, stream);
367+
struct audio_test_stream *test_stream =
368+
audio_test_stream_from_bap_stream(source_stream);
368369

369370
test_stream->tx_active = true;
370371
for (unsigned int i = 0U; i < ENQUEUE_COUNT; i++) {
@@ -378,8 +379,8 @@ static void transceive_streams(void)
378379
}
379380

380381
if (sink_stream != NULL) {
381-
const struct bap_test_stream *test_stream =
382-
CONTAINER_OF(sink_stream, struct bap_test_stream, stream);
382+
const struct audio_test_stream *test_stream =
383+
audio_test_stream_from_bap_stream(sink_stream);
383384

384385
/* Keep receiving until we reach the minimum expected */
385386
while (test_stream->rx_cnt < MIN_SEND_COUNT) {
@@ -481,8 +482,9 @@ static void init(void)
481482
set_location();
482483
set_available_contexts();
483484

484-
for (size_t i = 0; i < ARRAY_SIZE(streams); i++) {
485-
bt_bap_stream_cb_register(&streams[i].stream, &stream_ops);
485+
for (size_t i = 0; i < ARRAY_SIZE(test_streams); i++) {
486+
bt_bap_stream_cb_register(bap_stream_from_audio_test_stream(&test_streams[i]),
487+
&stream_ops);
486488
}
487489

488490
/* Create a non-connectable non-scannable advertising set */
@@ -518,7 +520,7 @@ static void test_main(void)
518520

519521

520522
WAIT_FOR_FLAG(flag_stream_started);
521-
transceive_streams();
523+
transceive_test_streams();
522524
WAIT_FOR_UNSET_FLAG(flag_connected);
523525
PASS("Unicast server passed\n");
524526
}

0 commit comments

Comments
 (0)