e22f8b7c8c
Switch the license of all .f and .f90 files to GPLv3. Switch the license of all .s and .S files to GPLv3.
98 lines
3.4 KiB
Text
98 lines
3.4 KiB
Text
# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
|
|
# 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/>.
|
|
|
|
# Test Machine interface (MI) operations
|
|
# Verify that, using the MI, we can run a simple program and perform
|
|
# exec-step-instruction and exec-next-instruction.
|
|
|
|
# The goal is not to
|
|
# test gdb functionality, which is done by other tests, but to verify
|
|
# the correct output response to MI operations.
|
|
#
|
|
|
|
load_lib mi-support.exp
|
|
set MIFLAGS "-i=mi2"
|
|
|
|
gdb_exit
|
|
if [mi_gdb_start] {
|
|
continue
|
|
}
|
|
|
|
set testfile "basics"
|
|
set srcfile ${testfile}.c
|
|
set binfile ${objdir}/${subdir}/${testfile}
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
|
|
untested mi2-stepi.exp
|
|
return -1
|
|
}
|
|
|
|
proc test_stepi_nexti {} {
|
|
global mi_gdb_prompt
|
|
global hex fullname_syntax srcfile
|
|
|
|
set line_main_head [gdb_get_line_number "main ("]
|
|
set line_main_body [expr $line_main_head + 2]
|
|
set line_main_hello [gdb_get_line_number "Hello, World!"]
|
|
|
|
send_gdb "111-exec-step-instruction\n"
|
|
gdb_expect {
|
|
-re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(\[0-9\]+)\"\}\r\n$mi_gdb_prompt$" {
|
|
set line $expect_out(2,string)
|
|
if { $line >= $line_main_body && $line <= $line_main_hello } {
|
|
pass "step-instruction at main"
|
|
} else {
|
|
fail "step-instruction at main"
|
|
}
|
|
}
|
|
timeout {
|
|
fail "step-instruction at main (timeout)"
|
|
}
|
|
}
|
|
send_gdb "222-exec-next-instruction\n"
|
|
gdb_expect {
|
|
-re "222\\^running\r\n${mi_gdb_prompt}222\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(\[0-9\]+)\"\}\r\n$mi_gdb_prompt$" {
|
|
set line $expect_out(2,string)
|
|
if { $line >= $line_main_body && $line <= $line_main_hello } {
|
|
pass "next-instruction at main"
|
|
} else {
|
|
fail "next-instruction at main"
|
|
}
|
|
}
|
|
timeout {
|
|
fail "next-instruction at main (timeout)"
|
|
}
|
|
}
|
|
send_gdb "333-exec-next-instruction\n"
|
|
gdb_expect {
|
|
-re "333\\^running\r\n${mi_gdb_prompt}333\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(\[0-9\]+)\"\}\r\n$mi_gdb_prompt$" {
|
|
set line $expect_out(2,string)
|
|
if { $line >= $line_main_body && $line <= $line_main_hello } {
|
|
pass "next-instruction at main"
|
|
} else {
|
|
fail "next-instruction at main"
|
|
}
|
|
}
|
|
timeout {
|
|
fail "next-instruction at main (timeout)"
|
|
}
|
|
}
|
|
}
|
|
|
|
mi_run_to_main
|
|
test_stepi_nexti
|
|
|
|
mi_gdb_exit
|
|
return 0
|