| # 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 <http://www.gnu.org/licenses/>. |
| |
| # 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)" |
| |