1# Copyright 2015-2020 Free Software Foundation, Inc.
2
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
15
16# Test that execution commands in a GDB script file run through -x
17# work as expected.  Specifically, the scripts creates a breakpoint
18# that has "continue" in its command list, and then does "run".
19
20standard_testfile
21
22if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
23    return -1
24}
25
26set x_file ${srcdir}/${subdir}/$testfile.gdb
27
28global GDBFLAGS
29set saved_gdbflags $GDBFLAGS
30
31# Run the test proper.
32
33proc test {} {
34    global inferior_exited_re
35    global binfile
36    global gdb_prompt
37    global saved_gdbflags GDBFLAGS
38    global x_file
39
40    gdb_exit
41
42    set GDBFLAGS "$GDBFLAGS -x $x_file $binfile"
43
44    set GDBFLAGS $saved_gdbflags
45    append GDBFLAGS " -ex \"set height unlimited\""
46    append GDBFLAGS " -x \"$x_file\""
47    append GDBFLAGS " --args \"$binfile\""
48
49    set test "run to end"
50
51    gdb_exit
52    set res [gdb_spawn]
53    if { $res != 0} {
54	fail $test
55	return -1
56    }
57
58    gdb_test_multiple "" $test {
59	-re "$inferior_exited_re normally.*$gdb_prompt $" {
60	    pass $test
61	}
62	-re "Don't know how to run.*$gdb_prompt $" {
63	    unsupported $test
64	}
65    }
66}
67
68test
69
70set GDBFLAGS $saved_gdbflags
71