From patchwork Tue Feb 3 23:20:58 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergio Durigan Junior X-Patchwork-Id: 4906 Received: (qmail 1691 invoked by alias); 3 Feb 2015 23:21:15 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 1667 invoked by uid 89); 3 Feb 2015 23:21:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, SPF_HELO_PASS, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 03 Feb 2015 23:21:12 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t13NL8nL005286 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 3 Feb 2015 18:21:09 -0500 Received: from psique.yyz.redhat.com (dhcp-10-15-16-169.yyz.redhat.com [10.15.16.169]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t13NL8V2013924; Tue, 3 Feb 2015 18:21:08 -0500 From: Sergio Durigan Junior To: GDB Patches Cc: Pedro Alves , Mark Wielaard , Sergio Durigan Junior Subject: [PATCH] Implement ${board}_{exec, spawn} for native-extended-gdbserver Date: Tue, 3 Feb 2015 18:20:58 -0500 Message-Id: <1423005658-31405-1-git-send-email-sergiodj@redhat.com> X-IsSubscribed: yes Hi, Mark Wielaard is kindly running two Debian buildslaves in our buildbot, and he noticed that, when testing things under the native-extended-gdbserver board, there is a huge slowndown due to several timeouts that are happening. If you look at the following log: You will notice that this happens because dejagnu is trying to open a rsh connection to test native-extended-gdbserver, which of course is wrong, and we end up not testing things properly. After some investigation (motivated by an idea from Pedro), I found that our native-extended-gdbserver board does not set the "isremote" flag properly. I fixed that by doing two things: - Defining the ${board}_spawn procedure inside the board file, and - Moving the ${board}_exec procedure (present at the native-gdbserver and native-stdio-gdbserver boards) to the gdbserver-base file. After that, I am not seeing this failure anymore. Is this OK to check in? gdb/testsuite/ChangeLog: 2015-02-03 Sergio Durigan Junior * boards/gdbserver-base.exp (${board}_exec): New procedure, moved from native-gdbserver.exp and native-stdio-gdbserver.exp. * boards/native-extended-gdbserver.exp: Do not set isremote using board_info. (${board}_spawn): New procedure. * boards/native-gdbserver.exp (${board}_exec): Moved to gdbserver-base.exp. * boards/native-stdio-gdbserver.exp (${board}_exec): Likewise. --- gdb/testsuite/boards/gdbserver-base.exp | 12 ++++++++++++ gdb/testsuite/boards/native-extended-gdbserver.exp | 18 ++++++++++++------ gdb/testsuite/boards/native-gdbserver.exp | 12 ------------ gdb/testsuite/boards/native-stdio-gdbserver.exp | 12 ------------ 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/gdb/testsuite/boards/gdbserver-base.exp b/gdb/testsuite/boards/gdbserver-base.exp index c77dc6e..1a52915 100644 --- a/gdb/testsuite/boards/gdbserver-base.exp +++ b/gdb/testsuite/boards/gdbserver-base.exp @@ -50,3 +50,15 @@ proc ${board}_download { board host dest } { proc ${board}_upload {dest srcfile args} { return $srcfile } + +proc ${board}_exec { hostname program args } { + global board_info + + set baseboard [lindex [split $hostname "/"] 0] + + set board_info($baseboard,isremote) 0 + set result [remote_exec $hostname $program $args] + set board_info($baseboard,isremote) 1 + + return $result +} diff --git a/gdb/testsuite/boards/native-extended-gdbserver.exp b/gdb/testsuite/boards/native-extended-gdbserver.exp index 57503db..0059c4e 100644 --- a/gdb/testsuite/boards/native-extended-gdbserver.exp +++ b/gdb/testsuite/boards/native-extended-gdbserver.exp @@ -23,12 +23,6 @@ load_generic_config "extended-gdbserver" load_board_description "gdbserver-base" -# By default, dejagnu makes the board remote unless the board name -# matches localhost. Force it to be NOT remote. -global board -global board_info -set board_info($board,isremote) 0 - set_board_info sockethost "localhost:" # We will be using the extended GDB remote protocol. @@ -119,3 +113,15 @@ proc mi_gdb_load { arg } { return 0 } + +proc ${board}_spawn { board cmd } { + global board_info + + set baseboard [lindex [split $board "/"] 0] + + set board_info($baseboard,isremote) 0 + set result [remote_spawn $board $cmd] + set board_info($baseboard,isremote) 1 + + return $result +} diff --git a/gdb/testsuite/boards/native-gdbserver.exp b/gdb/testsuite/boards/native-gdbserver.exp index 7738b2e..3d972ba 100644 --- a/gdb/testsuite/boards/native-gdbserver.exp +++ b/gdb/testsuite/boards/native-gdbserver.exp @@ -47,15 +47,3 @@ proc ${board}_spawn { board cmd } { return $result } - -proc ${board}_exec { hostname program args } { - global board_info - - set baseboard [lindex [split $hostname "/"] 0] - - set board_info($baseboard,isremote) 0 - set result [remote_exec $hostname $program $args] - set board_info($baseboard,isremote) 1 - - return $result -} diff --git a/gdb/testsuite/boards/native-stdio-gdbserver.exp b/gdb/testsuite/boards/native-stdio-gdbserver.exp index 2ec2a47..b8d0949 100644 --- a/gdb/testsuite/boards/native-stdio-gdbserver.exp +++ b/gdb/testsuite/boards/native-stdio-gdbserver.exp @@ -75,15 +75,3 @@ proc ${board}_spawn { board cmd } { return $result } - -proc ${board}_exec { hostname program args } { - global board_info - - set baseboard [lindex [split $hostname "/"] 0] - - set board_info($baseboard,isremote) 0 - set result [remote_exec $hostname $program $args] - set board_info($baseboard,isremote) 1 - - return $result -}