* gdb.cp/classes.exp (do_tests): Always step to the line after the

call.
	* gdb.mi/mi-simplerun.exp (test_controlled_execution): Allow finish
	to return to the call.
	* gdb.mi/mi2-simplerun.exp (test_controlled_execution): Likewise.
	* gdb.mi/mi-return.exp (test_return_simple): Likewise.
	* gdb.mi/mi2-return.exp (test_return_simple): Likewise.
	* gdb.mi/mi-until.exp (test_until): Likewise.
	* gdb.mi/mi2-until.exp (test_until): Likewise.
This commit is contained in:
Daniel Jacobowitz 2007-10-02 14:57:46 +00:00
parent e42e4a8b9e
commit 471ba8c90c
8 changed files with 32 additions and 7 deletions

View File

@ -1,3 +1,15 @@
2007-10-02 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.cp/classes.exp (do_tests): Always step to the line after the
call.
* gdb.mi/mi-simplerun.exp (test_controlled_execution): Allow finish
to return to the call.
* gdb.mi/mi2-simplerun.exp (test_controlled_execution): Likewise.
* gdb.mi/mi-return.exp (test_return_simple): Likewise.
* gdb.mi/mi2-return.exp (test_return_simple): Likewise.
* gdb.mi/mi-until.exp (test_until): Likewise.
* gdb.mi/mi2-until.exp (test_until): Likewise.
2007-10-01 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.mi/var-cmd.c (do_locals_tests): Define lcharacter as a

View File

@ -581,7 +581,14 @@ proc do_tests {} {
gdb_breakpoint enums2
gdb_test "continue" ".*Breakpoint .* enums2.*" "continue to enums2(\\(\\)|)"
gdb_test "finish" "" ""
# Leave enums2. Make sure we reach the next line, in case there
# are any more instructions to finish the function call.
gdb_test_multiple "finish" "" {
-re "enums2 \\(\\);.*$gdb_prompt $" {
gdb_test "next" "" ""
}
-re "$gdb_prompt $" { }
}
test_enums
gdb_test "finish" "" ""

View File

@ -50,11 +50,12 @@ proc test_return_simple {} {
global hex fullname_syntax srcfile
set line_callee3_head [gdb_get_line_number "callee3 ("]
set line_callee3_call [expr $line_callee3_head + 2]
set line_callee3_close_brace [expr $line_callee3_head + 3]
send_gdb "111-exec-return\n"
gdb_expect {
-re "111\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee3\",args=\\\[.*\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee3_close_brace\"\}\r\n$mi_gdb_prompt$" {pass "return from callee4 now"}
-re "111\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee3\",args=\\\[.*\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"($line_callee3_call|$line_callee3_close_brace)\"\}\r\n$mi_gdb_prompt$" {pass "return from callee4 now"}
-re ".*\r\n$mi_gdb_prompt$" { fail "return from callee4 now" }
timeout { fail "return from callee4 now (timeout)"
}

View File

@ -130,6 +130,7 @@ proc test_controlled_execution {} {
set line_callee4_head [gdb_get_line_number "callee4 ("]
set line_callee4_body [expr $line_callee4_head + 2]
set line_callee3_head [gdb_get_line_number "callee3 ("]
set line_callee3_call [expr $line_callee3_head + 2]
set line_callee3_close_brace [expr $line_callee3_head + 3]
set line_callee1_head [gdb_get_line_number "callee1 ("]
set line_callee1_body [expr $line_callee1_head + 2]
@ -162,7 +163,8 @@ proc test_controlled_execution {} {
# FIXME: A string argument is not printed right; should be fixed and
# we should look for the right thing here.
# NOTE: The ``.'' is part of ``gdb-result-var="$1"''
mi_finish_to "callee3" ".*" "basics.c" $line_callee3_close_brace ".1" "0" "exec-finish"
mi_finish_to "callee3" ".*" "basics.c" \
"($line_callee3_call|$line_callee3_close_brace)" ".1" "0" "exec-finish"
}
proc test_controlling_breakpoints {} {

View File

@ -113,7 +113,7 @@ proc test_until {} {
send_gdb "444-exec-until until.c:25\n"
gdb_expect {
-re "444\\^running\r\n${mi_gdb_prompt}444\\*stopped,reason=\"location-reached\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"24\"\}\r\n$mi_gdb_prompt$" {
-re "444\\^running\r\n${mi_gdb_prompt}444\\*stopped,reason=\"location-reached\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(23|24)\"\}\r\n$mi_gdb_prompt$" {
pass "until after current function"
}
timeout {

View File

@ -50,11 +50,12 @@ proc test_return_simple {} {
global hex fullname_syntax srcfile
set line_callee3_head [gdb_get_line_number "callee3 ("]
set line_callee3_call [expr $line_callee3_head + 2]
set line_callee3_close_brace [expr $line_callee3_head + 3]
send_gdb "111-exec-return\n"
gdb_expect {
-re "111\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee3\",args=\\\[.*\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee3_close_brace\"\}\r\n$mi_gdb_prompt$" {pass "return from callee4 now"}
-re "111\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee3\",args=\\\[.*\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"($line_callee3_call|$line_callee3_close_brace)\"\}\r\n$mi_gdb_prompt$" {pass "return from callee4 now"}
-re ".*\r\n$mi_gdb_prompt$" { fail "return from callee4 now" }
timeout { fail "return from callee4 now (timeout)"
}

View File

@ -131,6 +131,7 @@ proc test_controlled_execution {} {
set line_callee4_head [gdb_get_line_number "callee4 ("]
set line_callee4_body [expr $line_callee4_head + 2]
set line_callee3_head [gdb_get_line_number "callee3 ("]
set line_callee3_call [expr $line_callee3_head + 2]
set line_callee3_close_brace [expr $line_callee3_head + 3]
set line_callee1_head [gdb_get_line_number "callee1 ("]
set line_callee1_body [expr $line_callee1_head + 2]
@ -163,7 +164,8 @@ proc test_controlled_execution {} {
# FIXME: A string argument is not printed right; should be fixed and
# we should look for the right thing here.
# NOTE: The ``.'' is part of ``gdb-result-var="$1"''
mi_finish_to "callee3" ".*" "basics.c" $line_callee3_close_brace ".1" "0" "exec-finish"
mi_finish_to "callee3" ".*" "basics.c" \
"($line_callee3_call|$line_callee3_close_brace)" ".1" "0" "exec-finish"
}
proc test_controlling_breakpoints {} {

View File

@ -113,7 +113,7 @@ proc test_until {} {
send_gdb "444-exec-until until.c:25\n"
gdb_expect {
-re "444\\^running\r\n${mi_gdb_prompt}444\\*stopped,reason=\"location-reached\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"24\"\}\r\n$mi_gdb_prompt$" {
-re "444\\^running\r\n${mi_gdb_prompt}444\\*stopped,reason=\"location-reached\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(23|24)\"\}\r\n$mi_gdb_prompt$" {
pass "until after current function"
}
timeout {