From 471ba8c90c7a40273fabd5821b1a10125463f3fa Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Tue, 2 Oct 2007 14:57:46 +0000 Subject: [PATCH] * 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. --- gdb/testsuite/ChangeLog | 12 ++++++++++++ gdb/testsuite/gdb.cp/classes.exp | 9 ++++++++- gdb/testsuite/gdb.mi/mi-return.exp | 3 ++- gdb/testsuite/gdb.mi/mi-simplerun.exp | 4 +++- gdb/testsuite/gdb.mi/mi-until.exp | 2 +- gdb/testsuite/gdb.mi/mi2-return.exp | 3 ++- gdb/testsuite/gdb.mi/mi2-simplerun.exp | 4 +++- gdb/testsuite/gdb.mi/mi2-until.exp | 2 +- 8 files changed, 32 insertions(+), 7 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 63d998dc1c2..4e319658157 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2007-10-02 Daniel Jacobowitz + + * 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 * gdb.mi/var-cmd.c (do_locals_tests): Define lcharacter as a diff --git a/gdb/testsuite/gdb.cp/classes.exp b/gdb/testsuite/gdb.cp/classes.exp index 60c163240b7..79a88d882a7 100644 --- a/gdb/testsuite/gdb.cp/classes.exp +++ b/gdb/testsuite/gdb.cp/classes.exp @@ -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" "" "" diff --git a/gdb/testsuite/gdb.mi/mi-return.exp b/gdb/testsuite/gdb.mi/mi-return.exp index f1e9921e716..b18c058c1e7 100644 --- a/gdb/testsuite/gdb.mi/mi-return.exp +++ b/gdb/testsuite/gdb.mi/mi-return.exp @@ -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)" } diff --git a/gdb/testsuite/gdb.mi/mi-simplerun.exp b/gdb/testsuite/gdb.mi/mi-simplerun.exp index 86eaf5f5755..d4f340913e7 100644 --- a/gdb/testsuite/gdb.mi/mi-simplerun.exp +++ b/gdb/testsuite/gdb.mi/mi-simplerun.exp @@ -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 {} { diff --git a/gdb/testsuite/gdb.mi/mi-until.exp b/gdb/testsuite/gdb.mi/mi-until.exp index 2da2a3e284c..59538ef359a 100644 --- a/gdb/testsuite/gdb.mi/mi-until.exp +++ b/gdb/testsuite/gdb.mi/mi-until.exp @@ -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 { diff --git a/gdb/testsuite/gdb.mi/mi2-return.exp b/gdb/testsuite/gdb.mi/mi2-return.exp index ef5c18ca000..65a60a8040a 100644 --- a/gdb/testsuite/gdb.mi/mi2-return.exp +++ b/gdb/testsuite/gdb.mi/mi2-return.exp @@ -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)" } diff --git a/gdb/testsuite/gdb.mi/mi2-simplerun.exp b/gdb/testsuite/gdb.mi/mi2-simplerun.exp index cc237de82aa..0c0e951c4a4 100644 --- a/gdb/testsuite/gdb.mi/mi2-simplerun.exp +++ b/gdb/testsuite/gdb.mi/mi2-simplerun.exp @@ -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 {} { diff --git a/gdb/testsuite/gdb.mi/mi2-until.exp b/gdb/testsuite/gdb.mi/mi2-until.exp index d9f3882ee7c..c7f3a3b1330 100644 --- a/gdb/testsuite/gdb.mi/mi2-until.exp +++ b/gdb/testsuite/gdb.mi/mi2-until.exp @@ -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 { -- 2.30.2