diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.server/ext-wrapper.exp | 50 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdbserver-support.exp | 16 |
3 files changed, 67 insertions, 5 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 0d7e90a..f92f5b5 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-07-24 Yao Qi <yao.qi@linaro.org> + + * lib/gdbserver-support.exp (gdbserver_start_extended): Add + argument options. + * gdb.server/ext-wrapper.exp: New file. + 2015-07-23 Doug Evans <dje@google.com> * gdb.dwarf2/dw2-dummy-cu.S: New file. diff --git a/gdb/testsuite/gdb.server/ext-wrapper.exp b/gdb/testsuite/gdb.server/ext-wrapper.exp new file mode 100644 index 0000000..9047400 --- /dev/null +++ b/gdb/testsuite/gdb.server/ext-wrapper.exp @@ -0,0 +1,50 @@ +# 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 <http://www.gnu.org/licenses/>. + +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 } |