summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Rossi <bob@brasko.net>2005-09-11 20:24:54 +0000
committerBob Rossi <bob@brasko.net>2005-09-11 20:24:54 +0000
commitb496de2c0218ee2b946acdd7d153334bf9a53022 (patch)
treef6d4a6f21a11e3c57c6ff312137fed131a93c341
parentdaf2213b2b4f72bdf34c70a905f7b172cbe8e65d (diff)
downloadgdb-b496de2c0218ee2b946acdd7d153334bf9a53022.tar.gz
2005-09-11 Bob Rossi <bob@brasko.net>
* 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.
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.mi/mi-console.exp11
-rw-r--r--gdb/testsuite/gdb.mi/mi-syn-frame.exp11
-rw-r--r--gdb/testsuite/lib/mi-support.exp10
4 files changed, 25 insertions, 15 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 0a86994c5b1..43a47bdf7d1 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,13 @@
2005-09-11 Bob Rossi <bob@brasko.net>
+ * 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 <bob@brasko.net>
+
* gdb.mi/mi-var-child.c: Include <string.h>.
2005-09-10 Daniel Jacobowitz <dan@codesourcery.com>
diff --git a/gdb/testsuite/gdb.mi/mi-console.exp b/gdb/testsuite/gdb.mi/mi-console.exp
index 84ae35fb5d4..55535f7a037 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 28a2f28b706..6648b3aff69 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 e1c7d77ba48..4c1d5772271 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"
}