diff options
author | Gaius Mulley <gaius@glam.ac.uk> | 2007-10-16 17:28:56 +0000 |
---|---|---|
committer | Gaius Mulley <gaius@glam.ac.uk> | 2007-10-16 17:28:56 +0000 |
commit | e831e7b6ed2afd432c9791873284b5a1db9c5b97 (patch) | |
tree | 8e1341346fcda786f5a76180dbdf2f20dee82e7c /gdb/testsuite/gdb.modula2 | |
parent | 003bc0ba75a56c42eae3e0220a7d17dbedaf2609 (diff) | |
download | gdb-e831e7b6ed2afd432c9791873284b5a1db9c5b97.zip gdb-e831e7b6ed2afd432c9791873284b5a1db9c5b97.tar.gz gdb-e831e7b6ed2afd432c9791873284b5a1db9c5b97.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/testsuite/gdb.modula2')
-rw-r--r-- | gdb/testsuite/gdb.modula2/Makefile.in | 34 | ||||
-rw-r--r-- | gdb/testsuite/gdb.modula2/unbounded-array.exp | 56 | ||||
-rw-r--r-- | gdb/testsuite/gdb.modula2/unbounded1.c | 51 |
3 files changed, 141 insertions, 0 deletions
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 <nul> in the string, even though high is set to 4. */ + + for (i=0; i<6; i++) + data[i] = input[i]; + return foo (t); +} |