Skip to content

Commit ba7656d

Browse files
Thalleycarlescufi
authored andcommitted
tests: Bluetooth: Audio: Streamline connection handling in tests
Modify the tests to only have a single set of connection callbacks, where all the tests can use the same default_conn and flag_connected. Signed-off-by: Emil Gydesen <[email protected]>
1 parent 64143fc commit ba7656d

22 files changed

+61
-500
lines changed

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

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,9 @@
1212
#include "../../../../../subsys/bluetooth/host/hci_core.h"
1313
#include "common.h"
1414

15-
static struct bt_conn_cb conn_callbacks;
1615
extern enum bst_result_t bst_result;
1716

1817
/* BASS variables */
19-
static volatile bool g_is_connected;
2018
static volatile bool g_mtu_exchanged;
2119
static volatile bool g_discovery_complete;
2220
static volatile bool g_write_complete;
@@ -28,7 +26,6 @@ static volatile uint8_t g_src_id;
2826
static volatile uint32_t g_broadcast_id;
2927

3028
static volatile bool g_cb;
31-
static struct bt_conn *g_conn;
3229

3330
/* Broadcaster variables */
3431
static bt_addr_le_t g_broadcaster_addr;
@@ -227,27 +224,6 @@ static struct bt_bap_broadcast_assistant_cb broadcast_assistant_cbs = {
227224
.rem_src = bap_broadcast_assistant_rem_src_cb,
228225
};
229226

