All of lore.kernel.org
 help / color / mirror / Atom feed
* [BlueZ PATCH v3 1/3] doc/tester-config: Enable Runtime Debugging Feature
@ 2021-10-08 19:36 Tedd Ho-Jeong An
  2021-10-08 19:36 ` [BlueZ PATCH v3 2/3] tools/mgmt-tester: Updates Experimental Feature test cases Tedd Ho-Jeong An
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Tedd Ho-Jeong An @ 2021-10-08 19:36 UTC (permalink / raw)
  To: linux-bluetooth

From: Tedd Ho-Jeong An <tedd.an@intel.com>

This patch adds CONFIG_BT_FEATURE_DEBUG=y in tester config to enable the
runtime debug option.
---
 doc/tester.config | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/tester.config b/doc/tester.config
index 892fd5eb3..011475661 100644
--- a/doc/tester.config
+++ b/doc/tester.config
@@ -32,6 +32,7 @@ CONFIG_BT_LE=y
 CONFIG_BT_HS=y
 CONFIG_BT_MSFTEXT=y
 CONFIG_BT_AOSPEXT=y
+CONFIG_BT_FEATURE_DEBUG=y
 
 CONFIG_BT_HCIVHCI=y
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [BlueZ PATCH v3 2/3] tools/mgmt-tester: Updates Experimental Feature test cases
  2021-10-08 19:36 [BlueZ PATCH v3 1/3] doc/tester-config: Enable Runtime Debugging Feature Tedd Ho-Jeong An
@ 2021-10-08 19:36 ` Tedd Ho-Jeong An
  2021-10-08 19:36 ` [BlueZ PATCH v3 3/3] tools/mgmt-tester: Add more suspend/resume " Tedd Ho-Jeong An
  2021-10-08 19:53 ` [BlueZ,v3,1/3] doc/tester-config: Enable Runtime Debugging Feature bluez.test.bot
  2 siblings, 0 replies; 5+ messages in thread
From: Tedd Ho-Jeong An @ 2021-10-08 19:36 UTC (permalink / raw)
  To: linux-bluetooth

From: Tedd Ho-Jeong An <tedd.an@intel.com>

This patch updates/adds test cases for Read and Set Experimental Feature
commands.
---
 tools/mgmt-tester.c | 92 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 89 insertions(+), 3 deletions(-)

