mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
4a94e36819
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
119 lines
5.2 KiB
Plaintext
119 lines
5.2 KiB
Plaintext
# Copyright 1999-2022 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 essential Machine interface (MI) operations
|
|
#
|
|
# Verify that, using the MI, we can run a simple program and look at registers.
|
|
#
|
|
# 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=mi"
|
|
|
|
standard_testfile basics.c
|
|
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
|
|
untested "failed to compile"
|
|
return -1
|
|
}
|
|
|
|
proc sparc_register_tests_no_exec { } {
|
|
# Test the generic IDT chip.
|
|
mi_gdb_test "111-data-list-register-values" \
|
|
".*111\\^error,msg=\"-data-list-register-values: Usage: -data-list-register-values <format> \\\[<regnum1>...<regnumN>\\\]\"" \
|
|
"wrong arguments"
|
|
|
|
mi_gdb_test "111-data-list-register-values x" \
|
|
".*111\\^error,msg=\"No registers\.\"" \
|
|
"no executable"
|
|
}
|
|
|
|
# These tests exercise IDT-specific MIPS registers for several
|
|
# different processor models.
|
|
|
|
# This should detect the actual processor in use and change
|
|
# the expected results appropriately. FIXME
|
|
|
|
proc sparc_register_tests { } {
|
|
global hex
|
|
global decimal
|
|
set octal "\[0-7\]+"
|
|
set binary "\[0-1\]+"
|
|
set float "\\-?((\[0-9\]+(\\.\[0-9\]+)?(e\[-+\]\[0-9\]+)?)|(nan\\($hex\\)))"
|
|
set float2 "\\-?\[0-9\]+"
|
|
|
|
mi_gdb_test "111-data-list-register-names" \
|
|
"111\\^done,register-names=\\\[\"g0\",\"g1\",\"g2\",\"g3\",\"g4\",\"g5\",\"g6\",\"g7\",\"o0\",\"o1\",\"o2\",\"o3\",\"o4\",\"o5\",\"sp\",\"o7\",\"l0\",\"l1\",\"l2\",\"l3\",\"l4\",\"l5\",\"l6\",\"l7\",\"i0\",\"i1\",\"i2\",\"i3\",\"i4\",\"i5\",\"fp\",\"i7\",\"f0\",\"f1\",\"f2\",\"f3\",\"f4\",\"f5\",\"f6\",\"f7\",\"f8\",\"f9\",\"f10\",\"f11\",\"f12\",\"f13\",\"f14\",\"f15\",\"f16\",\"f17\",\"f18\",\"f19\",\"f20\",\"f21\",\"f22\",\"f23\",\"f24\",\"f25\",\"f26\",\"f27\",\"f28\",\"f29\",\"f30\",\"f31\",\"y\",\"psr\",\"wim\",\"tbr\",\"pc\",\"npc\",\"fsr\",\"csr\",\"d0\",\"d2\",\"d4\",\"d6\",\"d8\",\"d10\",\"d12\",\"d14\",\"d16\",\"d18\",\"d20\",\"d22\",\"d24\",\"d26\",\"d28\",\"d30\"\\\]" \
|
|
"list register names"
|
|
|
|
mi_gdb_test "222-data-list-register-values x" \
|
|
"222\\^done,register-values=\\\[\{number=\"0\",value=\"$hex\"\}.*\{number=\"87\",value=\"$hex\"\}\\\]" \
|
|
"register values x"
|
|
|
|
mi_gdb_test "333-data-list-register-values f" \
|
|
"333\\^done,register-values=\\\[\{number=\"0\",value=\"$float\"\},\{number=\"1\",value=\"$float\"\},.*\{number=\"87\",value=\"$float\"\}\\\]" \
|
|
"register values f"
|
|
|
|
mi_gdb_test "444-data-list-register-values d" \
|
|
"444\\^done,register-values=\\\[\{number=\"0\",value=\"-?$decimal\"\}.*\{number=\"87\",value=\"-?$decimal\"\}\\\]" \
|
|
"register values d"
|
|
|
|
mi_gdb_test "555-data-list-register-values o" \
|
|
"555\\^done,register-values=\\\[\{number=\"0\",value=\"$octal\"\}.*\{number=\"87\",value=\"$octal\"\}\\\]" \
|
|
"register values o"
|
|
|
|
mi_gdb_test "666-data-list-register-values t" \
|
|
"666\\^done,register-values=\\\[\{number=\"0\",value=\"$binary\"\}.*\{number=\"87\",value=\"$binary\"\}\\\]" \
|
|
"register values t"
|
|
|
|
# On the sparc, registers 0-31 are int, 32-63 float, 64-71 int, 72-87 float
|
|
|
|
mi_gdb_test "777-data-list-register-values N" \
|
|
"777\\^done,register-values=\\\[\{number=\"0\",value=\"-?$decimal\"\}.*\{number=\"31\",value=\"-?$decimal\"\},\{number=\"32\",value=\"$float\"\}.*\{number=\"63\",value=\"$float\"\},\{number=\"64\",value=\"-?$decimal\"\}.*\{number=\"71\",value=\"-?$decimal\"\},\{number=\"72\",value=\"$float\"\}.*\{number=\"87\",value=\"$float\"\}\\\]" \
|
|
"register values N"
|
|
|
|
mi_gdb_test "888-data-list-register-values r" \
|
|
"888\\^done,register-values=\\\[\{number=\"0\",value=\"$hex\"\}.*\{number=\"87\",value=\"$hex\"\}\\\]" \
|
|
"register values r"
|
|
|
|
mi_gdb_test "999-data-list-register-names 68 69 70 71" \
|
|
"999\\^done,register-names=\\\[\"pc\",\"npc\",\"fsr\",\"csr\"\\\]" \
|
|
"list names of some regs"
|
|
|
|
mi_gdb_test "001-data-list-register-values x 68 69 70 71" \
|
|
"001\\^done,register-values=\\\[\{number=\"68\",value=\"$hex\"\},\{number=\"69\",value=\"$hex\"\},\{number=\"70\",value=\"$hex\"\},\{number=\"71\",value=\"$hex\"\}\\\]" \
|
|
"list values of some regs"
|
|
|
|
mi_gdb_test "002-data-list-changed-registers" \
|
|
"002\\^done,changed-registers=\\\[(\"${decimal}\"(,\"${decimal}\")*)?\\\]" \
|
|
"list changed registers"
|
|
}
|
|
|
|
if [istarget "sparc-*-*"] then {
|
|
mi_clean_restart
|
|
sparc_register_tests_no_exec
|
|
mi_clean_restart $binfile
|
|
mi_runto_main
|
|
sparc_register_tests
|
|
} else {
|
|
verbose "mi-regs.exp tests ignored for this target"
|
|
}
|
|
|
|
mi_gdb_exit
|
|
return 0
|