From: Tom de Vries Date: Tue, 3 Mar 2020 10:34:53 +0000 (+0100) Subject: [gdb/testsuite] Fix gdb.mi/gdb2549.exp with check-read1 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=478e490a4df79436d678ca5f5f1d7c7ac7befa79;p=binutils-gdb.git [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 * gdb.mi/gdb2549.exp: Fix "register values t" check-read1 timeout. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 73a05d31435..0563fec5326 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2020-03-03 Tom de Vries + + * gdb.mi/gdb2549.exp: Fix "register values t" check-read1 timeout. + 2020-03-03 Tom de Vries * gdb.mi/list-thread-groups-available.exp: Use -prompt syntax for 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