# This testcase is part of GDB, the GNU debugger. # Copyright 2005-2020 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 GDB's "source" command - reads in a GDB script. standard_testfile structs.c gdb_start gdb_test "source -v ${srcdir}/${subdir}/source-test.gdb" \ "echo test source options.*" \ "source -v" # There was a bug where -v got stuck in the "on" position. # Verify "source script", without the -v, is not verbose. set test "source after -v" gdb_test_multiple "source ${srcdir}/${subdir}/source-test.gdb" $test { -re "echo test source options.*$gdb_prompt $" { fail "$test" } -re "test source options.*$gdb_prompt $" { pass "$test" } } gdb_test "dir ${srcdir}/${subdir}" "Source directories searched: .*" \ "set search directories" gdb_test "source -s ./source-test.gdb" \ "test source options" \ "source -s" # Test -v and -s in either order. gdb_test "source -s -v ./source-test.gdb" \ "echo test source options.*" \ "source -s -v" gdb_test "source -v -s ./source-test.gdb" \ "echo test source options.*" \ "source -v -s" # Test sourcing a non-existant file, both when the source command # comes from the a command entered at the GDB prompt, and when # it comes from a script being sourced. gdb_test "source for-sure-nonexistant-file" \ "for-sure-nonexistant-file: No such file or directory\." gdb_test "source source-nofile.gdb" \ "warning: for-sure-nonexistant-file: No such file or directory\.\[\r\n\]*source error not fatal" # Test commands that error out in sourced files, including in nested sourced # files. # # This needs to come after the "dir" command tested above for source-error.gdb # to find source-error-1.gdb. gdb_test "source ${srcdir}/${subdir}/source-error.gdb" \ [multi_line ".*source-error.gdb:20: Error in sourced command file:" \ "source-error-1.gdb:21: Error in sourced command file:" \ "Cannot access memory at address 0x0" ] \ "script contains error"