diff --git a/tools/mgmt-tester.c b/tools/mgmt-tester.c
index 1a2aba7fd..84d81c8ca 100644
--- a/tools/mgmt-tester.c
+++ b/tools/mgmt-tester.c
@@ -390,8 +390,8 @@ static void debug_exp_feature(struct test_data *data)
 	tester_print("Enabling Debug feature");
 
 	mgmt_send(data->mgmt, MGMT_OP_SET_EXP_FEATURE, MGMT_INDEX_NONE,
-		sizeof(set_exp_feat_param_debug), set_exp_feat_param_debug,
-		debug_exp_callback, NULL, NULL);
+		  sizeof(set_exp_feat_param_debug), set_exp_feat_param_debug,
+		  debug_exp_callback, NULL, NULL);
 }
 
 static void read_index_list_callback(uint8_t status, uint16_t length,
@@ -9702,6 +9702,23 @@ static const struct generic_data read_exp_feat_success = {
 	.expect_len = sizeof(read_exp_feat_param_success),
 };
 
+
+static const uint8_t read_exp_feat_param_success_index_none[] = {
+	0x01, 0x00,				/* Feature Count */
+	0x1c, 0xda, 0x47, 0x1c, 0x48, 0x6c,	/* UUID - Debug */
+	0x01, 0xab, 0x9f, 0x46, 0xec, 0xb9,
+	0x30, 0x25, 0x99, 0xd4,
+	0x00, 0x00, 0x00, 0x00,			/* Flags */
+};
+
+static const struct generic_data read_exp_feat_success_index_none = {
+	.send_index_none = true,
+	.send_opcode = MGMT_OP_READ_EXP_FEATURES_INFO,
+	.expect_status = MGMT_STATUS_SUCCESS,
+	.expect_param = read_exp_feat_param_success_index_none,
+	.expect_len = sizeof(read_exp_feat_param_success_index_none),
+};
+
 static uint16_t settings_powered_le_privacy[] = { MGMT_OP_SET_LE,
 						MGMT_OP_SET_PRIVACY,
 						MGMT_OP_SET_POWERED, 0 };
@@ -9720,6 +9737,20 @@ static const uint8_t set_exp_feat_rsp_param_ll_privacy[] = {
 	0x03, 0x00, 0x00, 0x00,			/* Action - enable */
 };
 
+static const uint8_t set_exp_feat_param_offload_codec[] = {
+	0xaf, 0x29, 0xc6, 0x66, 0xac, 0x5f,	/* UUID - Codec Offload */
+	0x1a, 0x88, 0xb9, 0x4f, 0x7f, 0xee,
+	0xce, 0x5a, 0x69, 0xa6,
+	0x01,					/* Action - enable */
+};
+
+static const uint8_t set_exp_feat_rsp_param_offload_codec[] = {
+	0xaf, 0x29, 0xc6, 0x66, 0xac, 0x5f,	/* UUID - Codec Offload */
+	0x1a, 0x88, 0xb9, 0x4f, 0x7f, 0xee,
+	0xce, 0x5a, 0x69, 0xa6,
+	0x01, 0x00, 0x00, 0x00,			/* Action - enable */
+};
+
 static const struct generic_data set_exp_feat_enable_ll_privacy = {
 	.send_opcode = MGMT_OP_SET_EXP_FEATURE,
 	.send_param = set_exp_feat_param_ll_privacy,
@@ -9727,6 +9758,44 @@ static const struct generic_data set_exp_feat_enable_ll_privacy = {
 	.expect_status = MGMT_STATUS_SUCCESS,
 	.expect_param = set_exp_feat_rsp_param_ll_privacy,
 	.expect_len = sizeof(set_exp_feat_rsp_param_ll_privacy),
+	.expect_alt_ev = MGMT_EV_EXP_FEATURE_CHANGE,
+	.expect_alt_ev_len = sizeof(struct mgmt_ev_exp_feature_changed),
+};
+
+static void read_exp_feature_callback(uint8_t status, uint16_t length,
+					const void *param, void *user_data)
+{
+	if (status != MGMT_STATUS_SUCCESS) {
+		tester_setup_failed();
+		return;
+	}
+
+	tester_print("Received Read Experimental Features Info");
+
+	tester_setup_complete();
+}
+
+static void setup_set_exp_feature_alt(const void *test_data)
+{
+	struct test_data *data = tester_get_data();
+
+	/* Send the Read Experiemental Features Information command to receive
+	 * the Experiemental Feature Changed event
+	 */
+	mgmt_send(data->mgmt_alt, MGMT_OP_READ_EXP_FEATURES_INFO,
+			data->mgmt_index, 0, NULL,
+			read_exp_feature_callback, NULL, NULL);
+}
+
+static const struct generic_data set_exp_feat_offload_codec = {
+	.send_opcode = MGMT_OP_SET_EXP_FEATURE,
+	.send_param = set_exp_feat_param_offload_codec,
+	.send_len = sizeof(set_exp_feat_param_offload_codec),
+	.expect_status = MGMT_STATUS_SUCCESS,
+	.expect_param = set_exp_feat_rsp_param_offload_codec,
+	.expect_len = sizeof(set_exp_feat_rsp_param_offload_codec),
+	.expect_alt_ev = MGMT_EV_EXP_FEATURE_CHANGE,
+	.expect_alt_ev_len = sizeof(struct mgmt_ev_exp_feature_changed),
 };
 
 static const uint8_t set_exp_feat_param_disable[17] = { 0x00 };
@@ -12434,12 +12503,29 @@ int main(int argc, char *argv[])
 	test_bredrle50("Read Exp Feature - Success",
 				&read_exp_feat_success,
 				NULL, test_command_generic);
+
+	/* MGMT_OP_READ_EXP_FEATURE
+	 * Read Experimental features - success (Index None)
+	 */
+	test_bredrle50("Read Exp Feature - Success (Index None)",
+				&read_exp_feat_success_index_none,
+				NULL, test_command_generic);
+
 	/* MGMT_OP_SET_EXP_FEATURE
 	 * Enable LL Privacy
 	 */
 	test_bredrle50("Set Exp Feature - Enable LL Privacy",
 				&set_exp_feat_enable_ll_privacy,
-				NULL, test_command_generic);
+				setup_set_exp_feature_alt,
+				test_command_generic);
+
+	/* MGMT_OP_SET_EXP_FEATURE
+	 * Offload Codec
+	 */
+	test_bredrle50("Set Exp Feature - Offload Codec",
+				&set_exp_feat_offload_codec,
+				setup_set_exp_feature_alt,
+				test_command_generic);
 
 	/* MGMT_OP_SET_EXP_FEATURE
 	 * Disable all features by sending zero UUID
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [BlueZ PATCH v3 3/3] tools/mgmt-tester: Add more suspend/resume test cases
  2021-10-08 19:36 [BlueZ PATCH v3 1/3] doc/tester-config: Enable Runtime Debugging Feature Tedd Ho-Jeong An
  2021-10-08 19:36 ` [BlueZ PATCH v3 2/3] tools/mgmt-tester: Updates Experimental Feature test cases Tedd Ho-Jeong An
@ 2021-10-08 19:36 ` Tedd Ho-Jeong An
  2021-10-08 19:53 ` [BlueZ,v3,1/3] doc/tester-config: Enable Runtime Debugging Feature bluez.test.bot
  2 siblings, 0 replies; 5+ messages in thread
From: Tedd Ho-Jeong An @ 2021-10-08 19:36 UTC (permalink / raw)
  To: linux-bluetooth

From: Tedd Ho-Jeong An <tedd.an@intel.com>

This patch adds more suspend/resuem test cases like
 - Discover -> Suspend
 - Discover -> Suspend -> Resume
 - Suspend -> Resume -> Suspend -> Resume
---
 tools/mgmt-tester.c | 171 ++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 164 insertions(+), 7 deletions(-)

diff --git a/tools/mgmt-tester.c b/tools/mgmt-tester.c
index 84d81c8ca..8bddf6b03 100644
--- a/tools/mgmt-tester.c
+++ b/tools/mgmt-tester.c
@@ -267,6 +267,7 @@ struct generic_data {
 	uint16_t setup_send_len;
 	const struct setup_mgmt_cmd *setup_mgmt_cmd_arr;
 	bool send_index_none;
+	const void *setup_discovery_param;
 	uint16_t send_opcode;
 	const void *send_param;
 	uint16_t send_len;
@@ -7299,6 +7300,11 @@ proceed:
 			param = privacy_param;
 		}
 
+		if (*cmd == MGMT_OP_START_DISCOVERY) {
+			if (test->setup_discovery_param)
+				memcpy(param, test->setup_discovery_param, 1);
+		}
+
 		if (*cmd == MGMT_OP_SET_LE && test->setup_nobredr) {
 			unsigned char off[] = { 0x00 };
 			mgmt_send(data->mgmt, *cmd, data->mgmt_index,
@@ -10671,6 +10677,21 @@ static void trigger_force_suspend(void *user_data)
 	}
 }
 
+static void trigger_force_resume(void *user_data)
+{
+	bool suspend;
+	int err;
+
+	/* Triggers the suspend */
+	suspend = false;
+	tester_print("Set the system into Resume via force_suspend");
+	err = set_debugfs_force_suspend(0, suspend);
+	if (err) {
+		tester_warn("Unable to disable the force_suspend");
+		return;
+	}
+}
+
 static void test_suspend_resume_success_5(const void *test_data)
 {
 	test_pairing_acceptor(test_data);
@@ -10722,6 +10743,113 @@ static void test_suspend_resume_success_7(const void *test_data)
 	test_command_generic(test_data);
 }
 
