old-cross-binutils/gdb/testsuite/gdb.xml/tdesc-arch.exp
Joel Brobecker e22f8b7c8c Switch the license of all .exp files to GPLv3.
Switch the license of all .f and .f90 files to GPLv3.
        Switch the license of all .s and .S files to GPLv3.
2007-08-23 18:14:19 +00:00

111 lines
3.2 KiB
Text

# Copyright 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/>.
if {[gdb_skip_xml_test]} {
unsupported "tdesc-arch.exp"
return -1
}
gdb_start
# Find some valid architectures - we just need legitimate values
# to put in our <architecture> elements.
set arch1 ""
set arch2 ""
set msg "read valid architectures"
gdb_test_multiple "set architecture" $msg {
-re "Requires an argument. Valid arguments are (\[^ \]*), (\[^ \]*), .*auto\\.\r\n$gdb_prompt $" {
set arch1 $expect_out(1,string)
set arch2 $expect_out(2,string)
pass $msg
}
-re "Requires an argument. Valid arguments are (\[^ \]*), auto\\.\r\n$gdb_prompt $" {
# If there is just one supported architecture, we can't do this test.
unsupported "tdesc-arch.exp"
return -1
}
}
set default_arch ""
set msg "read default architecture"
gdb_test_multiple "show architecture" $msg {
-re "The target architecture is set automatically \\(currently (\[^ \]*)\\)\r\n$gdb_prompt $" {
set default_arch $expect_out(1,string)
pass $msg
}
}
# If that did not work, no point running further tests.
if { "$arch1" == "" || "$arch2" == "" || "$default_arch" == "" } {
unresolved "architecture XML tests"
return -1
}
# Run these tests twice, once for $arch1 and once for $arch2, to
# make sure that the tdesc file overrides the global default.
proc set_arch { arch which } {
global gdb_prompt
set fd [open "tdesc-arch.xml" w]
puts $fd \
"<target>
<architecture>$arch</architecture>
</target>"
close $fd
# Anchor the test output, so that error messages are detected.
set cmd "set tdesc filename tdesc-arch.xml"
set msg "$cmd ($which architecture)"
set cmd_regex [string_to_regexp $cmd]
gdb_test_multiple $cmd $msg {
-re "^$cmd_regex\r\n$gdb_prompt $" {
pass $msg
}
-re "^$cmd_regex\r\nwarning: A handler for the OS ABI.*\r\n$gdb_prompt $" {
kfail gdb/2225 $msg
}
}
set cmd "show architecture"
gdb_test $cmd \
"The target architecture is set automatically \\(currently $arch\\)" \
"$cmd ($which architecture)"
file delete "tdesc-arch.xml"
}
set_arch $arch1 first
set_arch $arch2 second
# Check an invalid architecture setting.
set fd [open "tdesc-arch.xml" w]
puts $fd \
"<target>
<architecture>invalid</architecture>
</target>"
close $fd
set cmd "set tdesc filename tdesc-arch.xml"
gdb_test $cmd \
"warning:.*Target description specified unknown architecture.*" \
"$cmd (invalid architecture)"
set cmd "show architecture"
gdb_test $cmd \
"The target architecture is set automatically \\(currently $default_arch\\)" \
"$cmd (invalid architecture)"
file delete "tdesc-arch.xml"