aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/catch-syscall.exp43
2 files changed, 35 insertions, 14 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b7e30f5..8ce6ee8 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-06-28 Yao Qi <yao.qi@linaro.org>
+
+ * gdb.base/catch-syscall.exp: Remove check on isnative and target
+ triplets. Start gdb, execute catch syscall, and continue. Check
+ gdb's output to determine catch syscall is supported.
+
2016-06-27 Manish Goregaokar <manish@mozilla.com>
* gdb.rust/simple.rs: Add test for returning unit in a function
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index 5679000..f3ab6cb 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -19,20 +19,6 @@
# It was written by Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
# on September/2008.
-if { ![isnative] } then {
- continue
-}
-
-# This shall be updated whenever 'catch syscall' is implemented
-# on some architecture.
-if { ![istarget "x86_64-*-linux*"] && ![istarget "i\[34567\]86-*-linux*"]
- && ![istarget "powerpc-*-linux*"] && ![istarget "powerpc64-*-linux*"]
- && ![istarget "sparc-*-linux*"] && ![istarget "sparc64-*-linux*"]
- && ![istarget "mips*-linux*"] && ![istarget "arm*-linux*"]
- && ![istarget "s390*-linux*"] && ![istarget "aarch64*-*-linux*"] } {
- continue
-}
-
standard_testfile
if { [prepare_for_testing ${testfile}.exp $testfile ${testfile}.c] } {
@@ -40,6 +26,35 @@ if { [prepare_for_testing ${testfile}.exp $testfile ${testfile}.c] } {
return -1
}
+# Check target supports catch syscall or not.
+clean_restart $binfile
+if ![runto_main] then {
+ fail "Can't run to main"
+ return
+}
+
+set test "catch syscall"
+gdb_test_multiple $test $test {
+ -re "The feature \'catch syscall\' is not supported.*\r\n$gdb_prompt $" {
+ unsupported "catch syscall isn't supported"
+ return -1
+ }
+ -re ".*$gdb_prompt $" {
+ pass $test
+ }
+}
+
+set test "check catch syscall"
+gdb_test_multiple "continue" $test {
+ -re ".*Your system does not support this type\r\nof catchpoint.*$gdb_prompt $" {
+ unsupported "catch syscall isn't supported"
+ return -1
+ }
+ -re ".*Catchpoint.*$gdb_prompt $" {
+ pass $test
+ }
+}
+
# All (but the last) syscalls from the example code. It is filled in
# proc setup_all_syscalls.
set all_syscalls { }