[gdb/testsuite] Fix UNRESOLVED in gdb.server/server-kill-python.exp
authorTom de Vries <tdevries@suse.de>
Tue, 11 Feb 2020 06:08:33 +0000 (07:08 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 11 Feb 2020 06:08:33 +0000 (07:08 +0100)
The test-case gdb.server/server-kill-python.exp runs fine by itself:
...
Running src/gdb/testsuite/gdb.server/server-kill-python.exp ...

                === gdb Summary ===

nr of expected passes            3
...

But if we run f.i. gdb.server/file-transfer.exp before it, we get instead:
...
Running src/gdb/testsuite/gdb.server/server-kill-python.exp ...
ERROR: GDB process no longer exists

                === gdb Summary ===

nr of expected passes            13
nr of unresolved testcases       1
...

We can see the origin of the problem here:
...
spawn gdbserver --once localhost:2347 \
  build/gdb/testsuite/outputs/gdb.server/file-transfer/file-transfer \
  build/gdb/testsuite/outputs/gdb.server/server-kill-python/server-kill-python^M
Process build/gdb/testsuite/outputs/gdb.server/file-transfer/file-transfer
  \ created; pid = 9464^M
Listening on port 2347^M
...

The spawn of the gdbserver for the server-kill-python test-case gets as
executable argument the file-transfer binary.

This is caused by proc gdbserver_spawn attempting to load the exec file in
$file_last_loaded.  This is something that is meant to load the same exec in
the gdbserver that was earlier loaded into gdb.

In this test-case however, nothing has been loaded into gdb by the test-case,
and consequently we load the file that was loaded into gdb in the previous
test-case.

Fix this by unsetting $file_last_loaded in gdb_init.

Build and reg-tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-02-11  Tom de Vries  <tdevries@suse.de>

PR testsuite/25488
* lib/gdb.exp (gdb_init): Unset $file_last_loaded.

Change-Id: Ic385e08cbd34cbf85518720cf5695b4ff6619f4b

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index 20c39b120030cc83bd42cf743df55a8f9e0edfd1..db85782370eedb4e0d669f783089a440172359b3 100644 (file)
@@ -1,3 +1,8 @@
+2020-02-11  Tom de Vries  <tdevries@suse.de>
+
+       PR testsuite/25488
+       * lib/gdb.exp (gdb_init): Unset $file_last_loaded.
+
 2020-02-10  Tom de Vries  <tdevries@suse.de>
 
        * gdb.multi/multi-target.exp: Skip if skip_gdbserver_tests.
index eb1d145f2bb76a8a039a89225d4a26eb3deec10a..d5e2295703948178ab64674ad3a66af2491a65b3 100644 (file)
@@ -5053,6 +5053,10 @@ proc gdb_init { test_file_name } {
     set gdbserver_reconnect_p 1
     unset gdbserver_reconnect_p
 
+    # Clear $last_loaded_file
+    global last_loaded_file
+    unset -nocomplain last_loaded_file
+
     # Reset GDB number of instances
     global gdb_instances
     set gdb_instances 0