diff mbox series

[BlueZ,v2] tools/mgmt-tester: Fix expected HCI command accounting

Message ID 20210604175913.256979-1-inga.stotland@intel.com
State New
Headers show
Series [BlueZ,v2] tools/mgmt-tester: Fix expected HCI command accounting | expand

Commit Message

Inga Stotland June 4, 2021, 5:59 p.m. UTC
This fixes test condition count in the expected HCI command
callback.

When the expected HCI opcode is detected, mark the condition
as done. Any subsequent HCI commands are ignored.

Without this fix, in couple of test cases where the expected HCI
command is detected more than once, the test may be erroneously
reported as a failure or prematurely declared as a success before
waiting on an expected MGMT event condition.

The test cases where this behavior is fixed:
Remove Ext Advertising - Success 1
Remove Ext Advertising - Success 2
---
 tools/mgmt-tester.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Luiz Augusto von Dentz June 5, 2021, 12:30 a.m. UTC | #1
Hi Inga,

On Fri, Jun 4, 2021 at 12:30 PM An, Tedd <tedd.an@intel.com> wrote:
>

> Hi Inga,

>

> On Fri, 2021-06-04 at 10:59 -0700, Inga Stotland wrote:

> > This fixes test condition count in the expected HCI command

> > callback.

> >

> > When the expected HCI opcode is detected, mark the condition

> > as done. Any subsequent HCI commands are ignored.

> >

> > Without this fix, in couple of test cases where the expected HCI

> > command is detected more than once, the test may be erroneously

> > reported as a failure or prematurely declared as a success before

> > waiting on an expected MGMT event condition.

> >

> > The test cases where this behavior is fixed:

> > Remove Ext Advertising - Success 1

> > Remove Ext Advertising - Success 2

>

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

>

> > ---

> >  tools/mgmt-tester.c | 5 ++++-

> >  1 file changed, 4 insertions(+), 1 deletion(-)

> >

> > diff --git a/tools/mgmt-tester.c b/tools/mgmt-tester.c

> > index c5073fe2b..6109883ad 100644

> > --- a/tools/mgmt-tester.c

> > +++ b/tools/mgmt-tester.c

> > @@ -52,6 +52,7 @@ struct test_data {

> >       uint16_t mgmt_index;

> >       struct hciemu *hciemu;

> >       enum hciemu_type hciemu_type;

> > +     bool expect_hci_command_done;

> >       int unmet_conditions;

> >       int unmet_setup_conditions;

> >       int sk;

> > @@ -7021,9 +7022,11 @@ 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 || data->unmet_conditions <= 0)

> > +     if (opcode != test->expect_hci_command || data->expect_hci_command_done)

> >               return;

> >

> > +     data->expect_hci_command_done = true;

> > +

> >       if (test->expect_hci_func)

> >               expect_hci_param = test->expect_hci_func(&expect_hci_len);

> >

>

> Regards,

> Tedd


Applied, thanks.

-- 
Luiz Augusto von Dentz
diff mbox series

Patch

diff --git a/tools/mgmt-tester.c b/tools/mgmt-tester.c
index c5073fe2b..6109883ad 100644
--- a/tools/mgmt-tester.c
+++ b/tools/mgmt-tester.c
@@ -52,6 +52,7 @@  struct test_data {
 	uint16_t mgmt_index;
 	struct hciemu *hciemu;
 	enum hciemu_type hciemu_type;
+	bool expect_hci_command_done;
 	int unmet_conditions;
 	int unmet_setup_conditions;
 	int sk;
@@ -7021,9 +7022,11 @@  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 || data->unmet_conditions <= 0)
+	if (opcode != test->expect_hci_command || data->expect_hci_command_done)
 		return;
 
+	data->expect_hci_command_done = true;
+
 	if (test->expect_hci_func)
 		expect_hci_param = test->expect_hci_func(&expect_hci_len);