2021-10-08 05:44:43

by Tedd Ho-Jeong An

[permalink] [raw]
Subject: [BlueZ PATCH v2 1/3] doc/tester-config: Enable Runtime Debugging Feature

From: Tedd Ho-Jeong An <[email protected]>

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


2021-10-08 05:44:43

by Tedd Ho-Jeong An

[permalink] [raw]
Subject: [BlueZ PATCH v2 3/3] tools/mgmt-tester: Add more suspend/resume test cases

From: Tedd Ho-Jeong An <[email protected]>

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

diff --git a/tools/mgmt-tester.c b/tools/mgmt-tester.c
index 84d81c8ca..e5a3ad270 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[])
{
@@ -12497,6 +12625,35 @@ int main(int argc, char *argv[])
&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/Resume - 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("Suspend/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("Suspend/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

2021-10-08 06:44:19

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v2,1/3] doc/tester-config: Enable Runtime Debugging Feature

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

---Test result---

Test Summary:
CheckPatch FAIL 4.59 seconds
GitLint PASS 2.76 seconds
Prep - Setup ELL PASS 49.27 seconds
Build - Prep PASS 0.49 seconds
Build - Configure PASS 9.19 seconds
Build - Make PASS 213.69 seconds
Make Check PASS 9.35 seconds
Make Distcheck PASS 253.27 seconds
Build w/ext ELL - Configure PASS 9.30 seconds
Build w/ext ELL - Make PASS 203.23 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf
Output:
[BlueZ,v2,3/3] tools/mgmt-tester: Add more suspend/resume test cases
WARNING:LONG_LINE_STRING: line length of 84 exceeds 80 columns
#273: FILE: tools/mgmt-tester.c:12642:
+ test_bredrle50_full("Suspend/Resume - Success 9 (Discovery/Suspend/Resume)",

WARNING:LONG_LINE_STRING: line length of 84 exceeds 80 columns
#283: FILE: tools/mgmt-tester.c:12652:
+ test_bredrle50_full("Suspend/Resume - Success 10 (Multiple Suspend/Resume)",

/github/workspace/src/12544411.patch total: 0 errors, 2 warnings, 187 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/12544411.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.




---
Regards,
Linux Bluetooth