summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/finish.exp
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-09-02 09:22:13 +0100
committerYao Qi <yao.qi@linaro.org>2016-09-02 09:22:13 +0100
commit27aba0477a4818fd760accd5b29a210d0ade2f42 (patch)
tree0e54f603d93389dcbdfe06d99480c973d5e40d43 /gdb/testsuite/gdb.base/finish.exp
parentdb0a1c2b666b9612d77ee40b25875b286801f22d (diff)
Detect broken ptrace in gdb_skip_float_test
We recently found a ARM kernel ptrace bug http://lists.infradead.org/pipermail/linux-arm-kernel/2016-May/431962.html Details can be found in the comment in gdb_skip_float_test. We can skip floating point tests if the kernel bug is detected. This patch adds more code in gdb_skip_float_test to detect the broken ptrace on arm-linux. Such detection should be done at the beginning of the test, because it starts a fresh GDB, so change the test cases to invoke gdb_skip_float_test at the beginning of test, and use its return value afterwards. Since gdb_skip_float_test becomes a gdb_caching_proc, so it can't have an argument, this patch also removes argument "msg", which isn't useful. gdb/testsuite: 2016-09-02 Yao Qi <yao.qi@linaro.org> * gdb.arch/arm-neon.exp: Skip it if gdb_skip_float_test returns true. * gdb.base/call-ar-st.exp: Invoke gdb_skip_float_test. * gdb.base/call-rt-st.exp: Likewise. * gdb.base/call-sc.exp: Invoke gdb_skip_float_test and use its return value instead of gdb,skip_float_test. * gdb.base/callfuncs.exp: Invoke gdb_skip_float_test. (do_function_calls): Use its return value instead of gdb,skip_float_test. * gdb.base/finish.exp: Likewise. * gdb.base/funcargs.exp: Likewise. * gdb.base/return.exp: Likewise. * gdb.base/return2.exp: Likewise. * gdb.base/varargs.exp: Likewise. * lib/gdb.exp (gdb_skip_float_test): Change it to gdb_caching_proc. Detect the broken ptrace on arm-linux.
Diffstat (limited to 'gdb/testsuite/gdb.base/finish.exp')
-rw-r--r--gdb/testsuite/gdb.base/finish.exp5
1 files changed, 3 insertions, 2 deletions
diff --git a/gdb/testsuite/gdb.base/finish.exp b/gdb/testsuite/gdb.base/finish.exp
index 47bf6f881d..c5387bb2d0 100644
--- a/gdb/testsuite/gdb.base/finish.exp
+++ b/gdb/testsuite/gdb.base/finish.exp
@@ -15,6 +15,7 @@
# This file was written by Michael Snyder (msnyder@redhat.com)
+set skip_float_test [gdb_skip_float_test]
# re-use the program from the "return2" test.
if { [prepare_for_testing finish.exp finish return2.c] } {
@@ -86,7 +87,7 @@ proc finish_abbreviation { abbrev } {
}
proc finish_tests { } {
- global gdb_prompt
+ global gdb_prompt skip_float_test
if { ! [ runto_main ] } then {
untested finish.exp
@@ -99,7 +100,7 @@ proc finish_tests { } {
finish_1 "int"
finish_1 "long"
finish_1 "long_long"
- if ![target_info exists gdb,skip_float_tests] {
+ if {!$skip_float_test} {
finish_1 "float"
finish_1 "double"
}