Don't run gdb.gdb/ selftests if use_gdb_stub is true

If we make the native-gdbserver board be !is_remote, then the few
tests that use the selftest-support.exp routines to debug gdb itself
start running, and fail, with something like:

  Running ..../src/gdb/testsuite/gdb.gdb/selftest.exp ...
  ERROR: tcl error sourcing ..../src/gdb/testsuite/gdb.gdb/selftest.exp.
  ERROR: gdbserver does not support run [....] without extended-remote
      while executing
  "error "gdbserver does not support $command without extended-remote""
      (procedure "gdb_test_multiple" line 25)
      invoked from within
  "gdb_test_multiple "run $INTERNAL_GDBFLAGS" "$description" {
	  -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(\\).* at .*main.c:.*$gdb..."
      (procedure "selftest_setup" line 45)

This commit makes sure those tests continue to be skipped.

gdb/testsuite/ChangeLog:
2017-10-13  Pedro Alves  <palves@redhat.com>

	* lib/selftest-support.exp (selftest_setup): Extend comments, and
	also skip on stub-like targets.
This commit is contained in:
Pedro Alves 2017-10-12 18:29:21 +01:00
parent 8b0553c18f
commit dad0c6d2f7
2 changed files with 22 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2017-10-13 Pedro Alves <palves@redhat.com>
* lib/selftest-support.exp (selftest_setup): Extend comments, and
also skip on stub-like targets.
2017-10-13 Pedro Alves <palves@redhat.com>
PR gdb/22293

View File

@ -124,8 +124,23 @@ 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 {
# Are we testing with a remote board? In that case, the target
# won't have access to the GDB's auxilliary data files
# (data-directory, etc.). It's simpler to just skip.
if [is_remote target] {
return
}
# ... or seemingly testing with a cross debugger? Likely GDB
# wouldn't be able to debug itself then...
if ![isnative] {
return
}
# ... or with a stub-like server? I.e., gdbserver + "target
# remote"? In that case we won't be able to pass command line
# arguments to GDB, and selftest_setup wants to do exactly that.
if [target_info exists use_gdb_stub] {
return
}