RFC: fix python-selftest.exp failure (Was: new FAIL python-selftest.exp in gdbserver mode [Re: [PATCH 18/28] check gdb_python_initialized everywhere])

Tom Tromey
2013-06-17T16:51:27Z

Jan> in gdbserver mode:
Jan> Running gdb/testsuite/gdb.gdb/python-selftest.exp ...
Jan> PASS: gdb.gdb/python-selftest.exp: breakpoint in captured_command_loop
Jan> ERROR: tcl error sourcing gdb/testsuite/gdb.gdb/python-selftest.exp.
Jan> ERROR: gdbserver does not support run -nw -nx -data-directory /unsafegdb/testsuite.unix.-m64/../data-directory without extended-remote
[...]

python-selftest.exp fails with an error when using the
native-gdbserver.exp board.

The bug is that the selftest code doesn't work in this situation. It
never has.

This patch fixes the problem by pushing the needed check into
do_self_tests. This helps prevent the problem in the future.

* lib/selftest-support.exp (do_self_tests): Reject remote or
non-native targets.
* gdb.gdb/complaints.exp: Remove check.
* gdb.gdb/observer.exp: Remove check.
* gdb.gdb/xfullpath.exp: Remove check.
* gdb.gdb/complaints.exp: Remove check.
---
gdb/testsuite/gdb.gdb/complaints.exp | 5 -----
gdb/testsuite/gdb.gdb/observer.exp | 5 -----
gdb/testsuite/gdb.gdb/xfullpath.exp | 5 -----
gdb/testsuite/lib/selftest-support.exp | 5 +++++
4 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/gdb/testsuite/gdb.gdb/complaints.exp b/gdb/testsuite/gdb.gdb/complaints.exp
index 932dfd5..e5f6e4a 100644
--- a/gdb/testsuite/gdb.gdb/complaints.exp
+++ b/gdb/testsuite/gdb.gdb/complaints.exp
@@ -19,11 +19,6 @@

load_lib selftest-support.exp

-# are we on a target board
-if { [is_remote target] || ![isnative] } then {
- return
-}
-
if [target_info exists gdb,noinferiorio] {
verbose "Skipping because of no inferiorio capabilities."
return
diff --git a/gdb/testsuite/gdb.gdb/observer.exp b/gdb/testsuite/gdb.gdb/observer.exp
index 32030d8..b70c2b1 100644
--- a/gdb/testsuite/gdb.gdb/observer.exp
+++ b/gdb/testsuite/gdb.gdb/observer.exp
@@ -18,11 +18,6 @@

load_lib selftest-support.exp

-# are we on a target board
-if { [is_remote target] || ![isnative] } then {
- return
-}
-
proc attach_first_observer { message } {
gdb_test_no_output "set \$first_obs = observer_attach_test_notification (&observer_test_first_notification_function)" \
"$message; attach first observer"
diff --git a/gdb/testsuite/gdb.gdb/xfullpath.exp b/gdb/testsuite/gdb.gdb/xfullpath.exp
index 5bc01c6..d758a18 100644
--- a/gdb/testsuite/gdb.gdb/xfullpath.exp
+++ b/gdb/testsuite/gdb.gdb/xfullpath.exp
@@ -18,11 +18,6 @@

load_lib selftest-support.exp

-# are we on a target board
-if { [is_remote target] || ![isnative] } then {
- return
-}
-
proc test_with_self {} {
# A file which contains a directory prefix
gdb_test "print gdb_realpath (\"./xfullpath.exp\")" \
diff --git a/gdb/testsuite/lib/selftest-support.exp b/gdb/testsuite/lib/selftest-support.exp
index c375849..fc4bccc 100644
--- a/gdb/testsuite/lib/selftest-support.exp
+++ b/gdb/testsuite/lib/selftest-support.exp
@@ -119,6 +119,11 @@ proc selftest_setup { executable function } {
proc do_self_tests {function body} {
global GDB tool

+ # Are we on a target board.
+ if { [is_remote target] || ![isnative] } then {
+ return
+ }
+
# Run the test with self. Copy the file executable file in case
# this OS doesn't like to edit its own text space.

--
1.8.1.4