* pr-5016.ch, pr-5016.exp, Makefile.in: New testcase.
authorPer Bothner <per@bothner.com>
Tue, 6 Sep 1994 20:23:16 +0000 (20:23 +0000)
committerPer Bothner <per@bothner.com>
Tue, 6 Sep 1994 20:23:16 +0000 (20:23 +0000)
* Makefile.in (.exe.check):  New rule, to run just one test.

gdb/testsuite/gdb.chill/.Sanitize
gdb/testsuite/gdb.chill/Makefile.in
gdb/testsuite/gdb.chill/pr-5016.ch [new file with mode: 0644]
gdb/testsuite/gdb.chill/pr-5016.exp [new file with mode: 0644]

index 05a08054a56609f43f0712fcfeb129375e7f6ad9..f9fdaaa10860bceee5428b08d5143a6267a8b87c 100644 (file)
@@ -31,6 +31,8 @@ configure.in
 pr-4975.ch
 pr-4975-grt.ch
 pr-4975.exp
+pr-5016.ch
+pr-5016.exp
 pr-5020.ch
 pr-5020.exp
 pr-5022.ch
index 6922f85f7258e083fd245d77d4139a0c45a12c6b..144b1c1bcb243005b1ff3c82b7a7bff40d721352 100644 (file)
@@ -103,7 +103,7 @@ GDBFLAGS = -nx
 #### host, target, and site specific Makefile frags come in here.
 
 EXECUTABLES = chillvars.exe result.exe \
-  pr-4975.exe pr-5020.exe pr-5022.exe
+  pr-4975.exe pr-5016.exe pr-5020.exe pr-5022.exe
 
 # To force pr-4975-grt to be compiled before pr-4975, so the
 # latter can use the former's grant file.
@@ -111,7 +111,7 @@ pr-4975.o: pr-4975-grt.o
 
 all:   $(EXECUTABLES)
 
-.SUFFIXES: .ch .exe
+.SUFFIXES: .ch .exe .check
 
 .o.exe:
        $(CHILL_FOR_TARGET) $(CHILLFLAGS) $(LDFLAGS) -o $*.exe $*.o $(CHILL_LIB) $(LIBS)
@@ -119,6 +119,14 @@ all:       $(EXECUTABLES)
 .ch.o:
        $(CHILL_FOR_TARGET) $(CHILLFLAGS) -fspecial_UC -c $<
 
+# Do 'make chillvars.check' to run just the chillvars.{ch,exp} test.
+
+.exe.check:
+       rootme=`pwd`/; export rootme; \
+       cd .. ; \
+       $(MAKE) just-check RUNTESTFLAGS="${RUNTESTFLAGS} $*.exp" \
+         GDB=${GDB} EXPECT=${EXPECT}
+
 .NOEXPORT:
 INFODIRS=doc
 info:
diff --git a/gdb/testsuite/gdb.chill/pr-5016.ch b/gdb/testsuite/gdb.chill/pr-5016.ch
new file mode 100644 (file)
index 0000000..a6829bf
--- /dev/null
@@ -0,0 +1,24 @@
+vector: MODULE
+
+SYNMODE m_index = RANGE(1:10);
+NEWMODE vector = ARRAY (m_index) INT;
+
+DCL a, b, c vector;
+
+dump: PROC( a vector LOC, c CHAR );
+  DCL i m_index;
+  DO FOR i IN m_index;
+    WRITETEXT( STDOUT, "%C(%C)=%C ", c, i, a(i) );
+  OD;
+  WRITETEXT( STDOUT, "%/" );
+END dump;
+
+a := vector [ 1, -1, 2, -2, 3, -3, 4, -4, 5, -5 ];
+b := a;
+b(4) := 4;
+b(7) := 7;
+c := vector [(*): 0];
+
+dump(a,'a');
+
+END vector;
diff --git a/gdb/testsuite/gdb.chill/pr-5016.exp b/gdb/testsuite/gdb.chill/pr-5016.exp
new file mode 100644 (file)
index 0000000..827c405
--- /dev/null
@@ -0,0 +1,59 @@
+# Copyright (C) 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Per Bothner. (bothner@cygnus.com)
+
+if $tracelevel then {
+       strace $tracelevel
+}
+
+proc do_tests {} {
+    global prms_id bug_id subdir objdir srcdir binfile prompt
+
+    set prms_id 0
+    set bug_id 0
+
+    # Start with a fresh gdb.
+
+    gdb_exit
+    gdb_start
+    gdb_reinitialize_dir $srcdir/$subdir
+    gdb_load $objdir/$subdir/$binfile
+
+    send "set language chill\n" ; expect -re "$prompt $"
+
+    runto dump
+    gdb_test "whatis i" "type = m_index" "whatis int-range"
+    gdb_test_exact "ptype m_index" "type = RANGE (1:10)" "ptype m_index"
+    gdb_test_exact "whatis a" "type = /*LOC*/ vector"
+    gdb_test_exact "ptype a" "type = /*LOC*/ ARRAY (1:10) INT"
+}
+
+# Check to see if we have an executable to test.  If not, then either we
+# haven't tried to compile one, or the compilation failed for some reason.
+# In either case, just notify the user and skip the tests in this file.
+
+set binfile "pr-5016.exe"
+set srcfile $binfile.ch
+
+if ![file exists $objdir/$subdir/$binfile] then {
+    warning "$binfile does not exist; tests suppressed."
+} else {
+    do_tests
+}