Detect broken ptrace in gdb_skip_float_test
authorYao Qi <yao.qi@linaro.org>
Fri, 2 Sep 2016 08:22:13 +0000 (09:22 +0100)
committerYao Qi <yao.qi@linaro.org>
Fri, 2 Sep 2016 08:22:13 +0000 (09:22 +0100)
commit27aba0477a4818fd760accd5b29a210d0ade2f42
tree0e54f603d93389dcbdfe06d99480c973d5e40d43
parentdb0a1c2b666b9612d77ee40b25875b286801f22d
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.
12 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/arm-neon.exp
gdb/testsuite/gdb.base/call-ar-st.exp
gdb/testsuite/gdb.base/call-rt-st.exp
gdb/testsuite/gdb.base/call-sc.exp
gdb/testsuite/gdb.base/callfuncs.exp
gdb/testsuite/gdb.base/finish.exp
gdb/testsuite/gdb.base/funcargs.exp
gdb/testsuite/gdb.base/return.exp
gdb/testsuite/gdb.base/return2.exp
gdb/testsuite/gdb.base/varargs.exp
gdb/testsuite/lib/gdb.exp