summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2008-09-05 21:06:25 +0000
committerMichael Snyder <msnyder@specifix.com>2008-09-05 21:06:25 +0000
commitde494e51c8bc8d8826e0df9cf7441016538837dd (patch)
tree7cb3fc9fc3453c84119043c3e42e1aa01403378c
parent2241959b1863c95d6241084e9e51d0278b054c06 (diff)
downloadgdb-de494e51c8bc8d8826e0df9cf7441016538837dd.tar.gz
expand
-rw-r--r--gdb/testsuite/gdb.twreverse/finish-reverse.exp102
1 files changed, 94 insertions, 8 deletions
diff --git a/gdb/testsuite/gdb.twreverse/finish-reverse.exp b/gdb/testsuite/gdb.twreverse/finish-reverse.exp
index 078adf4de6d..a25bc41175b 100644
--- a/gdb/testsuite/gdb.twreverse/finish-reverse.exp
+++ b/gdb/testsuite/gdb.twreverse/finish-reverse.exp
@@ -100,6 +100,63 @@ gdb_test_multiple "finish" "$test_msg" {
}
}
+# Test finish from short func
+
+set breakloc [gdb_get_line_number "SHORT FUNC" "$srcfile"]
+gdb_test "break short_func" \
+ "Breakpoint $decimal at .* line $breakloc\." \
+ "set breakpoint on short_func"
+gdb_continue_to_breakpoint "short_func" ".*/$srcfile:$breakloc"
+
+set test_msg "finish from short_func"
+gdb_test_multiple "finish" "$test_msg" {
+ -re "char_checkpoint" {
+ send_gdb "step\n"
+ exp_continue
+ }
+ -re "short_checkpoint" {
+ pass "$test_msg"
+ }
+}
+
+# Test finish from int func
+
+set breakloc [gdb_get_line_number "INT FUNC" "$srcfile"]
+gdb_test "break int_func" \
+ "Breakpoint $decimal at .* line $breakloc\." \
+ "set breakpoint on int_func"
+gdb_continue_to_breakpoint "int_func" ".*/$srcfile:$breakloc"
+
+set test_msg "finish from int_func"
+gdb_test_multiple "finish" "$test_msg" {
+ -re "short_checkpoint" {
+ send_gdb "step\n"
+ exp_continue
+ }
+ -re "int_checkpoint" {
+ pass "$test_msg"
+ }
+}
+
+# Test finish from lnog func
+
+set breakloc [gdb_get_line_number "LONG FUNC" "$srcfile"]
+gdb_test "break long_func" \
+ "Breakpoint $decimal at .* line $breakloc\." \
+ "set breakpoint on long_func"
+gdb_continue_to_breakpoint "long_func" ".*/$srcfile:$breakloc"
+
+set test_msg "finish from long_func"
+gdb_test_multiple "finish" "$test_msg" {
+ -re "int_checkpoint" {
+ send_gdb "step\n"
+ exp_continue
+ }
+ -re "long_checkpoint" {
+ pass "$test_msg"
+ }
+}
+
###
###
@@ -108,6 +165,42 @@ gdb_test_multiple "finish" "$test_msg" {
# Now switch to reverse
gdb_test "set exec-dir reverse" "" "set reverse execution"
+# Test reverse finish from long func
+
+set breakloc [gdb_get_line_number "LONG FUNC" "$srcfile"]
+gdb_continue_to_breakpoint "long_func" ".*/$srcfile:$breakloc"
+
+set test_msg "reverse finish from long_func"
+gdb_test_multiple "finish" "$test_msg" {
+ -re ".*int_checkpoint.*$gdb_prompt $" {
+ test_start_of_line "int_checkpoint" "$test_msg"
+ }
+}
+
+# Test reverse finish from int func
+
+set breakloc [gdb_get_line_number "INT FUNC" "$srcfile"]
+gdb_continue_to_breakpoint "int_func" ".*/$srcfile:$breakloc"
+
+set test_msg "reverse finish from int_func"
+gdb_test_multiple "finish" "$test_msg" {
+ -re ".*short_checkpoint.*$gdb_prompt $" {
+ test_start_of_line "short_checkpoint" "$test_msg"
+ }
+}
+
+# Test reverse finish from short func
+
+set breakloc [gdb_get_line_number "SHORT FUNC" "$srcfile"]
+gdb_continue_to_breakpoint "short_func" ".*/$srcfile:$breakloc"
+
+set test_msg "reverse finish from short_func"
+gdb_test_multiple "finish" "$test_msg" {
+ -re ".*char_checkpoint.*$gdb_prompt $" {
+ test_start_of_line "char_checkpoint" "$test_msg"
+ }
+}
+
# Test reverse finish from char func
set breakloc [gdb_get_line_number "CHAR FUNC" "$srcfile"]
@@ -126,17 +219,10 @@ set breakloc [gdb_get_line_number "VOID FUNC" "$srcfile"]
gdb_continue_to_breakpoint "void_func" ".*/$srcfile:$breakloc"
set test_msg "reverse finish from void_func"
-send_gdb "finish\n"
-gdb_expect {
+gdb_test_multiple "finish" "$test_msg" {
-re ".*call to void_func.*$gdb_prompt $" {
test_start_of_line "call to void_func" "$test_msg"
}
- -re ".*$gdb_prompt $" {
- fail "$test_msg"
- }
- timeout {
- fail "$test_msg (timeout)"
- }
}