+static const struct generic_data suspend_resume_success_8 = {
+	.setup_settings = settings_powered_le,
+	.send_opcode = MGMT_OP_START_DISCOVERY,
+	.send_param = start_discovery_le_param,
+	.send_len = sizeof(start_discovery_le_param),
+	.expect_status = MGMT_STATUS_SUCCESS,
+	.expect_param = start_discovery_le_param,
+	.expect_len = sizeof(start_discovery_le_param),
+	.expect_hci_command = BT_HCI_CMD_LE_SET_EXT_SCAN_ENABLE,
+	.expect_hci_param = start_discovery_valid_ext_scan_enable,
+	.expect_hci_len = sizeof(start_discovery_valid_ext_scan_enable),
+	.expect_alt_ev = MGMT_EV_CONTROLLER_SUSPEND,
+	.expect_alt_ev_param = suspend_state_param_disconnect,
+	.expect_alt_ev_len = sizeof(suspend_state_param_disconnect),
+};
+
+static void test_suspend_resume_success_8(const void *test_data)
+{
+	test_command_generic(test_data);
+	tester_wait(1, trigger_force_suspend, NULL);
+}
+
+static uint16_t settings_powered_le_discovery[] = { MGMT_OP_SET_LE,
+						    MGMT_OP_SET_POWERED,
+						    MGMT_OP_START_DISCOVERY,
+						    0 };
+
+static const struct generic_data suspend_resume_success_9 = {
+	.setup_settings = settings_powered_le_discovery,
+	.setup_discovery_param = start_discovery_bredrle_param,
+	.setup_expect_hci_command = BT_HCI_CMD_LE_SET_EXT_SCAN_ENABLE,
+	.setup_expect_hci_param = stop_discovery_valid_ext_scan_disable,
+	.setup_expect_hci_len = sizeof(stop_discovery_valid_ext_scan_disable),
+	.expect_hci_command = BT_HCI_CMD_LE_SET_EXT_SCAN_ENABLE,
+	.expect_hci_param = start_discovery_valid_ext_scan_enable,
+	.expect_hci_len = sizeof(start_discovery_valid_ext_scan_enable),
+	.expect_alt_ev = MGMT_EV_CONTROLLER_RESUME,
+	.expect_alt_ev_param = resume_state_param_non_bt_wake,
+	.expect_alt_ev_len = sizeof(resume_state_param_non_bt_wake),
+};
+
+static void trigger_force_suspend_9(void *user_data)
+{
+	trigger_force_suspend(user_data);
+}
+
+static void setup_suspend_resume_success_9(const void *test_data)
+{
+	setup_command_generic(test_data);
+	tester_wait(1, trigger_force_suspend_9, NULL);
+}
+
+static void test_suspend_resume_success_9(const void *test_data)
+{
+	test_command_generic(test_data);
+	tester_wait(2, trigger_force_resume, NULL);
+}
+
+static const struct generic_data suspend_resume_success_10 = {
+	.setup_settings = settings_powered_le,
+	.expect_alt_ev = MGMT_EV_CONTROLLER_RESUME,
+	.expect_alt_ev_param = resume_state_param_non_bt_wake,
+	.expect_alt_ev_len = sizeof(resume_state_param_non_bt_wake),
+};
+
+static void resume_event(uint16_t index, uint16_t length,
+					const void *param, void *user_data)
+{
+	struct test_data *data = tester_get_data();
+	const struct mgmt_ev_controller_resume *ev = param;
+
+	mgmt_unregister(data->mgmt, data->mgmt_discov_ev_id);
+
+	if (length != sizeof(*ev)) {
+		tester_warn("Incorrect resume event length");
+		tester_setup_failed();
+		return;
+	}
+
+	tester_print("New Controller Resume event received");
+	test_condition_complete(data);
+	tester_setup_complete();
+}
+
+
+static void setup_suspend_resume_success_10(const void *test_data)
+{
+	struct test_data *data = tester_get_data();
+	unsigned int id;
+
+	tester_print("Registering Controller Resume notification");
+	id = mgmt_register(data->mgmt, MGMT_EV_CONTROLLER_RESUME,
+			   data->mgmt_index, resume_event, NULL, NULL);
+	/* Reuse the variable */
+	data->mgmt_discov_ev_id = id;
+	test_add_condition(data);
+
+	tester_wait(1, trigger_force_suspend, NULL);
+	tester_wait(2, trigger_force_resume, NULL);
+}
+
+static void test_suspend_resume_success_10(const void *test_data)
+{
+	test_command_generic(test_data);
+	tester_wait(1, trigger_force_suspend, NULL);
+	tester_wait(2, trigger_force_resume, NULL);
+}
 
 int main(int argc, char *argv[])
 {
@@ -12436,7 +12564,7 @@ int main(int argc, char *argv[])
 	 * Run: Enable suspend via force_suspend
 	 * Expect: Receive the Suspend Event
 	 */
-	test_bredrle50("Suspend/Resume - Success 1 (Suspend)",
+	test_bredrle50("Suspend - Success 1",
 				&suspend_resume_success_1,
 				NULL, test_suspend_resume_success_1);
 
@@ -12445,7 +12573,7 @@ int main(int argc, char *argv[])
 	 * Run: Enable suspend, and then resume via force_suspend
 	 * Expect: Receive the Resume Event
 	 */
-	test_bredrle50("Suspend/Resume - Success 2 (Resume)",
+	test_bredrle50("Resume - Success 2",
 				&suspend_resume_success_2,
 				NULL, test_suspend_resume_success_2);
 
@@ -12454,7 +12582,7 @@ int main(int argc, char *argv[])
 	 * Run: Add new device, and enable suspend.
 	 * Expect: Receive the Suspend Event
 	 */
-	test_bredrle50("Suspend/Resume - Success 3 (Device in WL)",
+	test_bredrle50("Suspend - Success 3 (Device in WL)",
 				&suspend_resume_success_3,
 				setup_suspend_resume_success_3,
 				test_suspend_resume_success_3);
@@ -12464,7 +12592,7 @@ int main(int argc, char *argv[])
 	 * Run: Enable suspend
 	 * Expect: Receive the Suspend Event
 	 */
-	test_bredrle50("Suspend/Resume - Success 4 (Advertising)",
+	test_bredrle50("Suspend - Success 4 (Advertising)",
 				&suspend_resume_success_4,
 				setup_suspend_resume_success_4,
 				test_suspend_resume_success_4);
@@ -12474,7 +12602,7 @@ int main(int argc, char *argv[])
 	 * Run: Enable suspend
 	 * Expect: Receive the Suspend Event
 	 */
-	test_bredrle("Suspend/Resume - Success 5 (Pairing - Legacy)",
+	test_bredrle("Suspend - Success 5 (Pairing - Legacy)",
 				&suspend_resume_success_5, NULL,
 				test_suspend_resume_success_5);
 
@@ -12483,7 +12611,7 @@ int main(int argc, char *argv[])
 	 * Run: Enable suspend
 	 * Expect: Receive the Suspend Event
 	 */
-	test_bredrle("Suspend/Resume - Success 6 (Pairing - SSP)",
+	test_bredrle("Suspend - Success 6 (Pairing - SSP)",
 				&suspend_resume_success_6,
 				setup_pairing_acceptor,
 				test_suspend_resume_success_5);
@@ -12493,10 +12621,39 @@ int main(int argc, char *argv[])
 	 * Run: Enable suspend via force_suspend
 	 * Expect: Receive the Suspend Event
 	 */
-	test_bredrle50("Suspend/Resume - Success 7 (Suspend/Force Wakeup)",
+	test_bredrle50("Suspend - Success 7 (Suspend/Force Wakeup)",
 				&suspend_resume_success_7,
 				NULL, test_suspend_resume_success_7);
 
+	/* Suspend/Resume
+	 * Setup : Power on
+	 * Run: Start discover and enable suspend
+	 * Expect: Receive the Suspend Event
+	 */
+	test_bredrle50_full("Suspend - Success 8 (Discovery/Suspend)",
+				&suspend_resume_success_8,
+				NULL, test_suspend_resume_success_8, 4);
+
+	/* Suspend/Resume
+	 * Setup : Power on, start discovery
+	 * Run: Start discover, enable suspend and resume.
+	 * Expect: Receive the Resume Event
+	 */
+	test_bredrle50_full("Resume - Success 9 (Discovery/Suspend/Resume)",
+				&suspend_resume_success_9,
+				setup_suspend_resume_success_9,
+				test_suspend_resume_success_9, 4);
+
+	/* Suspend/Resume
+	 * Setup : Power on
+	 * Run: Suspend, Resume, Suspend, and Resume
+	 * Expect:
+	 */
+	test_bredrle50_full("Resume - Success 10 (Multiple Suspend/Resume)",
+				&suspend_resume_success_10,
+				setup_suspend_resume_success_10,
+				test_suspend_resume_success_10, 6);
+
 	/* MGMT_OP_READ_EXP_FEATURE
 	 * Read Experimental features - success
 	 */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [BlueZ,v3,1/3] doc/tester-config: Enable Runtime Debugging Feature
  2021-10-08 19:36 [BlueZ PATCH v3 1/3] doc/tester-config: Enable Runtime Debugging Feature Tedd Ho-Jeong An
  2021-10-08 19:36 ` [BlueZ PATCH v3 2/3] tools/mgmt-tester: Updates Experimental Feature test cases Tedd Ho-Jeong An
  2021-10-08 19:36 ` [BlueZ PATCH v3 3/3] tools/mgmt-tester: Add more suspend/resume " Tedd Ho-Jeong An
@ 2021-10-08 19:53 ` bluez.test.bot
  2021-10-08 21:40   ` Luiz Augusto von Dentz
  2 siblings, 1 reply; 5+ messages in thread
From: bluez.test.bot @ 2021-10-08 19:53 UTC (permalink / raw)
  To: linux-bluetooth, hj.tedd.an

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

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=560147

---Test result---

Test Summary:
CheckPatch                    PASS      4.39 seconds
GitLint                       PASS      2.75 seconds
Prep - Setup ELL              PASS      40.26 seconds
Build - Prep                  PASS      0.45 seconds
Build - Configure             PASS      7.46 seconds
Build - Make                  PASS      174.06 seconds
Make Check                    PASS      9.00 seconds
Make Distcheck                PASS      211.98 seconds
Build w/ext ELL - Configure   PASS      7.81 seconds
Build w/ext ELL - Make        PASS      162.27 seconds



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [BlueZ,v3,1/3] doc/tester-config: Enable Runtime Debugging Feature
  2021-10-08 19:53 ` [BlueZ,v3,1/3] doc/tester-config: Enable Runtime Debugging Feature bluez.test.bot
@ 2021-10-08 21:40   ` Luiz Augusto von Dentz
  0 siblings, 0 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2021-10-08 21:40 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Tedd Ho-Jeong An

Hi Tedd,

On Fri, Oct 8, 2021 at 12:55 PM <bluez.test.bot@gmail.com> wrote:
>
> 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=560147
>
> ---Test result---
>
> Test Summary:
> CheckPatch                    PASS      4.39 seconds
> GitLint                       PASS      2.75 seconds
> Prep - Setup ELL              PASS      40.26 seconds
> Build - Prep                  PASS      0.45 seconds
> Build - Configure             PASS      7.46 seconds
> Build - Make                  PASS      174.06 seconds
> Make Check                    PASS      9.00 seconds
> Make Distcheck                PASS      211.98 seconds
> Build w/ext ELL - Configure   PASS      7.81 seconds
> Build w/ext ELL - Make        PASS      162.27 seconds
>
>
>
> ---
> Regards,
> Linux Bluetooth

Applied, thanks.

-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-10-08 21:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-08 19:36 [BlueZ PATCH v3 1/3] doc/tester-config: Enable Runtime Debugging Feature Tedd Ho-Jeong An
2021-10-08 19:36 ` [BlueZ PATCH v3 2/3] tools/mgmt-tester: Updates Experimental Feature test cases Tedd Ho-Jeong An
2021-10-08 19:36 ` [BlueZ PATCH v3 3/3] tools/mgmt-tester: Add more suspend/resume " Tedd Ho-Jeong An
2021-10-08 19:53 ` [BlueZ,v3,1/3] doc/tester-config: Enable Runtime Debugging Feature bluez.test.bot
2021-10-08 21:40   ` Luiz Augusto von Dentz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.