tools/mgmt-tester: Fix "Remove Ext Advertising" case
authorInga Stotland <inga.stotland@intel.com>
Wed, 19 May 2021 21:19:07 +0000 (14:19 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:35 +0000 (19:08 +0530)
This fixes the expected behavior of the following test case:
"Remove Ext Advertising - Success 1", when the fail status
was erroneously overwritten with success:

<log snip>
  New Advertising Removed event received
  Test condition complete, 2 left
  HCI Command 0x2039 length 6
  Invalid parameter size for HCI command
Remove Ext Advertising - Success 1 - test failed
  HCI Command 0x203c length 1
  HCI Command 0x2039 length 2
  Test condition complete, 1 left
  Remove Advertising (0x003f): Success (0x00)
  Test condition complete, 0 left
Remove Ext Advertising - Success 1 - test passed

The expected HCI command to disable extended advertisement for a
non-zero number of sets should contain the specified number the
advertising sets.
In this particular test case, number of sets is set to 1 and,
as a result, the expected HCI command should be:
"00      | 01             | 01 00 00 00"
 disable | number of sets | set info

Also, to avoid false positives/negatives, skip exmination of HCI
commands after the test conditions are met.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
tools/mgmt-tester.c

index 973e596..c9de770 100755 (executable)
@@ -6893,7 +6893,7 @@ static void command_hci_callback(uint16_t opcode, const void *param,
 
        tester_print("HCI Command 0x%04x length %u", opcode, length);
 
-       if (opcode != test->expect_hci_command)
+       if (opcode != test->expect_hci_command || data->unmet_conditions <= 0)
                return;
 
        if (test->expect_hci_func)
@@ -7942,6 +7942,10 @@ static const char set_ext_adv_disable_param[] = {
        0x00, 0x00,
 };
 
+static const char set_ext_adv_disable_param_1[] = {
+       0x00, 0x01, 0x01, 0x00, 0x00, 0x00
+};
+
 static const struct generic_data add_ext_advertising_timeout_expired = {
        .expect_alt_ev = MGMT_EV_ADVERTISING_REMOVED,
        .expect_alt_ev_param = advertising_instance1_param,
@@ -7969,8 +7973,8 @@ static const struct generic_data remove_ext_advertising_success_1 = {
        .expect_alt_ev_param = advertising_instance1_param,
        .expect_alt_ev_len = sizeof(advertising_instance1_param),
        .expect_hci_command = BT_HCI_CMD_LE_SET_EXT_ADV_ENABLE,
-       .expect_hci_param = set_ext_adv_disable_param,
-       .expect_hci_len = sizeof(set_ext_adv_disable_param),
+       .expect_hci_param = set_ext_adv_disable_param_1,
+       .expect_hci_len = sizeof(set_ext_adv_disable_param_1),
 };
 
 static const struct generic_data remove_ext_advertising_success_2 = {