* hppa.h (pa_opcodes): Use "cX" completer instead of "cx" in fstqx
[external/binutils.git] / gdb / testsuite / gdb.mi / mi-stepi.exp
1 # Copyright 1999-2002, 2004-2005, 2007-2012 Free Software Foundation,
2 # Inc.
3
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 # Test Machine interface (MI) operations 
18 # Verify that, using the MI, we can run a simple program and perform
19 # exec-step-instruction and exec-next-instruction.  
20
21 # The goal is not to
22 # test gdb functionality, which is done by other tests, but to verify
23 # the correct output response to MI operations.  
24 #
25
26 load_lib mi-support.exp
27 set MIFLAGS "-i=mi"
28
29 gdb_exit
30 if [mi_gdb_start] {
31     continue
32 }
33
34 standard_testfile basics.c
35
36 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
37      untested mi-stepi.exp
38      return -1
39 }
40
41 proc test_stepi_nexti {} {
42     global mi_gdb_prompt
43     global hex fullname_syntax srcfile
44
45     set line_main_head  [gdb_get_line_number "main ("]
46     set line_main_body  [expr $line_main_head + 2]
47     set line_main_hello [gdb_get_line_number "Hello, World!"]
48
49     set line [mi_execute_to "exec-step-instruction" "end-stepping-range" "main" "" \
50                   ".*basics.c" "\[0-9\]+" "" "step-instruction at main"]
51     if { $line >= $line_main_body && $line <= $line_main_hello } {
52                 pass "step-instruction at main (line check)"
53     } else {
54         fail "step-instruction at main (line check)"
55     }    
56
57     set line [mi_execute_to "exec-next-instruction" "end-stepping-range" "main" "" \
58                   ".*basics.c" "\[0-9\]+" "" "next-instruction at main"]
59     if { $line >= $line_main_body && $line <= $line_main_hello } {
60         pass "next-instruction at main (line check)"
61     } else {
62         fail "next-instruction at main (line check)"
63     }
64
65     set line [mi_execute_to "exec-next-instruction" "end-stepping-range" "main" "" \
66                   ".*basics.c" "\[0-9\]+" "" "next-instruction at main 2"]
67     if { $line >= $line_main_body && $line <= $line_main_hello } {
68         pass "next-instruction at main 2 (line check)"
69     } else {
70         fail "next-instruction at main 2 (line check)"
71     }
72 }
73
74 mi_run_to_main
75 test_stepi_nexti
76
77 mi_gdb_exit
78 return 0