summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2020-03-03 11:34:53 +0100
committerTom de Vries <tdevries@suse.de>2020-03-03 11:34:53 +0100
commit478e490a4df79436d678ca5f5f1d7c7ac7befa79 (patch)
treecbcc616dd1feaa61f03a193508ecaba1d6d97f34 /gdb
parent1ef44e861d58ba10674f107a79471852fbd27cda (diff)
downloadbinutils-gdb-478e490a4df79436d678ca5f5f1d7c7ac7befa79.tar.gz
[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')
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.mi/gdb2549.exp33
2 files changed, 34 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 73a05d31435..0563fec5326 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,9 @@
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
gdb_test_multiple call.
diff --git a/gdb/testsuite/gdb.mi/gdb2549.exp b/gdb/testsuite/gdb.mi/gdb2549.exp
index 0b4cb6be387..cc6441c8ec0 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