[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)

Message ID ec719b50-da53-f5d8-d4f0-248f165b2638@redhat.com
State New, archived
Headers

Commit Message

Pedro Alves May 22, 2018, 10:30 p.m. UTC
  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(-)
  

Patch

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.