From patchwork Mon Jul 20 11:35:20 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 7748 Received: (qmail 103719 invoked by alias); 20 Jul 2015 11:35:52 -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 103657 invoked by uid 89); 20 Jul 2015 11:35:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pa0-f52.google.com Received: from mail-pa0-f52.google.com (HELO mail-pa0-f52.google.com) (209.85.220.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 20 Jul 2015 11:35:50 +0000 Received: by pabkd10 with SMTP id kd10so28253273pab.2 for ; Mon, 20 Jul 2015 04:35:48 -0700 (PDT) X-Received: by 10.66.101.104 with SMTP id ff8mr19301168pab.59.1437392148412; Mon, 20 Jul 2015 04:35:48 -0700 (PDT) Received: from E107787-LIN.cambridge.arm.com (gcc1-power7.osuosl.org. [140.211.15.137]) by smtp.gmail.com with ESMTPSA id db1sm21335338pdb.50.2015.07.20.04.35.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 20 Jul 2015 04:35:47 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 2/8] Test --wrapper in extended-remote Date: Mon, 20 Jul 2015 12:35:20 +0100 Message-Id: <1437392126-29503-3-git-send-email-yao.qi@linaro.org> In-Reply-To: <1437392126-29503-1-git-send-email-yao.qi@linaro.org> References: <1437392126-29503-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes We didn't test --wrapper option in extended-remote before, this patch is to add a test case for it. In order to pass option --wrapper to gdbserver in extended-remote, I add arg in gdbserver_start_extended, and its default value is "", so that other places use gdbserver_start_extended don't have to be updated. gdb/testsuite: 2015-07-17 Yao Qi * lib/gdbserver-support.exp (gdbserver_start_extended): Add argument options. * gdb.server/ext-wrapper.exp: New file. --- gdb/testsuite/gdb.server/ext-wrapper.exp | 52 ++++++++++++++++++++++++++++++++ gdb/testsuite/lib/gdbserver-support.exp | 16 +++++++--- 2 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 gdb/testsuite/gdb.server/ext-wrapper.exp diff --git a/gdb/testsuite/gdb.server/ext-wrapper.exp b/gdb/testsuite/gdb.server/ext-wrapper.exp new file mode 100644 index 0000000..2ddd3a8 --- /dev/null +++ b/gdb/testsuite/gdb.server/ext-wrapper.exp @@ -0,0 +1,52 @@ +# This testcase is part of GDB, the GNU debugger. + +# Copyright 2015 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Test running programs using extended-remote. + +load_lib gdbserver-support.exp + +standard_testfile wrapper.c + +if { [skip_gdbserver_tests] } { + return 0 +} + +if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} { + return -1 +} + +if {[prepare_for_testing $testfile.exp $testfile $srcfile debug]} { + return -1 +} + +# Make sure we're disconnected, in case we're testing with an +# extended-remote board, therefore already connected. +gdb_test "disconnect" ".*" + +set target_exec [gdbserver_download_current_prog] +gdbserver_start_extended "--wrapper env TEST=1 --" + +gdb_test_no_output "set remote exec-file $target_exec" "set remote exec-file" + +gdb_breakpoint marker +gdb_test "run" "Breakpoint.* marker .*" "run to marker" + +gdb_test "print d" "\\$${decimal} = ${hex} \"1\".*" + +gdb_test "kill" "" "kill" "Kill the program being debugged.*" "y" + +gdb_test_no_output "monitor exit" diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp index 6c3401c..e6d8f2c 100644 --- a/gdb/testsuite/lib/gdbserver-support.exp +++ b/gdb/testsuite/lib/gdbserver-support.exp @@ -434,15 +434,21 @@ proc gdbserver_reconnect { } { return [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport] } -# Start and connect to a gdbserver in extended mode. Note this frobs -# $gdbserver_protocol, so should be used only from a board that -# usually connects in target remote mode. -proc gdbserver_start_extended { } { +# Start gdbserver in extended mode with OPTIONS and connect to it. Note +# this frobs $gdbserver_protocol, so should be used only from a board +# that usually connects in target remote mode. +proc gdbserver_start_extended { {options ""} } { global gdbserver_protocol global gdbserver_gdbport global use_gdb_stub - if { [catch { gdbserver_start "--multi" "" } res] == 1 } { + set gdbserver_options "--multi" + + if { $options != "" } { + append gdbserver_options " $options" + } + + if { [catch { gdbserver_start $gdbserver_options "" } res] == 1 } { perror $res return 2 }