|
7 | 7 | #include "common.h" |
8 | 8 |
|
9 | 9 | #include <zephyr/bluetooth/bluetooth.h> |
| 10 | +#include <zephyr/bluetooth/hci_types.h> |
10 | 11 | #include <zephyr/bluetooth/iso.h> |
11 | 12 | #include <zephyr/logging/log.h> |
| 13 | +#include <zephyr/sys/util.h> |
12 | 14 |
|
13 | 15 | #include "babblekit/flags.h" |
14 | 16 | #include "babblekit/sync.h" |
@@ -241,6 +243,36 @@ static void sync_big(struct bt_le_per_adv_sync *sync, uint8_t cnt, struct bt_iso |
241 | 243 | TEST_ASSERT(err == 0, "Failed to create BIG sync: %d"); |
242 | 244 |
|
243 | 245 | WAIT_FOR_FLAG(flag_iso_connected); |
| 246 | + |
| 247 | + for (size_t i = 0; i < cnt; i++) { |
| 248 | + struct bt_iso_info info; |
| 249 | + |
| 250 | + err = bt_iso_chan_get_info(bis_channels[i], &info); |
| 251 | + TEST_ASSERT(err == 0, "Failed to get BIS info: %d", err); |
| 252 | + |
| 253 | + TEST_ASSERT(info.can_recv); |
| 254 | + TEST_ASSERT(!info.can_send); |
| 255 | + TEST_ASSERT(info.type == BT_ISO_CHAN_TYPE_SYNC_RECEIVER); |
| 256 | + TEST_ASSERT(IN_RANGE(info.iso_interval, BT_ISO_ISO_INTERVAL_MIN, |
| 257 | + BT_ISO_ISO_INTERVAL_MAX), |
| 258 | + "Invalid ISO interval 0x%04x", info.iso_interval); |
| 259 | + TEST_ASSERT(IN_RANGE(info.max_subevent, BT_ISO_NSE_MIN, BT_ISO_NSE_MAX), |
| 260 | + "Invalid subevent number 0x%02x", info.max_subevent); |
| 261 | + TEST_ASSERT(IN_RANGE(info.sync_receiver.latency, |
| 262 | + BT_HCI_LE_TRANSPORT_LATENCY_BIG_MIN, |
| 263 | + BT_HCI_LE_TRANSPORT_LATENCY_BIG_MAX), |
| 264 | + "Invalid transport latency 0x%06x", info.sync_receiver.latency); |
| 265 | + TEST_ASSERT((info.sync_receiver.pto % info.iso_interval) == 0U, |
| 266 | + "PTO in ms %u shall be a multiple of the ISO interval %u", |
| 267 | + info.sync_receiver.pto, info.iso_interval); |
| 268 | + TEST_ASSERT(IN_RANGE((info.sync_receiver.pto / info.iso_interval), BT_ISO_PTO_MIN, |
| 269 | + BT_ISO_PTO_MAX), |
| 270 | + "Invalid PTO 0x%x", (info.sync_receiver.pto / info.iso_interval)); |
| 271 | + TEST_ASSERT(IN_RANGE(info.sync_receiver.bn, BT_ISO_BN_MIN, BT_ISO_BN_MAX), |
| 272 | + "Invalid BN 0x%02x", info.sync_receiver.bn); |
| 273 | + TEST_ASSERT(IN_RANGE(info.sync_receiver.irc, BT_ISO_IRC_MIN, BT_ISO_IRC_MAX), |
| 274 | + "Invalid IRC 0x%02x", info.sync_receiver.irc); |
| 275 | + } |
244 | 276 | } |
245 | 277 |
|
246 | 278 | static void test_main(void) |
|
0 commit comments