230-
static void connected(struct bt_conn *conn, uint8_t err)
231-
{
232-
char addr[BT_ADDR_LE_STR_LEN];
233-
234-
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
235-
236-
if (err != 0) {
237-
FAIL("Failed to connect to %s (%u)\n", addr, err);
238-
return;
239-
}
240-
241-
printk("Connected to %s\n", addr);
242-
g_conn = conn;
243-
g_is_connected = true;
244-
}
245-
246-
static struct bt_conn_cb conn_callbacks = {
247-
.connected = connected,
248-
.disconnected = disconnected,
249-
};
250-
251227
static void att_mtu_updated(struct bt_conn *conn, uint16_t tx, uint16_t rx)
252228
{
253229
g_mtu_exchanged = true;
@@ -301,7 +277,7 @@ static void test_bass_discover(void)
301277
int err;
302278

303279
printk("Discovering BASS\n");
304-
err = bt_bap_broadcast_assistant_discover(g_conn);
280+
err = bt_bap_broadcast_assistant_discover(default_conn);
305281
if (err != 0) {
306282
FAIL("Failed to discover BASS %d\n", err);
307283
return;
@@ -317,7 +293,7 @@ static void test_bass_scan_start(void)
317293

318294
printk("Starting scan\n");
319295
g_write_complete = false;
320-
err = bt_bap_broadcast_assistant_scan_start(g_conn, true);
296+
err = bt_bap_broadcast_assistant_scan_start(default_conn, true);
321297
if (err != 0) {
322298
FAIL("Could not write scan start to BASS (err %d)\n", err);
323299
return;
@@ -333,7 +309,7 @@ static void test_bass_scan_stop(void)
333309

334310
printk("Stopping scan\n");
335311
g_write_complete = false;
336-
err = bt_bap_broadcast_assistant_scan_stop(g_conn);
312+
err = bt_bap_broadcast_assistant_scan_stop(default_conn);
337313
if (err != 0) {
338314
FAIL("Could not write scan stop to BASS (err %d)\n", err);
339315
return;
@@ -379,7 +355,7 @@ static void test_bass_add_source(void)
379355
add_src_param.subgroups = &subgroup;
380356
subgroup.bis_sync = 0;
381357
subgroup.metadata_len = 0;
382-
err = bt_bap_broadcast_assistant_add_src(g_conn, &add_src_param);
358+
err = bt_bap_broadcast_assistant_add_src(default_conn, &add_src_param);
383359
if (err != 0) {
384360
FAIL("Could not add source (err %d)\n", err);
385361
return;
@@ -404,7 +380,7 @@ static void test_bass_mod_source(void)
404380
mod_src_param.pa_interval = g_broadcaster_info.interval;
405381
subgroup.bis_sync = 0;
406382
subgroup.metadata_len = 0;
407-
err = bt_bap_broadcast_assistant_mod_src(g_conn, &mod_src_param);
383+
err = bt_bap_broadcast_assistant_mod_src(default_conn, &mod_src_param);
408384
if (err != 0) {
409385
FAIL("Could not modify source (err %d)\n", err);
410386
return;
@@ -427,8 +403,7 @@ static void test_bass_broadcast_code(void)
427403

428404
printk("Adding broadcast code\n");
429405
g_write_complete = false;
430-
err = bt_bap_broadcast_assistant_set_broadcast_code(g_conn, g_src_id,
431-
broadcast_code);
406+
err = bt_bap_broadcast_assistant_set_broadcast_code(default_conn, g_src_id, broadcast_code);
432407
if (err != 0) {
433408
FAIL("Could not add broadcast code (err %d)\n", err);
434409
return;
@@ -444,7 +419,7 @@ static void test_bass_remove_source(void)
444419

445420
printk("Removing source\n");
446421
g_cb = g_write_complete = false;
447-
err = bt_bap_broadcast_assistant_rem_src(g_conn, g_src_id);
422+
err = bt_bap_broadcast_assistant_rem_src(default_conn, g_src_id);
448423
if (err != 0) {
449424
FAIL("Could not remove source (err %d)\n", err);
450425
return;
@@ -464,7 +439,6 @@ static void test_main(void)
464439
return;
465440
}
466441

467-
bt_conn_cb_register(&conn_callbacks);
468442
bt_gatt_cb_register(&gatt_callbacks);
469443
bt_bap_broadcast_assistant_register_cb(&broadcast_assistant_cbs);
470444
bt_le_per_adv_sync_cb_register(&sync_callbacks);
@@ -478,7 +452,7 @@ static void test_main(void)
478452

479453
printk("Scanning successfully started\n");
480454

481-
WAIT_FOR_COND(g_is_connected);
455+
WAIT_FOR_FLAG(flag_connected);
482456

483457
test_exchange_mtu();
484458
test_bass_discover();

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

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ extern enum bst_result_t bst_result;
1212

1313
static volatile bool g_cb;
1414
static volatile bool g_pa_synced;
15-
static struct bt_conn *g_conn;
16-
static bool g_connected;
1715

1816
static void pa_synced(struct bt_bap_scan_delegator_recv_state *recv_state,
1917
const struct bt_le_per_adv_sync_synced_info *info)
@@ -42,27 +40,6 @@ static struct bt_bap_scan_delegator_cb scan_delegator_cb = {
4240
.pa_recv = pa_recv
4341
};
4442

45-
static void connected(struct bt_conn *conn, uint8_t err)
46-
{
47-
char addr[BT_ADDR_LE_STR_LEN];
48-
49-
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
50-
51-
if (err) {
52-
FAIL("Failed to connect to %s (%u)\n", addr, err);
53-
return;
54-
}
55-
56-
printk("Connected to %s\n", addr);
57-
g_conn = conn;
58-
g_connected = true;
59-
}
60-
61-
static struct bt_conn_cb conn_callbacks = {
62-
.connected = connected,
63-
.disconnected = disconnected,
64-
};
65-
6643
static void test_main(void)
6744
{
6845
int err;
@@ -76,7 +53,6 @@ static void test_main(void)
7653
printk("Bluetooth initialized\n");
7754

7855
bt_bap_scan_delegator_register_cb(&scan_delegator_cb);
79-
bt_conn_cb_register(&conn_callbacks);
8056

8157
err = bt_le_adv_start(BT_LE_ADV_CONN_NAME, ad, AD_SIZE, NULL, 0);
8258
if (err) {
@@ -86,7 +62,7 @@ static void test_main(void)
8662

8763
printk("Advertising successfully started\n");
8864

89-
WAIT_FOR_COND(g_connected);
65+
WAIT_FOR_FLAG(flag_connected);
9066

9167
WAIT_FOR_COND(g_pa_synced);
9268

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

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ static struct bt_bap_ep *g_sinks[CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT];
2323
static struct bt_bap_lc3_preset preset_16_2_1 = BT_BAP_LC3_UNICAST_PRESET_16_2_1(
2424
BT_AUDIO_LOCATION_FRONT_LEFT, BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED);
2525

26-
CREATE_FLAG(flag_connected);
2726
CREATE_FLAG(flag_mtu_exchanged);
2827
CREATE_FLAG(flag_sink_discovered);
2928
CREATE_FLAG(flag_stream_codec_configured);
@@ -260,29 +259,6 @@ static void discover_sink_cb(struct bt_conn *conn, struct bt_codec *codec, struc
260259
}
261260
}
262261

263-
static void connected(struct bt_conn *conn, uint8_t err)
264-
{
265-
char addr[BT_ADDR_LE_STR_LEN];
266-
267-
(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
268-
269-
if (err != 0) {
270-
bt_conn_unref(default_conn);
271-
default_conn = NULL;
272-
273-
FAIL("Failed to connect to %s (%u)\n", addr, err);
274-
return;
275-
}
276-
277-
printk("Connected to %s\n", addr);
278-
SET_FLAG(flag_connected);
279-
}
280-
281-
BT_CONN_CB_DEFINE(conn_callbacks) = {
282-
.connected = connected,
283-
.disconnected = disconnected,
284-
};
285-
286262
static void att_mtu_updated(struct bt_conn *conn, uint16_t tx, uint16_t rx)
287263
{
288264
printk("MTU exchanged\n");

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ static const struct bt_data unicast_server_ad[] = {
3232
BT_DATA_BYTES(BT_DATA_UUID16_ALL, BT_UUID_16_ENCODE(BT_UUID_ASCS_VAL)),
3333
};
3434

35-
CREATE_FLAG(flag_connected);
3635
CREATE_FLAG(flag_stream_configured);
3736

3837
static void print_ase_info(struct bt_bap_ep *ep, void *user_data)
@@ -245,26 +244,6 @@ static struct bt_bap_stream_ops stream_ops = {
245244
.recv = stream_recv
246245
};
247246

248-
static void connected(struct bt_conn *conn, uint8_t err)
249-
{
250-
char addr[BT_ADDR_LE_STR_LEN];
251-
252-
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
253-
254-
if (err != 0) {
255-
FAIL("Failed to connect to %s (%u)\n", addr, err);
256-
return;
257-
}
258-
259-
printk("Connected to %s\n", addr);
260-
SET_FLAG(flag_connected);
261-
}
262-
263-
BT_CONN_CB_DEFINE(conn_callbacks) = {
264-
.connected = connected,
265-
.disconnected = disconnected,
266-
};
267-
268247
static void init(void)
269248
{
270249
static struct bt_pacs_cap cap = {

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

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -193,28 +193,6 @@ static const struct bt_data cap_acceptor_ad[] = {
193193

194194
static struct bt_csip_set_member_svc_inst *csip_set_member;
195195

196-
CREATE_FLAG(flag_connected);
197-
198-
static void connected(struct bt_conn *conn, uint8_t err)
199-
{
200-
char addr[BT_ADDR_LE_STR_LEN];
201-
202-
bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
203-
204-
if (err != 0) {
205-
FAIL("Failed to connect to %s (%u)\n", addr, err);
206-
return;
207-
}
208-
209-
printk("Connected to %s\n", addr);
210-
SET_FLAG(flag_connected);
211-
}
212-
213-
BT_CONN_CB_DEFINE(conn_callbacks) = {
214-
.connected = connected,
215-
.disconnected = disconnected,
216-
};
217-
218196
static void init(void)
219197
{
220198
struct bt_csip_set_member_register_param csip_set_member_param = {

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

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ static struct bt_bap_lc3_preset broadcast_preset_16_2_1 = BT_BAP_LC3_BROADCAST_P
3636
static K_SEM_DEFINE(sem_broadcast_started, 0U, ARRAY_SIZE(broadcast_streams));
3737
static K_SEM_DEFINE(sem_broadcast_stopped, 0U, ARRAY_SIZE(broadcast_streams));
3838

39-
CREATE_FLAG(flag_connected);
4039
CREATE_FLAG(flag_discovered);
4140
CREATE_FLAG(flag_mtu_exchanged);
4241
CREATE_FLAG(flag_broadcast_stopping);
@@ -129,29 +128,6 @@ static struct bt_cap_initiator_cb cap_cb = {
129128
.unicast_discovery_complete = cap_discovery_complete_cb
130129
};
131130

132-
static void connected(struct bt_conn *conn, uint8_t err)
133-
{
134-
char addr[BT_ADDR_LE_STR_LEN];
135-
136-
(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
137-
138-
if (err != 0) {
139-
bt_conn_unref(default_conn);
140-
default_conn = NULL;
141-
142-
FAIL("Failed to connect to %s (%u)\n", addr, err);
143-
return;
144-
}
145-
146-
printk("Connected to %s\n", addr);
147-
SET_FLAG(flag_connected);
148-
}
149-
150-
BT_CONN_CB_DEFINE(conn_callbacks) = {
151-
.connected = connected,
152-
.disconnected = disconnected,
153-
};
154-
155131
static void att_mtu_updated(struct bt_conn *conn, uint16_t tx, uint16_t rx)
156132
{
157133
printk("MTU exchanged\n");

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

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
extern enum bst_result_t bst_result;
1111
struct bt_conn *default_conn;
12+
atomic_t flag_connected;
1213

1314
const struct bt_data ad[AD_SIZE] = {
1415
BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR))
@@ -51,6 +52,28 @@ void device_found(const bt_addr_le_t *addr, int8_t rssi, uint8_t type,
5152
}
5253
}
5354

55+
static void connected(struct bt_conn *conn, uint8_t err)
56+
{
57+
char addr[BT_ADDR_LE_STR_LEN];
58+
59+
(void)bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
60+
61+
if (default_conn == NULL) {
62+
default_conn = bt_conn_ref(conn);
63+
}
64+
65+
if (err != 0) {
66+
bt_conn_unref(default_conn);
67+
default_conn = NULL;
68+
69+
FAIL("Failed to connect to %s (%u)\n", addr, err);
70+
return;
71+
}
72+
73+
printk("Connected to %s\n", addr);
74+
SET_FLAG(flag_connected);
75+
}
76+
5477
void disconnected(struct bt_conn *conn, uint8_t reason)
5578
{
5679
char addr[BT_ADDR_LE_STR_LEN];
@@ -65,8 +88,14 @@ void disconnected(struct bt_conn *conn, uint8_t reason)
6588

6689
bt_conn_unref(default_conn);
6790
default_conn = NULL;
91+
UNSET_FLAG(flag_connected);
6892
}
6993

94+
BT_CONN_CB_DEFINE(conn_callbacks) = {
95+
.connected = connected,
96+
.disconnected = disconnected,
97+
};
98+
7099
void test_tick(bs_time_t HW_device_time)
71100
{
72101
if (bst_result != Passed) {

tests/bluetooth/bsim/audio/src/common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
#define AD_SIZE 1
5858
extern const struct bt_data ad[AD_SIZE];
5959
extern struct bt_conn *default_conn;
60+
extern atomic_t flag_connected;
6061

6162
void device_found(const bt_addr_le_t *addr, int8_t rssi, uint8_t type,
6263
struct net_buf_simple *ad);

0 commit comments

Comments
 (0)