e22f8b7c8c
Switch the license of all .f and .f90 files to GPLv3. Switch the license of all .s and .S files to GPLv3.
96 lines
2.8 KiB
Text
96 lines
2.8 KiB
Text
# Copyright 1999, 2000, 2001, 2002, 2003, 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/>.
|
|
|
|
# Please email any bugs, comments, and/or additions to this file to:
|
|
# bug-gdb@prep.ai.mit.edu
|
|
|
|
#
|
|
# Test essential Machine interface (MI) operations
|
|
#
|
|
# Verify that, using the MI, we can run a simple program and perform basic
|
|
# debugging activities like: insert breakpoints, run the program,
|
|
# step, next, continue until it ends and, last but not least, quit.
|
|
#
|
|
# The goal is not to test gdb functionality, which is done by other tests,
|
|
# but to verify the correct output response to MI operations.
|
|
#
|
|
|
|
# This test only works when talking to a target that routes its output
|
|
# through GDB. Check that we're either talking to a simulator or a
|
|
# remote target.
|
|
|
|
load_lib mi-support.exp
|
|
set MIFLAGS "-i=mi2"
|
|
|
|
gdb_exit
|
|
if [mi_gdb_start] {
|
|
continue
|
|
}
|
|
|
|
set testfile "mi-console"
|
|
set srcfile ${testfile}.c
|
|
set binfile ${objdir}/${subdir}/${testfile}
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
|
|
untested mi2-console.exp
|
|
return -1
|
|
}
|
|
|
|
mi_run_to_main
|
|
|
|
# Next over the hello() call which will produce lots of output
|
|
send_gdb "47-exec-next\n"
|
|
gdb_expect {
|
|
-re "47\\^running\r\n$mi_gdb_prompt" {
|
|
pass "Started step over hello"
|
|
}
|
|
timeout {
|
|
fail "Started step over hello (timeout)"
|
|
}
|
|
}
|
|
|
|
if { ![target_info exists gdb,noinferiorio] } {
|
|
gdb_expect {
|
|
-re "@\"H\"\r\n.*@\"e\"\r\n.*@\"l\"\r\n.*@\"l\"\r\n.*@\"o\"\r\n.*@\" \"\r\n.*@\"\\\\\\\\\"\r\n.*@\"\\\\\"\"\r\n.*@\"!\"\r\n.*@\"\\\\r\"\r\n.*@\"\\\\n\"\r\n" {
|
|
pass "Hello message"
|
|
}
|
|
-re "Hello" {
|
|
|
|
# Probably a native system where GDB doesn't have direct #
|
|
# control over the inferior console. # For this to work,
|
|
# GDB would need to run the inferior process # under a PTY
|
|
# and then use the even-loops ability to wait on #
|
|
# multiple event sources to channel the output back
|
|
# through the # MI.
|
|
|
|
kfail "gdb/623" "Hello message"
|
|
}
|
|
timeout {
|
|
fail "Hello message (timeout)"
|
|
}
|
|
}
|
|
}
|
|
|
|
gdb_expect {
|
|
-re "47\\*stopped.*$mi_gdb_prompt$" {
|
|
pass "Finished step over hello"
|
|
}
|
|
timeout {
|
|
fail "Finished step over hello (timeout)"
|
|
}
|
|
}
|
|
|
|
mi_gdb_exit
|
|
return 0
|