From b496de2c0218ee2b946acdd7d153334bf9a53022 Mon Sep 17 00:00:00 2001 From: Bob Rossi Date: Sun, 11 Sep 2005 20:24:54 +0000 Subject: [PATCH] 2005-09-11 Bob Rossi * lib/mi-support.exp (mi_gdb_test): Change -re to not be anchored. * gdb.mi/mi-syn-frame.exp: Call mi_gdb_test twice instead of once for commands that return an MI output command and an asyncronous MI output command. * gdb.mi/mi-console.exp: Ditto. --- gdb/testsuite/ChangeLog | 8 ++++++++ gdb/testsuite/gdb.mi/mi-console.exp | 11 ++--------- gdb/testsuite/gdb.mi/mi-syn-frame.exp | 11 ++++++----- gdb/testsuite/lib/mi-support.exp | 10 +++++++++- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 0a86994c5b..43a47bdf7d 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2005-09-11 Bob Rossi + * lib/mi-support.exp (mi_gdb_test): Change -re to not be anchored. + * gdb.mi/mi-syn-frame.exp: Call mi_gdb_test twice instead of once for + commands that return an MI output command and an asyncronous MI output + command. + * gdb.mi/mi-console.exp: Ditto. + +2005-09-11 Bob Rossi + * gdb.mi/mi-var-child.c: Include . 2005-09-10 Daniel Jacobowitz diff --git a/gdb/testsuite/gdb.mi/mi-console.exp b/gdb/testsuite/gdb.mi/mi-console.exp index 84ae35fb5d..55535f7a03 100644 --- a/gdb/testsuite/gdb.mi/mi-console.exp +++ b/gdb/testsuite/gdb.mi/mi-console.exp @@ -58,15 +58,8 @@ mi_gdb_test "47-exec-next" \ "47\\^running" \ "Testing console output" \ "Hello \\\\\"!\[\r\n\]+" - -gdb_expect { - -re "47\\*stopped.*$mi_gdb_prompt$" { - pass "Finished step over hello" - } - timeout { - fail "Finished step over hello (timeout)" - } -} +mi_gdb_test "" "47\\*stopped.*" "Finished step over hello" + mi_gdb_exit return 0 diff --git a/gdb/testsuite/gdb.mi/mi-syn-frame.exp b/gdb/testsuite/gdb.mi/mi-syn-frame.exp index 28a2f28b70..6648b3aff6 100644 --- a/gdb/testsuite/gdb.mi/mi-syn-frame.exp +++ b/gdb/testsuite/gdb.mi/mi-syn-frame.exp @@ -35,8 +35,6 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } -set my_mi_gdb_prompt "\\(gdb\\)\[ \]*\[\r\n\]*" - mi_gdb_exit mi_gdb_start separate-inferior-tty mi_delete_breakpoints @@ -61,10 +59,12 @@ mi_gdb_test "402-stack-list-frames" "402\\^done,stack=\\\[frame=\{level=\"0\",ad # Continue back to main() # mi_gdb_test "403-exec-continue" \ - "403\\^running\[\r\n\]+${my_mi_gdb_prompt}403\\\*stopped" \ + "403\\^running" \ "testing exec continue" \ "hi in foo\[\r\n\]\+" +mi_gdb_test "" "403\\*stopped" "finished exec continue" + mi_gdb_test "404-stack-list-frames 0 0" \ "404\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"main\",file=\".*mi-syn-frame.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$decimal\"\}.*\\\]" \ "list stack frames" @@ -91,8 +91,9 @@ mi_gdb_test "407-stack-list-frames" \ "list stack frames" -mi_gdb_test "408-exec-continue" \ - "408\\^running\[\r\n\]+${my_mi_gdb_prompt}408\\\*stopped" +mi_gdb_test "408-exec-continue" "408\\^running" + +mi_gdb_test "" "408\\*stopped.*" "finished exec continue" mi_gdb_test "409-stack-list-frames 0 0" \ "409\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"main\",file=\".*mi-syn-frame.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$decimal\"\}.*\\\]" \ diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index e1c7d77ba4..4c1d577227 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -659,7 +659,15 @@ proc mi_gdb_test { args } { gdb_start set result -1 } - -re "\[\r\n\]*($pattern)\[\r\n\]+$mi_gdb_prompt\[ \]*$" { + -re "\[\r\n\]*($pattern)\[\r\n\]+$mi_gdb_prompt\[ \]*" { + # NOTE, there is no trailing anchor because with GDB/MI, + # asynchronous responses can happen at any point, causing more + # data to be available. Normally an anchor is used to make + # sure the end of the output is matched, however, $mi_gdb_prompt + # is just as good of an anchor since mi_gdb_test is meant to + # match a single mi output command. If a second GDB/MI output + # response is sent, it will be in the buffer for the next + # time mi_gdb_test is called. if ![string match "" $message] then { pass "$message" } -- 2.11.0