aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/sigaltstack.exp29
2 files changed, 28 insertions, 7 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3cc7d2a..c373022 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2004-08-08 Daniel Jacobowitz <dan@debian.org>
+ PR gdb/1736
+ * gdb.base/sigaltstack.exp (finish_test): New procedure. KFAIL
+ for i?86-*-linux*.
+
+2004-08-08 Daniel Jacobowitz <dan@debian.org>
+
* gdb.arch/i386-prologue.exp: Compile without debug information.
2004-08-08 Michael Chastain <mec.gnu@mindspring.com>
diff --git a/gdb/testsuite/gdb.base/sigaltstack.exp b/gdb/testsuite/gdb.base/sigaltstack.exp
index 8f09ccf..3b32d08 100644
--- a/gdb/testsuite/gdb.base/sigaltstack.exp
+++ b/gdb/testsuite/gdb.base/sigaltstack.exp
@@ -78,11 +78,26 @@ gdb_expect_list "backtrace" ".*$gdb_prompt $" {
"\[\r\n\]+.7 \[^\r\n\]* main .*"
}
+proc finish_test { pattern msg } {
+ gdb_test_multiple "finish" $msg {
+ -re "Cannot insert breakpoint 0" {
+ # Some platforms use a special read-only page for signal
+ # trampolines. We can't set a breakpoint there, and we
+ # don't gracefully fall back to single-stepping.
+ setup_kfail "i?86-*-linux*" gdb/1736
+ fail "$msg (could not set breakpoint)"
+ }
+ -re "$pattern" {
+ pass $msg
+ }
+ }
+}
+
# Finish?
-gdb_test "finish" "signal handler called." "finish from catch LEAF"
-gdb_test "finish" "thrower .next_level=INNER, .*" "finish to throw INNER"
-gdb_test "finish" "catcher .*" "finish to catch INNER"
-gdb_test "finish" "signal handler called.*" "finish from catch INNER"
-gdb_test "finish" "thrower .next_level=OUTER, .*" "finish to OUTER"
-gdb_test "finish" "catcher .*" "finish to catch MAIN"
-gdb_test "finish" "main .*" "finish to MAIN"
+finish_test "signal handler called." "finish from catch LEAF"
+finish_test "thrower .next_level=INNER, .*" "finish to throw INNER"
+finish_test "catcher .*" "finish to catch INNER"
+finish_test "signal handler called.*" "finish from catch INNER"
+finish_test "thrower .next_level=OUTER, .*" "finish to OUTER"
+finish_test "catcher .*" "finish to catch MAIN"
+finish_test "main .*" "finish to MAIN"