# Copyright 2011-2021 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 . # Create a GDB script that we can source. The script needs to generate # some output, to allow us to verify that it is executed properly. set script [standard_output_file zzz-gdbscript] set fd [open $script "w"] puts $fd "print 1" puts $fd "print 2" close $fd # The expected output from the script... set script_output "\\$\[0-9\]+ = 1\[\r\n\]+\\$\[0-9\]+ = 2.*" # Start a fresh GDB. We don't need an executable for this test, so # nothing else to do in terms of testcase setup. gdb_exit gdb_start # Test sourcing of the script with interactive mode `auto'. # Verify that evaluating the script does not cause an unexpected # change of the interactive-mode setting. gdb_test_no_output "set interactive-mode auto" gdb_test "source $script" "$script_output" \ "source script with interactive-mode auto" gdb_test "print 3" "= 3" "sanity check with interactive-mode auto" gdb_test "show interactive-mode" \ "Debugger's interactive mode is auto \\(currently .*\\)\\." \ "show interactive-mode (auto)" # Test sourcing of the script with interactive mode `on'. # Verify that evaluating the script does not cause an unexpected # change of the interactive-mode setting. gdb_test_no_output "set interactive-mode on" gdb_test "source $script" "$script_output" \ "source script with interactive-mode on" gdb_test "print 4" "= 4" "sanity check with interactive-mode on" gdb_test "show interactive-mode" \ "Debugger's interactive mode is on\\." \ "show interactive-mode (on)" # Test sourcing of the script with interactive mode `off'. # Verify that evaluating the script does not cause an unexpected # change of the interactive-mode setting. gdb_test_no_output "set interactive-mode off" gdb_test "source $script" "$script_output" \ "source script with interactive-mode off" gdb_test "print 5" "= 5" "sanity check with interactive-mode off" gdb_test "show interactive-mode" \ "Debugger's interactive mode is off\\." \ "show interactive-mode (off)"