2023-11-27 21:58:12

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ v1] iso-tester: Add tests for GMAP broadcast QoS presets

From: Luiz Augusto von Dentz <[email protected]>

This adds the following tests:

ISO QoS 48_1_g - Success
ISO QoS 48_2_g - Success
ISO QoS 48_3_g - Success
ISO QoS 48_4_g - Success
---
tools/iso-tester.c | 134 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 119 insertions(+), 15 deletions(-)

diff --git a/tools/iso-tester.c b/tools/iso-tester.c
index 4d47373e3290..bbc906b613e8 100644
--- a/tools/iso-tester.c
+++ b/tools/iso-tester.c
@@ -307,22 +307,82 @@
#define QOS_OUT_1_1_16_2_1 BCAST_QOS_OUT_1_1(10000, 10, 40, 0x02, 2)
#define QOS_IN_16_2_1 BCAST_QOS_IN(10000, 10, 40, 0x02, 2)
#define QOS_IN_ENC_16_2_1 BCAST_QOS_IN_ENC(10000, 10, 40, 0x02, 2)
+#define QOS_OUT_48_1_g BCAST_QOS_OUT(7500, 8, 75, 0x02, 1)
+#define QOS_OUT_48_2_g BCAST_QOS_OUT(10000, 10, 100, 0x02, 1)
+#define QOS_OUT_48_3_g BCAST_QOS_OUT(7500, 8, 90, 0x02, 1)
+#define QOS_OUT_48_4_g BCAST_QOS_OUT(10000, 10, 120, 0x02, 1)

-static const uint8_t base_lc3_16_2_1[] = {
- 0x28, 0x00, 0x00, /* Presentation Delay */
- 0x01, /* Number of Subgroups */
- 0x01, /* Number of BIS */
- 0x06, 0x00, 0x00, 0x00, 0x00, /* Code ID = LC3 (0x06) */
- 0x11, /* Codec Specific Configuration */
- 0x02, 0x01, 0x03, /* 16 KHZ */
- 0x02, 0x02, 0x01, /* 10 ms */
- 0x05, 0x03, 0x01, 0x00, 0x00, 0x00, /* Front Left */
- 0x03, 0x04, 0x28, 0x00, /* Frame Length 40 bytes */
- 0x04, /* Metadata */
- 0x03, 0x02, 0x02, 0x00, /* Audio Context: Convertional */
- 0x01, /* BIS */
- 0x00, /* Codec Specific Configuration */
-};
+#define BASE(_pd, _sgrp, _nbis, _cfg...) \
+{ \
+ _pd & 0xff, _pd >> 8, _pd >> 16, \
+ _sgrp, \
+ _nbis, \
+ _cfg \
+}
+
+#define LC3_BASE(_pd, _sgrp, _nbis, _cc...) \
+ BASE(_pd, _sgrp, _nbis, 0x06, 0x00, 0x00, 0x00, 0x00, _cc)
+
+/* 16 KHZ - 10 ms - Front Left - Frame Length 40 bytes */
+#define LC3_CONFIG_16_2_1 \
+ 0x10, \
+ 0x02, 0x01, 0x03, \
+ 0x02, 0x02, 0x01, \
+ 0x05, 0x03, 0x01, 0x00, 0x00, 0x00, \
+ 0x03, 0x04, 0x28, 0x00
+
+/* Audio Context: Convertional */
+#define CTXT_CONVERSIONAL \
+ 0x04, \
+ 0x03, 0x02, 0x02, 0x00
+
+static const uint8_t base_lc3_16_2_1[] =
+ LC3_BASE(40000, 1, 1, LC3_CONFIG_16_2_1, CTXT_CONVERSIONAL,
+ 0x01, /* BIS */
+ 0x00 /* Codec Specific Configuration */);
+
+#define LC3_CONFIG_G(_freq, _dur, _len) \
+ 0x10, \
+ 0x02, 0x01, _freq, \
+ 0x02, 0x02, _dur, \
+ 0x05, 0x03, 0x01, 0x00, 0x00, 0x00, \
+ 0x03, 0x04, _len, _len >> 8
+
+/* 48 KHZ - 7.5 ms - Front Left - Frame Length 75 bytes */
+#define LC3_CONFIG_48_1_G \
+ LC3_CONFIG_G(0x08, 0x00, 75)
+
+static const uint8_t base_lc3_48_1_g[] =
+ LC3_BASE(10000, 1, 1, LC3_CONFIG_48_1_G, CTXT_CONVERSIONAL,
+ 0x01, /* BIS */
+ 0x00 /* Codec Specific Configuration */);
+
+/* 48 KHZ - 10 ms - Front Left - Frame Length 100 bytes */
+#define LC3_CONFIG_48_2_G \
+ LC3_CONFIG_G(0x08, 0x01, 100)
+
+static const uint8_t base_lc3_48_2_g[] =
+ LC3_BASE(10000, 1, 1, LC3_CONFIG_48_2_G, CTXT_CONVERSIONAL,
+ 0x01, /* BIS */
+ 0x00 /* Codec Specific Configuration */);
+
+/* 48 KHZ - 7.5 ms - Front Left - Frame Length 90 bytes */
+#define LC3_CONFIG_48_3_G \
+ LC3_CONFIG_G(0x08, 0x00, 90)
+
+static const uint8_t base_lc3_48_3_g[] =
+ LC3_BASE(10000, 1, 1, LC3_CONFIG_48_3_G, CTXT_CONVERSIONAL,
+ 0x01, /* BIS */
+ 0x00 /* Codec Specific Configuration */);
+
+/* 48 KHZ - 7.5 ms - Front Left - Frame Length 90 bytes */
+#define LC3_CONFIG_48_4_G \
+ LC3_CONFIG_G(0x08, 0x00, 120)
+
+static const uint8_t base_lc3_48_4_g[] =
+ LC3_BASE(10000, 1, 1, LC3_CONFIG_48_3_G, CTXT_CONVERSIONAL,
+ 0x01, /* BIS */
+ 0x00 /* Codec Specific Configuration */);

