Add test for bug #11916.
authorBen Pfaff <blp@gnu.org>
Sat, 12 Feb 2005 07:28:49 +0000 (07:28 +0000)
committerBen Pfaff <blp@gnu.org>
Sat, 12 Feb 2005 07:28:49 +0000 (07:28 +0000)
tests/ChangeLog
tests/Makefile.am
tests/bugs/crosstabs-crash.sh [new file with mode: 0755]

index 63b1959aed8acb619dfacb0f7c0bd2bd100d3c60..5c7be71935804f7eaf8356fd1d97c0fd3738db2a 100644 (file)
@@ -1,3 +1,7 @@
+Fri Feb 11 23:27:08 2005  Ben Pfaff  <blp@gnu.org>
+
+       * bugs/crosstabs-crash: Add new test for Bug #11916.
+
 Tue Jan 18 19:25:24 WST 2005 John Darrington <john@darrington.wattle.id.au>
 
        * Canonicalised (some of) the tests' temp file names to make it
index b211891befb0f1715b782d69c907a8877f5693c8..757404719fc2058109e717a5736a5449ba5edf6c 100644 (file)
@@ -48,6 +48,7 @@ TESTS = \
        bugs/comment-at-eof.sh \
        bugs/compute-fmt.sh \
        bugs/crosstabs.sh \
+       bugs/crosstabs-crash.sh \
        bugs/curtailed.sh \
        bugs/data-crash.sh \
        bugs/double-frequency.sh \
diff --git a/tests/bugs/crosstabs-crash.sh b/tests/bugs/crosstabs-crash.sh
new file mode 100755 (executable)
index 0000000..db30156
--- /dev/null
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+# This program tests for a bug which caused CROSSTABS to crash in
+# integer mode.
+
+TEMPDIR=/tmp/pspp-tst-$$
+TESTFILE=$TEMPDIR/`basename $0`.sps
+
+here=`pwd`;
+
+# ensure that top_srcdir is absolute
+cd $top_srcdir; top_srcdir=`pwd`
+
+export STAT_CONFIG_PATH=$top_srcdir/config
+
+
+cleanup()
+{
+     rm -rf $TEMPDIR
+}
+
+
+fail()
+{
+    echo $activity
+    echo FAILED
+    cleanup;
+    exit 1;
+}
+
+
+no_result()
+{
+    echo $activity
+    echo NO RESULT;
+    cleanup;
+    exit 2;
+}
+
+pass()
+{
+    cleanup;
+    exit 0;
+}
+
+mkdir -p $TEMPDIR
+
+cd $TEMPDIR
+
+activity="create program"
+cat > $TESTFILE <<EOF
+DATA LIST LIST /A * B * X * Y * .
+BEGIN DATA.
+2 3 4 5
+END DATA.
+
+CROSSTABS VARIABLES X (1,7) Y (1,7) /TABLES X BY Y.
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+diff -b -B -w $TEMPDIR/pspp.list - << EOF
+1.1 DATA LIST.  Reading free-form data from the command file.
++--------+------+
+|Variable|Format|
+#========#======#
+|A       |F8.0  |
+|B       |F8.0  |
+|X       |F8.0  |
+|Y       |F8.0  |
++--------+------+
+
+2.1 CROSSTABS.  Summary.
+#===============#=====================================================#
+#               #                        Cases                        #
+#               #-----------------+-----------------+-----------------#
+#               #      Valid      |     Missing     |      Total      #
+#               #--------+--------+--------+--------+--------+--------#
+#               #       N| Percent|       N| Percent|       N| Percent#
+#---------------#--------+--------+--------+--------+--------+--------#
+#X * Y          #       1|  100.0%|       0|    0.0%|       1|  100.0%#
+#===============#========#========#========#========#========#========#
+
+2.2 CROSSTABS.  X by Y [count].
+#===============#==============================================================#========#
+#               #                               Y                              |        #
+#               #--------+--------+--------+--------+--------+--------+--------+        #
+#              X#    1.00|    2.00|    3.00|    4.00|    5.00|    6.00|    7.00|  Total #
+#---------------#--------+--------+--------+--------+--------+--------+--------+--------#
+#           1.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
+#           2.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
+#           3.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
+#           4.00#      .0|      .0|      .0|      .0|     1.0|      .0|      .0|     1.0#
+#           5.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
+#           6.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
+#           7.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
+#Total          #     .0%|     .0%|     .0%|     .0%|    1.0%|     .0%|     .0%|    1.0%#
+#===============#========#========#========#========#========#========#========#========#
+
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+pass;