aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog11
-rw-r--r--gdb/testsuite/gdb.base/stale-infcall.c7
-rw-r--r--gdb/testsuite/gdb.base/stale-infcall.exp18
-rw-r--r--gdb/testsuite/lib/gdb.exp2
4 files changed, 35 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2f4d131..44673d4 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2012-07-02 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.base/stale-infcall.c (infcall): New label test-next.
+ (main): New labels test-pass and test-fail.
+ * gdb.base/stale-infcall.exp: Continue to test-next. Put breakpoint
+ $test_fail_bpnum to test-fail.
+ (test system longjmp tracking support): New test.
+ Delete $test_fail_bpnum.
+ * lib/gdb.exp (gdb_continue_to_breakpoint): Accept also Temporary
+ breakpoint.
+
2012-06-30 Doug Evans <dje@google.com>
* gdb.dwarf2/fission-reread.S: New file.
diff --git a/gdb/testsuite/gdb.base/stale-infcall.c b/gdb/testsuite/gdb.base/stale-infcall.c
index 1f5169a..e4f97fa 100644
--- a/gdb/testsuite/gdb.base/stale-infcall.c
+++ b/gdb/testsuite/gdb.base/stale-infcall.c
@@ -26,7 +26,7 @@ static jmp_buf jmp;
void
infcall (void)
{
- longjmp (jmp, 1);
+ longjmp (jmp, 1); /* test-next */
}
static void
@@ -54,7 +54,10 @@ run2 (void)
int
main ()
{
- if (setjmp (jmp) == 0)
+ if (setjmp (jmp) == 0) /* test-pass */
+ infcall ();
+
+ if (setjmp (jmp) == 0) /* test-fail */
run1 ();
else
run2 ();
diff --git a/gdb/testsuite/gdb.base/stale-infcall.exp b/gdb/testsuite/gdb.base/stale-infcall.exp
index bb22339..9d73ebdb 100644
--- a/gdb/testsuite/gdb.base/stale-infcall.exp
+++ b/gdb/testsuite/gdb.base/stale-infcall.exp
@@ -23,6 +23,24 @@ if ![runto_main] {
return -1
}
+gdb_breakpoint [gdb_get_line_number "test-next"] temporary
+gdb_continue_to_breakpoint "test-next" ".* test-next .*"
+gdb_breakpoint [gdb_get_line_number "test-fail"]
+gdb_test_no_output {set $test_fail_bpnum=$bpnum}
+
+set test "test system longjmp tracking support"
+gdb_test_multiple "next" $test {
+ -re " test-pass .*\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re " test-fail .*\r\n$gdb_prompt $" {
+ xfail $test
+ untested "System lacks support for tracking longjmps"
+ return -1
+ }
+}
+gdb_test_no_output {delete $test_fail_bpnum}
+
gdb_breakpoint [gdb_get_line_number "break-run1"]
gdb_breakpoint [gdb_get_line_number "break-run2"]
gdb_breakpoint [gdb_get_line_number "break-exit"]
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 7cb619a..289d4d8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -469,7 +469,7 @@ proc gdb_continue_to_breakpoint {name {location_pattern .*}} {
send_gdb "continue\n"
gdb_expect {
- -re "Breakpoint .* (at|in) $location_pattern\r\n$gdb_prompt $" {
+ -re "(?:Breakpoint|Temporary breakpoint) .* (at|in) $location_pattern\r\n$gdb_prompt $" {
pass $full_name
}
-re ".*$gdb_prompt $" {