From e831e7b6ed2afd432c9791873284b5a1db9c5b97 Mon Sep 17 00:00:00 2001 From: Gaius Mulley Date: Tue, 16 Oct 2007 17:28:56 +0000 Subject: [PATCH] * configure.ac: Added gdb.modula2/Makefile to AC_OUTPUT. * configure.ac: Removed trailing spaces after backslash. * gdb.modula2: New directory. * gdb.modula2/Makefile.in: New file. * gdb.modula2/unbounded-array.exp: New file. * gdb.modula2/unbounded1.c: New file. --- gdb/testsuite/ChangeLog | 9 +++++ gdb/testsuite/configure.ac | 6 +-- gdb/testsuite/gdb.modula2/Makefile.in | 34 ++++++++++++++++ gdb/testsuite/gdb.modula2/unbounded-array.exp | 56 +++++++++++++++++++++++++++ gdb/testsuite/gdb.modula2/unbounded1.c | 51 ++++++++++++++++++++++++ 5 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 gdb/testsuite/gdb.modula2/Makefile.in create mode 100644 gdb/testsuite/gdb.modula2/unbounded-array.exp create mode 100644 gdb/testsuite/gdb.modula2/unbounded1.c diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index db68a56..1b71d92 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2007-10-16 Gaius Mulley + + * configure.ac: Added gdb.modula2/Makefile to AC_OUTPUT. + * configure.ac: Removed trailing spaces after backslash. + * gdb.modula2: New directory. + * gdb.modula2/Makefile.in: New file. + * gdb.modula2/unbounded-array.exp: New file. + * gdb.modula2/unbounded1.c: New file. + 2007-10-15 Daniel Jacobowitz * gdb.xml/tdesc-regs.exp: Add PowerPC support. diff --git a/gdb/testsuite/configure.ac b/gdb/testsuite/configure.ac index b93b923..cc6f620 100644 --- a/gdb/testsuite/configure.ac +++ b/gdb/testsuite/configure.ac @@ -115,6 +115,6 @@ AC_OUTPUT([Makefile \ gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile \ gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile \ gdb.fortran/Makefile gdb.server/Makefile \ - gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile \ - gdb.pascal/Makefile gdb.threads/Makefile gdb.trace/Makefile \ - gdb.xml/Makefile]) + gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile \ + gdb.objc/Makefile gdb.pascal/Makefile gdb.threads/Makefile \ + gdb.trace/Makefile gdb.xml/Makefile]) diff --git a/gdb/testsuite/gdb.modula2/Makefile.in b/gdb/testsuite/gdb.modula2/Makefile.in new file mode 100644 index 0000000..3921465 --- /dev/null +++ b/gdb/testsuite/gdb.modula2/Makefile.in @@ -0,0 +1,34 @@ +# Makefile for regression testing the GNU debugger. +# Copyright 2007 +# Free Software Foundation, Inc. + +# This file is part of GDB. + +# GDB 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, or (at your option) +# any later version. + +# GDB 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. + +VPATH = @srcdir@ +srcdir = @srcdir@ + +EXECUTABLES = + +all info install-info dvi install uninstall installcheck check: + @echo "Nothing to be done for $@..." + +clean mostlyclean: + -rm -f *~ *.o *.ci + -rm -f core ${EXECUTABLES} + +distclean maintainer-clean realclean: clean + -rm -f Makefile config.status config.log diff --git a/gdb/testsuite/gdb.modula2/unbounded-array.exp b/gdb/testsuite/gdb.modula2/unbounded-array.exp new file mode 100644 index 0000000..d6b57e3 --- /dev/null +++ b/gdb/testsuite/gdb.modula2/unbounded-array.exp @@ -0,0 +1,56 @@ +# 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. + +# This file is part of the gdb testsuite. It contains tests for printing +# the elements of an unbounded array using the Modula-2 language mode of +# gdb. + +if $tracelevel then { + strace $tracelevel +} + +set testfile "unbounded1" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug quiet}] != "" } { + untested "Couldn't compile ${srcfile}" + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +if ![runto foo] then { + perror "couldn't run to breakpoint foo" + continue +} + +gdb_test "set lang modula-2" ".*does not match.*" "switch to modula-2" + +# gdb test "ptype a" ".*ARRAY OF.*" "print out unbounded ARRAY type" + +gdb_test "print HIGH(a)" ".*= 4.*" "print the last legal element of array a" + +gdb_test "print a" ".*abcde.*HIGH.*4.*" "print unbounded array contents" + +gdb_test "print/c a\[0\]" ".*a.*" "print the 1st element of array a" +gdb_test "print/c a\[1\]" ".*b.*" "print the 2nd element of array a" +gdb_test "print/c a\[2\]" ".*c.*" "print the 3rd element of array a" +gdb_test "print/c a\[3\]" ".*d.*" "print the 4th element of array a" +gdb_test "print/c a\[4\]" ".*e.*" "print the 5th element of array a" diff --git a/gdb/testsuite/gdb.modula2/unbounded1.c b/gdb/testsuite/gdb.modula2/unbounded1.c new file mode 100644 index 0000000..f08883d --- /dev/null +++ b/gdb/testsuite/gdb.modula2/unbounded1.c @@ -0,0 +1,51 @@ +/* This test script is part of GDB, the GNU debugger. + + 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. + */ + + +typedef struct { + char *_m2_contents; + int _m2_high; +} unbounded; + + +static int +foo (unbounded a) +{ + if (a._m2_contents[3] == 'd') + return 0; + else + return 1; +} + + +main () +{ + unbounded t; + char data[6]; + char *input = "abcde"; + int i; + + t._m2_contents = (char *)&data; + t._m2_high = 4; + /* include the in the string, even though high is set to 4. */ + + for (i=0; i<6; i++) + data[i] = input[i]; + return foo (t); +} -- 2.7.4