diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/catch-syscall.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/catch-syscall.exp | 43 |
1 files changed, 29 insertions, 14 deletions
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 { } |