diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-09-02 09:22:13 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-09-02 09:22:13 +0100 |
commit | 27aba0477a4818fd760accd5b29a210d0ade2f42 (patch) | |
tree | 0e54f603d93389dcbdfe06d99480c973d5e40d43 /gdb/testsuite/gdb.base/finish.exp | |
parent | db0a1c2b666b9612d77ee40b25875b286801f22d (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.exp | 5 |
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" } |