diff options
author | Tom de Vries <tdevries@suse.de> | 2020-03-03 11:34:53 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-03-03 11:34:53 +0100 |
commit | 478e490a4df79436d678ca5f5f1d7c7ac7befa79 (patch) | |
tree | cbcc616dd1feaa61f03a193508ecaba1d6d97f34 /gdb/testsuite/gdb.mi | |
parent | 1ef44e861d58ba10674f107a79471852fbd27cda (diff) | |
download | gdb-478e490a4df79436d678ca5f5f1d7c7ac7befa79.zip gdb-478e490a4df79436d678ca5f5f1d7c7ac7befa79.tar.gz gdb-478e490a4df79436d678ca5f5f1d7c7ac7befa79.tar.bz2 |
[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.
Diffstat (limited to 'gdb/testsuite/gdb.mi')
-rw-r--r-- | gdb/testsuite/gdb.mi/gdb2549.exp | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.mi/gdb2549.exp b/gdb/testsuite/gdb.mi/gdb2549.exp index 0b4cb6b..cc6441c 100644 --- a/gdb/testsuite/gdb.mi/gdb2549.exp +++ b/gdb/testsuite/gdb.mi/gdb2549.exp @@ -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 |