diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/catch-syscall.exp | 43 |
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 { } |