diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-01-23 17:11:55 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-01-23 17:11:55 +0000 |
commit | e515b470281c9dab5de4e7eace22200a577dbf55 (patch) | |
tree | 3a376e92fc44666d7bfdbcdffcfcd0fc743e841c /gdb/testsuite/gdb.xml | |
parent | 723cda25827919370128f30e71a2b01450b4a522 (diff) | |
download | gdb-e515b470281c9dab5de4e7eace22200a577dbf55.zip gdb-e515b470281c9dab5de4e7eace22200a577dbf55.tar.gz gdb-e515b470281c9dab5de4e7eace22200a577dbf55.tar.bz2 |
* Makefile.in (ALL_SUBDIRS): Add gdb.xml.
* configure: Regenerated.
* configure.ac (AC_OUTPUT): Add gdb.xml/Makefile.
* gdb.xml/Makefile.in, gdb.xml/tdesc-arch.exp,
gdb.xml/tdesc-bogus.xml, gdb.xml/tdesc-errors.exp,
gdb.xml/trivial.xml, gdb.xml/tdesc-unknown.xml: New files.
* lib/gdb.exp (gdb_skip_xml_test): New function.
Diffstat (limited to 'gdb/testsuite/gdb.xml')
-rw-r--r-- | gdb/testsuite/gdb.xml/Makefile.in | 13 | ||||
-rw-r--r-- | gdb/testsuite/gdb.xml/tdesc-arch.exp | 104 | ||||
-rw-r--r-- | gdb/testsuite/gdb.xml/tdesc-bogus.xml | 3 | ||||
-rw-r--r-- | gdb/testsuite/gdb.xml/tdesc-errors.exp | 49 | ||||
-rw-r--r-- | gdb/testsuite/gdb.xml/tdesc-unknown.xml | 12 | ||||
-rw-r--r-- | gdb/testsuite/gdb.xml/trivial.xml | 1 |
6 files changed, 182 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.xml/Makefile.in b/gdb/testsuite/gdb.xml/Makefile.in new file mode 100644 index 0000000..01c3cf5 --- /dev/null +++ b/gdb/testsuite/gdb.xml/Makefile.in @@ -0,0 +1,13 @@ +VPATH = @srcdir@ +srcdir = @srcdir@ + +PROGS = + +all info install-info dvi install uninstall installcheck check: + @echo "Nothing to be done for $@..." + +clean mostlyclean: + -rm -f *.ci *.o $(OBJS) $(PROGS) *~ core + +distclean maintainer-clean realclean: clean + -rm -f Makefile diff --git a/gdb/testsuite/gdb.xml/tdesc-arch.exp b/gdb/testsuite/gdb.xml/tdesc-arch.exp new file mode 100644 index 0000000..2ea2bb2 --- /dev/null +++ b/gdb/testsuite/gdb.xml/tdesc-arch.exp @@ -0,0 +1,104 @@ +# 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +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 + } +} + +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 + } + } + + 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" diff --git a/gdb/testsuite/gdb.xml/tdesc-bogus.xml b/gdb/testsuite/gdb.xml/tdesc-bogus.xml new file mode 100644 index 0000000..181b523 --- /dev/null +++ b/gdb/testsuite/gdb.xml/tdesc-bogus.xml @@ -0,0 +1,3 @@ +<!-- Test file for a description containing a parse error (not + well formed). --> +<target> diff --git a/gdb/testsuite/gdb.xml/tdesc-errors.exp b/gdb/testsuite/gdb.xml/tdesc-errors.exp new file mode 100644 index 0000000..03dcd51 --- /dev/null +++ b/gdb/testsuite/gdb.xml/tdesc-errors.exp @@ -0,0 +1,49 @@ +# 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +if {[gdb_skip_xml_test]} { + unsupported "tdesc-errors.exp" + return -1 +} + +gdb_start + +proc set_bad_arch { srcfile errmsg } { + global gdb_prompt + global srcdir + global subdir + + # Anchor the test output, so that error messages are detected. + set cmd "set tdesc filename $srcdir/$subdir/$srcfile" + set msg $cmd + set cmd_regex [string_to_regexp $cmd] + gdb_test_multiple $cmd $msg { + -re "^$cmd_regex\r\n$errmsg$gdb_prompt $" { + pass $msg + } + } +} + +set common_warn "\r\nwarning: Could not load XML target description; ignoring\r\n" + +# This file contains a syntax error. We should warn the user about +# it. +set_bad_arch "tdesc-bogus.xml" \ + "warning: while parsing .*: no element found$common_warn" + +# This file contains a bunch of unrecognized elements. They should be +# silently ignored. +set_bad_arch "tdesc-unknown.xml" "" diff --git a/gdb/testsuite/gdb.xml/tdesc-unknown.xml b/gdb/testsuite/gdb.xml/tdesc-unknown.xml new file mode 100644 index 0000000..72fd7e8 --- /dev/null +++ b/gdb/testsuite/gdb.xml/tdesc-unknown.xml @@ -0,0 +1,12 @@ +<!-- Test file for a description containing unknown elements. --> +<target> + <unknown> + <something> + <tag/> + </something> + <other/> + <third> + <tag/> + </third> + </unknown> +</target> diff --git a/gdb/testsuite/gdb.xml/trivial.xml b/gdb/testsuite/gdb.xml/trivial.xml new file mode 100644 index 0000000..e656681 --- /dev/null +++ b/gdb/testsuite/gdb.xml/trivial.xml @@ -0,0 +1 @@ +<target/> |