/* Single Audio Channel. One BIS. */
#define BCAST_AC_12 BCAST_QOS_OUT_1_1(10000, 10, 40, 0x02, 2)
@@ -1166,6 +1226,38 @@ static const struct iso_client_data connect_ac_1_2_cig_1_2 = {
.mconn = true,
};

+static const struct iso_client_data bcast_48_1_g = {
+ .qos = QOS_OUT_48_1_g,
+ .expect_err = 0,
+ .bcast = true,
+ .base = base_lc3_48_1_g,
+ .base_len = sizeof(base_lc3_48_1_g),
+};
+
+static const struct iso_client_data bcast_48_2_g = {
+ .qos = QOS_OUT_48_2_g,
+ .expect_err = 0,
+ .bcast = true,
+ .base = base_lc3_48_2_g,
+ .base_len = sizeof(base_lc3_48_2_g),
+};
+
+static const struct iso_client_data bcast_48_3_g = {
+ .qos = QOS_OUT_48_3_g,
+ .expect_err = 0,
+ .bcast = true,
+ .base = base_lc3_48_3_g,
+ .base_len = sizeof(base_lc3_48_3_g),
+};
+
+static const struct iso_client_data bcast_48_4_g = {
+ .qos = QOS_OUT_48_4_g,
+ .expect_err = 0,
+ .bcast = true,
+ .base = base_lc3_48_4_g,
+ .base_len = sizeof(base_lc3_48_4_g),
+};
+
static const struct iso_client_data bcast_16_2_1_send = {
.qos = QOS_OUT_16_2_1,
.expect_err = 0,
@@ -3054,6 +3146,18 @@ int main(int argc, char *argv[])
test_iso("ISO QoS 48_4_gr - Success", &connect_48_4_gr, setup_powered,
test_connect);

+ test_iso("ISO QoS 48_1_g - Success", &bcast_48_1_g,
+ setup_powered, test_bcast);
+
+ test_iso("ISO QoS 48_2_g - Success", &bcast_48_2_g,
+ setup_powered, test_bcast);
+
+ test_iso("ISO QoS 48_3_g - Success", &bcast_48_3_g,
+ setup_powered, test_bcast);
+
+ test_iso("ISO QoS 48_4_g - Success", &bcast_48_4_g,
+ setup_powered, test_bcast);
+
test_iso("ISO QoS - Invalid", &connect_invalid, setup_powered,
test_connect);

--
2.42.0



2023-11-27 23:00:49

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v1] iso-tester: Add tests for GMAP broadcast QoS presets

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=804677

---Test result---

Test Summary:
CheckPatch PASS 0.54 seconds
GitLint PASS 0.31 seconds
BuildEll PASS 24.06 seconds
BluezMake PASS 583.11 seconds
MakeCheck PASS 10.55 seconds
MakeDistcheck PASS 153.08 seconds
CheckValgrind PASS 211.05 seconds
CheckSmatch PASS 320.02 seconds
bluezmakeextell PASS 98.28 seconds
IncrementalBuild PASS 544.78 seconds
ScanBuild PASS 935.79 seconds



---
Regards,
Linux Bluetooth