[gdb/testsuite] Fix gdb.mi/gdb2549.exp with check-read1

When running gdb.mi/gdb2549.exp with check-read1, we get:
...
Running src/gdb/testsuite/gdb.mi/gdb2549.exp ...
FAIL: gdb.mi/gdb2549.exp: register values t (timeout)
...

The problem is that the command generates a lot of output, which is matched by
a single '.*':
...
mi_gdb_test "666-data-list-register-values t" \
  "666\\^done,register-values=\\\[\{number=\"$decimal\",value=\"$binary\"\}.*\\\]" \
  "register values t"
...

Fix this by splitting up the matching and calling exp_continue after each
number/value pair.

Tested on x86_64-linux with make targets check and check-read1.

gdb/testsuite/ChangeLog:

2020-03-03  Tom de Vries  <tdevries@suse.de>

	* gdb.mi/gdb2549.exp: Fix "register values t" check-read1 timeout.
This commit is contained in:
Tom de Vries 2020-03-03 11:34:53 +01:00
parent 1ef44e861d
commit 478e490a4d
2 changed files with 34 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2020-03-03 Tom de Vries <tdevries@suse.de>
* gdb.mi/gdb2549.exp: Fix "register values t" check-read1 timeout.
2020-03-03 Tom de Vries <tdevries@suse.de>
* gdb.mi/list-thread-groups-available.exp: Use -prompt syntax for

View File

@ -51,6 +51,7 @@ proc register_tests_no_exec { } {
proc register_tests { } {
global hex
global decimal
global mi_gdb_prompt
set octal "\[0-7\]+"
set binary "\[0-1\]+"
set float "\\-?((\[0-9\]+(\\.\[0-9\]+)?(e\[-+\]\[0-9\]+)?)|(nan\\($hex\\)))"
@ -71,9 +72,35 @@ proc register_tests { } {
"555\\^done,register-values=\\\[\{number=\"$decimal\",value=\"$octal\"\}.*\\\]" \
"register values o"
mi_gdb_test "666-data-list-register-values t" \
"666\\^done,register-values=\\\[\{number=\"$decimal\",value=\"$binary\"\}.*\\\]" \
"register values t"
set cmd "666-data-list-register-values t"
set test "register values t"
set state 0
gdb_test_multiple $cmd $test -prompt "$mi_gdb_prompt$" {
-re "666\\^done,register-values=\\\[" {
if { $state == 0 } {
set state 1
exp_continue
}
fail $gdb_test_name
}
-re "\{number=\"$decimal\",value=\"$binary\"\}" {
if { $state != 0 } {
set state 2
exp_continue
}
fail $gdb_test_name
}
-re "\{number=\"$decimal\",value=\"\[^\"\]*\"\}" {
exp_continue
}
-re "\]\r\n$mi_gdb_prompt$" {
if { $state == 2 } {
pass $gdb_test_name
} else {
fail $gdb_test_name
}
}
}
}
register_tests_no_exec