[gdb/testsuite] Fix FAIL in gdb.mi/mi-nsmoribund.exp

Message ID 20211005105408.GA30962@delia
State New
Headers show
Series
  • [gdb/testsuite] Fix FAIL in gdb.mi/mi-nsmoribund.exp
Related show

Commit Message

Philippe Waroquiers via Gdb-patches Oct. 5, 2021, 10:54 a.m.
Hi,

Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in
mi_gdb_test" we run into:
...
PASS: gdb.mi/mi-nsmoribund.exp: print done = 1
Expecting: ^(.*[^M
]+)?([^
]*^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"^M
\*running,thread-id="[0-9]+"[^M
]+[(]gdb[)] ^M
[ ]*)
103-exec-continue --all^M
=library-loaded,id="/lib64/libgcc_s.so.1",target-name="/lib64/libgcc_s.so.1",\
  host-name="/lib64/libgcc_s.so.1",symbols-loaded="0",thread-group="i1",\
  ranges=[{from="0x00007ffff22a5010",to="0x00007ffff22b6365"}]^M
103^running^M
*running,thread-id="5"^M
(gdb) ^M
FAIL: gdb.mi/mi-nsmoribund.exp: 103-exec-continue --all (unexpected output)
...

The regexp expect running messages for all threads, but we only get one for
thread 5.

The test-case uses non-stop mode, and when the exec-continue --all command is
issued, thread 5 is stopped and all other threads are running.  Consequently,
only thread 5 is resumed, and reported as running.

Fix this by updating the regexp.

Tested on x86_64-linux.

Any comments?

Thanks,
- Tom

[gdb/testsuite] Fix FAIL in gdb.mi/mi-nsmoribund.exp

---
 gdb/testsuite/gdb.mi/mi-nsmoribund.exp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Andrew Burgess Oct. 5, 2021, 1:32 p.m. | #1
* Tom de Vries <tdevries@suse.de> [2021-10-05 12:54:10 +0200]:

> Hi,

> 

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

> mi_gdb_test" we run into:

> ...

> PASS: gdb.mi/mi-nsmoribund.exp: print done = 1

> Expecting: ^(.*[^M

> ]+)?([^

> ]*^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"^M

> \*running,thread-id="[0-9]+"[^M

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

> [ ]*)

> 103-exec-continue --all^M

> =library-loaded,id="/lib64/libgcc_s.so.1",target-name="/lib64/libgcc_s.so.1",\

>   host-name="/lib64/libgcc_s.so.1",symbols-loaded="0",thread-group="i1",\

>   ranges=[{from="0x00007ffff22a5010",to="0x00007ffff22b6365"}]^M

> 103^running^M

> *running,thread-id="5"^M

> (gdb) ^M

> FAIL: gdb.mi/mi-nsmoribund.exp: 103-exec-continue --all (unexpected output)

> ...

> 

> The regexp expect running messages for all threads, but we only get one for

> thread 5.

> 

> The test-case uses non-stop mode, and when the exec-continue --all command is

> issued, thread 5 is stopped and all other threads are running.  Consequently,

> only thread 5 is resumed, and reported as running.

> 

> Fix this by updating the regexp.


That seems to make sense.  LGTM.

Thanks,
Andrew


> 

> Tested on x86_64-linux.

> 

> Any comments?

> 

> Thanks,

> - Tom

> 

> [gdb/testsuite] Fix FAIL in gdb.mi/mi-nsmoribund.exp

> 

> ---

>  gdb/testsuite/gdb.mi/mi-nsmoribund.exp | 6 +++++-

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

> 

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

> index 58de9591da8..73a8d1ac71b 100644

> --- a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp

> +++ b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp

> @@ -121,7 +121,11 @@ set re [list \

>  	    [string_list_to_regexp " = 1" \\ n {"} \r\n ^ done]]

>  set re [join $re ""]

>  mi_gdb_test "print done = 1" $re

> -mi_gdb_test "103-exec-continue --all" "\[^\n\]*\r\n$running_re"

> +

> +# Command exec-continue --all attempts to resume all threads, but only

> +# thread 5 was stopped, so only that one is reported as running.

> +set running_re "\\*running,thread-id=\"5\""

> +mi_gdb_test "103-exec-continue --all" "\[^\n\]*\r\n$running_re" \

>  

>  gdb_expect {

>      -re "\\*stopped,reason=\"exited-normally\"" {

Patch

diff --git a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
index 58de9591da8..73a8d1ac71b 100644
--- a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
@@ -121,7 +121,11 @@  set re [list \
 	    [string_list_to_regexp " = 1" \\ n {"} \r\n ^ done]]
 set re [join $re ""]
 mi_gdb_test "print done = 1" $re
-mi_gdb_test "103-exec-continue --all" "\[^\n\]*\r\n$running_re"
+
+# Command exec-continue --all attempts to resume all threads, but only
+# thread 5 was stopped, so only that one is reported as running.
+set running_re "\\*running,thread-id=\"5\""
+mi_gdb_test "103-exec-continue --all" "\[^\n\]*\r\n$running_re" \
 
 gdb_expect {
     -re "\\*stopped,reason=\"exited-normally\"" {