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.
This commit is contained in:
Bob Rossi 2005-09-11 20:24:54 +00:00
parent 3c7385ece0
commit 40e55befbf
4 changed files with 25 additions and 15 deletions

View File

@ -1,3 +1,11 @@
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>.

View File

@ -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

View File

@ -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\"\}.*\\\]" \

View File

@ -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"
}