[gdb/testsuite] Fix FAILs in gdb.mi/mi-breakpoint-changed.exp

Message ID 20211005144645.GA29297@delia
State New
Headers show
Series
  • [gdb/testsuite] Fix FAILs in gdb.mi/mi-breakpoint-changed.exp
Related show

Commit Message

Mike Frysinger via Gdb-patches Oct. 5, 2021, 2:46 p.m.
Hi,

Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in
mi_gdb_test" we run into:
...
PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: mi runto main
Expecting: ^(-break-insert -f pendfunc1[^M
]+)?((&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,\
  bkpt=\{number="2",type="breakpoint".*\}.*\n\^done[^M
]+[(]gdb[)] ^M
[ ]*)
-break-insert -f pendfunc1^M
^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",\
  addr="0x00007ffff7bd559e",func="pendfunc1",\
  file="gdb/testsuite/gdb.mi/pendshr1.c",\
  fullname="gdb/testsuite/gdb.mi/pendshr1.c",line="21",thread-groups=["i1"],\
  times="0",original-location="pendfunc1"}^M
(gdb) ^M
FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \
  -break-insert -f pendfunc1 (unexpected output)
...

The regexp expects a breakpoint-created event, but that's actually suppressed
by the command:
...
DEF_MI_CMD_MI_1 ("break-insert", mi_cmd_break_insert,
                   &mi_suppress_notification.breakpoint),
...

Fix this by updating the regexp.

Likewise for the following:
...
PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \
  -break-insert -f pendfunc1
Expecting: ^(-break-enable count 1 2[^M
]+)?(=breakpoint-modified,\
  bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done[^M
]+[(]gdb[)] ^M
[ ]*)
-break-enable count 1 2^M
^done^M
(gdb) ^M
FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \
  -break-enable count 1 2 (unexpected out\
put)
...

Tested on x86_64-linux.

Any comments?

Thanks,
- Tom

[gdb/testsuite] Fix FAILs in gdb.mi/mi-breakpoint-changed.exp

---
 gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Mike Frysinger via Gdb-patches Oct. 22, 2021, 6:51 a.m. | #1
On 10/5/21 4:46 PM, Tom de Vries wrote:
> Hi,

> 

> Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in

> mi_gdb_test" we run into:

> ...

> PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: mi runto main

> Expecting: ^(-break-insert -f pendfunc1[^M

> ]+)?((&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,\

>   bkpt=\{number="2",type="breakpoint".*\}.*\n\^done[^M

> ]+[(]gdb[)] ^M

> [ ]*)

> -break-insert -f pendfunc1^M

> ^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",\

>   addr="0x00007ffff7bd559e",func="pendfunc1",\

>   file="gdb/testsuite/gdb.mi/pendshr1.c",\

>   fullname="gdb/testsuite/gdb.mi/pendshr1.c",line="21",thread-groups=["i1"],\

>   times="0",original-location="pendfunc1"}^M

> (gdb) ^M

> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>   -break-insert -f pendfunc1 (unexpected output)

> ...

> 

> The regexp expects a breakpoint-created event, but that's actually suppressed

> by the command:

> ...

> DEF_MI_CMD_MI_1 ("break-insert", mi_cmd_break_insert,

>                    &mi_suppress_notification.breakpoint),

> ...

> 

> Fix this by updating the regexp.

> 

> Likewise for the following:

> ...

> PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>   -break-insert -f pendfunc1

> Expecting: ^(-break-enable count 1 2[^M

> ]+)?(=breakpoint-modified,\

>   bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done[^M

> ]+[(]gdb[)] ^M

> [ ]*)

> -break-enable count 1 2^M

> ^done^M

> (gdb) ^M

> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>   -break-enable count 1 2 (unexpected out\

> put)

> ...

> 

> Tested on x86_64-linux.

> 

> Any comments?

> 


Ping.

Thanks,
- Tom

> [gdb/testsuite] Fix FAILs in gdb.mi/mi-breakpoint-changed.exp

> 

> ---

>  gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp

> index d068a25b9f4..4376bb883e6 100644

> --- a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp

> +++ b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp

> @@ -273,11 +273,11 @@ proc test_auto_disable { } {

>  

>      # Set the breakpoint.

>      mi_gdb_test "-break-insert -f pendfunc1" \

> -	{(&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,bkpt=\{number="2",type="breakpoint".*\}.*\n\^done}

> +	{\^done,bkpt=\{number="2",type="breakpoint".*\}.*}

>  

>      # Enable for one shot only.

>      mi_gdb_test "-break-enable count 1 2" \

> -	{=breakpoint-modified,bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done}

> +	{\^done}

>  

>      mi_send_resuming_command "exec-continue" "continuing execution to breakpoint"

>  

>
Mike Frysinger via Gdb-patches Oct. 22, 2021, 12:55 p.m. | #2
On 2021-10-05 10:46, Tom de Vries via Gdb-patches wrote:
> Hi,

> 

> Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in

> mi_gdb_test" we run into:

> ...

> PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: mi runto main

> Expecting: ^(-break-insert -f pendfunc1[^M

> ]+)?((&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,\

>   bkpt=\{number="2",type="breakpoint".*\}.*\n\^done[^M

> ]+[(]gdb[)] ^M

> [ ]*)

> -break-insert -f pendfunc1^M

> ^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",\

>   addr="0x00007ffff7bd559e",func="pendfunc1",\

>   file="gdb/testsuite/gdb.mi/pendshr1.c",\

>   fullname="gdb/testsuite/gdb.mi/pendshr1.c",line="21",thread-groups=["i1"],\

>   times="0",original-location="pendfunc1"}^M

> (gdb) ^M

> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>   -break-insert -f pendfunc1 (unexpected output)

> ...

> 

> The regexp expects a breakpoint-created event, but that's actually suppressed

> by the command:

> ...

> DEF_MI_CMD_MI_1 ("break-insert", mi_cmd_break_insert,

>                    &mi_suppress_notification.breakpoint),

> ...

> 

> Fix this by updating the regexp.

> 

> Likewise for the following:

> ...

> PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>   -break-insert -f pendfunc1

> Expecting: ^(-break-enable count 1 2[^M

> ]+)?(=breakpoint-modified,\

>   bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done[^M

> ]+[(]gdb[)] ^M

> [ ]*)

> -break-enable count 1 2^M

> ^done^M

> (gdb) ^M

> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>   -break-enable count 1 2 (unexpected out\

> put)

> ...

> 

> Tested on x86_64-linux.

> 

> Any comments?


So, the test used to wrongfully pass because mi_gdb_test was broken, and
fixing mi_gdb_test exposed that the test is wrong?  If so, this looks
good to me.

Simon
Mike Frysinger via Gdb-patches Oct. 22, 2021, 3:43 p.m. | #3
On 10/22/21 2:55 PM, Simon Marchi wrote:
> 

> 

> On 2021-10-05 10:46, Tom de Vries via Gdb-patches wrote:

>> Hi,

>>

>> Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in

>> mi_gdb_test" we run into:

>> ...

>> PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: mi runto main

>> Expecting: ^(-break-insert -f pendfunc1[^M

>> ]+)?((&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,\

>>   bkpt=\{number="2",type="breakpoint".*\}.*\n\^done[^M

>> ]+[(]gdb[)] ^M

>> [ ]*)

>> -break-insert -f pendfunc1^M

>> ^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",\

>>   addr="0x00007ffff7bd559e",func="pendfunc1",\

>>   file="gdb/testsuite/gdb.mi/pendshr1.c",\

>>   fullname="gdb/testsuite/gdb.mi/pendshr1.c",line="21",thread-groups=["i1"],\

>>   times="0",original-location="pendfunc1"}^M

>> (gdb) ^M

>> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>>   -break-insert -f pendfunc1 (unexpected output)

>> ...

>>

>> The regexp expects a breakpoint-created event, but that's actually suppressed

>> by the command:

>> ...

>> DEF_MI_CMD_MI_1 ("break-insert", mi_cmd_break_insert,

>>                    &mi_suppress_notification.breakpoint),

>> ...

>>

>> Fix this by updating the regexp.

>>

>> Likewise for the following:

>> ...

>> PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>>   -break-insert -f pendfunc1

>> Expecting: ^(-break-enable count 1 2[^M

>> ]+)?(=breakpoint-modified,\

>>   bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done[^M

>> ]+[(]gdb[)] ^M

>> [ ]*)

>> -break-enable count 1 2^M

>> ^done^M

>> (gdb) ^M

>> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \

>>   -break-enable count 1 2 (unexpected out\

>> put)

>> ...

>>

>> Tested on x86_64-linux.

>>

>> Any comments?

> 

> So, the test used to wrongfully pass because mi_gdb_test was broken, and

> fixing mi_gdb_test exposed that the test is wrong?


Yes, that's my understanding.

> If so, this looks

> good to me.


Thanks for the review, committed.
- Tom

Patch

diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
index d068a25b9f4..4376bb883e6 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
@@ -273,11 +273,11 @@  proc test_auto_disable { } {
 
     # Set the breakpoint.
     mi_gdb_test "-break-insert -f pendfunc1" \
-	{(&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,bkpt=\{number="2",type="breakpoint".*\}.*\n\^done}
+	{\^done,bkpt=\{number="2",type="breakpoint".*\}.*}
 
     # Enable for one shot only.
     mi_gdb_test "-break-enable count 1 2" \
-	{=breakpoint-modified,bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done}
+	{\^done}
 
     mi_send_resuming_command "exec-continue" "continuing execution to breakpoint"