gdb/testsuite: set sysroot in gdb.server/stop-reply-no-thread-multi.exp
authorSimon Marchi <simon.marchi@efficios.com>
Sun, 6 Jun 2021 13:53:42 +0000 (09:53 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Sun, 6 Jun 2021 13:53:42 +0000 (09:53 -0400)
I get some random timeouts in this test due to big debug info taking a
lot of time to read through gdbserver.  When host and target are on the
same machine, clear the sysroot parameter so that GDB reads the files
from the local file system, as we already do in many tests.

I agree with what Pedro says here:

  https://sourceware.org/pipermail/gdb-patches/2019-March/156568.html

that if this is bad for us, it's also bad for users, so we should be
fixing the slowness instead.  But so far nobody seems to be working on
it, and the testsuite timeouts are getting in the way, so I think this
"set sysroot" is a net positive for now.

Without this patch, the test takes over 2 minutes to run (most of it
"downloading" libc debug info), with it it takes 10 seconds.

gdb/testsuite/ChangeLog:

* gdb.server/stop-reply-no-thread-multi.exp: Clear sysroot when
host and target are local.

Change-Id: Ieb6304f0e56b4575af450913de4210c667c6bf7b

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp

index 0bd3d1cb8ffcbfa046699bdf92e3fa4618aca599..d51b60c09c5d2f929fee0c669e2f4af1d88304fa 100644 (file)
@@ -1,3 +1,8 @@
+2021-06-06  Simon Marchi  <simon.marchi@efficios.com>
+
+       * gdb.server/stop-reply-no-thread-multi.exp: Clear sysroot when
+       host and target are local.
+
 2021-06-05  Hannes Domani  <ssbssa@yahoo.de>
 
        * gdb.python/py-symbol.exp: Fix tests for Python 3.
index 50cf10fe3134489117f0b237e0d6635ef143a142..b3ded0e5ab560ce3db7954737353fd4e77d98b75 100644 (file)
@@ -48,6 +48,13 @@ proc run_test { target_non_stop disable_feature } {
 
     save_vars { GDBFLAGS } {
        append GDBFLAGS " -ex \"maint set target-non-stop $target_non_stop\""
+
+       # If GDB and GDBserver are both running locally, set the sysroot to avoid
+       # reading files via the remote protocol.
+       if { ![is_remote host] && ![is_remote target] } {
+           set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
+       }
+
        clean_restart ${binfile}
     }