diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/gdb.dap/cwd.exp | 40 | ||||
-rw-r--r-- | gdb/testsuite/lib/dap-support.exp | 5 |
2 files changed, 45 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.dap/cwd.exp b/gdb/testsuite/gdb.dap/cwd.exp new file mode 100644 index 0000000..394fe5a --- /dev/null +++ b/gdb/testsuite/gdb.dap/cwd.exp @@ -0,0 +1,40 @@ +# Copyright 2023 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/>. + +# Test the cwd extension. + +require allow_dap_tests {!is_remote host} + +load_lib dap-support.exp + +standard_testfile attach.c + +if {[build_executable ${testfile}.exp $testfile $srcfile] == -1} { + return +} + +# Starting the inferior will fail if the change of cwd does not work. +set the_dir [file dirname $testfile] +set the_file [file tail $testfile] +if {[dap_launch $the_file cwd $the_dir stop_at_main 1] == ""} { + return +} + +dap_check_request_and_response "start inferior" configurationDone +# We didn't explicitly set a breakpoint, so if we hit one, it worked. +dap_wait_for_event_and_check "stopped at function breakpoint" stopped \ + "body reason" breakpoint + +dap_shutdown diff --git a/gdb/testsuite/lib/dap-support.exp b/gdb/testsuite/lib/dap-support.exp index 4a1a288..657ad7b 100644 --- a/gdb/testsuite/lib/dap-support.exp +++ b/gdb/testsuite/lib/dap-support.exp @@ -248,6 +248,7 @@ proc _dap_initialize {name} { # * stop_at_main - value is ignored, the presence of this means that # "stopAtBeginningOfMainSubprogram" will be passed to the launch # request. +# * cwd - value is the working directory to use. # # After this proc is called, gdb will be ready to accept breakpoint # requests. @@ -284,6 +285,10 @@ proc dap_launch {file {args {}}} { append params { stopAtBeginningOfMainSubprogram [l true]} } + cwd { + append envlist " cwd [format {[%s]} [list s $value]]" + } + default { error "unrecognized parameter $key" } |