[pushed] Fix gdb.base/remote.exp with native-extended-gdbserver board (Re: [PATCH 08/10] Handle "show remote memory-write-packet-size" when not connected)

Pedro Alves
2018-05-22T22:30:46Z

On 05/22/2018 10:43 PM, Sergio Durigan Junior wrote:
> On Monday, May 21 2018, Pedro Alves wrote:
>

> I'm seeing a few failures on Debian-s390x-native-extended-gdbserver-m64:

> ...
> show remote memory-write-packet-size
> The memory-write-packet-size is 0 (default). Packets are limited to 16383 bytes.
> (gdb) FAIL: gdb.base/remote.exp: write-packet default
> ...
>

Ah, I forgot testing with extended-remote. I've pushed in the fix below.

Thanks!

From 035522c0228be33b2124ada2f178187e7e53aa6c Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Tue, 22 May 2018 23:26:46 +0100
Subject: [PATCH] Fix gdb.base/remote.exp with native-extended-gdbserver board

This fixes gdb.base/remote.exp regressions caused by the previous
commit to the testcase, when tested with
--target_board=native-extended-gdbserver. For example:

...
show remote memory-write-packet-size
The memory-write-packet-size is 0 (default). Packets are limited to 16383 bytes.
(gdb) FAIL: gdb.base/remote.exp: write-packet default
...

With that board, GDB connects to GDBserver at gdb_start time, so GDB
is showing the actual remote/gdbserver packet size limits.

Fix it using the usual "disconnect" pattern. While at it, there's no
need to start GDB before compiling the testcase.

gdb/testsuite/ChangeLog:
2018-05-22 Pedro Alves <palves@redhat.com>

* gdb.base/remote.exp: Only gdb_start after compiling the
testcase. Issue "disconnect" before testing "set remote" command
defaults. Issue clean_restart before running to main.
---
gdb/testsuite/ChangeLog | 6 ++++++
gdb/testsuite/gdb.base/remote.exp | 9 +++++++--
2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 25df82b4e7..24955f6530 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2018-05-22 Pedro Alves <palves@redhat.com>
+
+ * gdb.base/remote.exp: Only gdb_start after compiling the
+ testcase. Issue "disconnect" before testing "set remote" command
+ defaults. Issue clean_restart before running to main.
+
2018-05-22 Pedro Alves <palves@redhat.com>

* gdb.base/remote.exp: Adjust expected output of "show remote
diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp
index ba34441af2..edcfac824f 100644
--- a/gdb/testsuite/gdb.base/remote.exp
+++ b/gdb/testsuite/gdb.base/remote.exp
@@ -21,14 +21,17 @@ if {[target_info gdb_protocol] != "remote"

standard_testfile .c

-gdb_start
-
set result [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}]
if {$result != "" } then {
untested "failed to compile"
return -1
}

+gdb_start
+
+# Make sure we're disconnected, in case we're testing with an
+# extended-remote board, therefore already connected.
+gdb_test "disconnect" ".*"

#
# Part ONE: Check the down load commands
@@ -126,6 +129,8 @@ proc gdb_load_timed {executable class writesize} {
pass $test
}

+clean_restart $binfile
+
# These download tests won't actually download anything on !is_remote
# target boards, but we run them anyway because it's simpler, and
# harmless.
--
2.14.3