EXAMINE: Convert some more tests to Autotest framework.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Oct 2010 04:12:33 +0000 (21:12 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Oct 2010 04:12:33 +0000 (21:12 -0700)
I'm not really sure that big-input-2.sh was an EXAMINE bug.  It could have
been a more generic bug.  I wasn't able to quickly determine what its
original motivation was.

tests/automake.mk
tests/bugs/big-input-2.sh [deleted file]
tests/bugs/big-input.sh [deleted file]
tests/language/stats/examine.at

index f104ce9a927fe584ae3e83c4f8a670c8e655ec75..0e563c0c82a31ae284ab241283d73be04ad7f018 100644 (file)
@@ -27,8 +27,6 @@ dist_TESTS = \
        tests/formats/wkday-in.sh \
        tests/formats/wkday-out.sh \
        tests/formats/360.sh \
-       tests/bugs/big-input.sh \
-       tests/bugs/big-input-2.sh \
        tests/bugs/case-map.sh \
        tests/bugs/comment-at-eof.sh \
        tests/bugs/compression.sh \
diff --git a/tests/bugs/big-input-2.sh b/tests/bugs/big-input-2.sh
deleted file mode 100755 (executable)
index 21e3041..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# This program tests for a bug which caused  a crash when 
-# very large files are presented.
-
-
-TEMPDIR=/tmp/pspp-tst-$$
-TESTFILE=$TEMPDIR/`basename $0`.sps
-TESTFILE=$TEMPDIR/`basename $0`.sps
-: ${PERL:=perl}
-
-# ensure that top_builddir  are absolute
-if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
-if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
-top_builddir=`cd $top_builddir; pwd`
-PSPP=$top_builddir/src/ui/terminal/pspp$EXEEXT
-
-# ensure that top_srcdir is absolute
-top_srcdir=`cd $top_srcdir; pwd`
-
-STAT_CONFIG_PATH=$top_srcdir/config
-export STAT_CONFIG_PATH
-
-
-cleanup()
-{
-     if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
-       echo "NOT cleaning $TEMPDIR" 
-       return ; 
-     fi
-     cd /
-     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="delete data"
-rm -f $TEMPDIR/large.dat
-if [ $? -ne 0 ] ; then no_result ; fi
-
-printf "Creating input data.  Please wait"
-activity="create data"
-$PERL -e 'for ($i=0; $i<100000; $i++) { print "AB12\n" };
-          for ($i=0; $i<100000; $i++) { print "AB04\n" };' > $TEMPDIR/large.dat
-if [ $? -ne 0 ] ; then no_result ; fi
-printf ".\n";
-
-activity="create program"
-cat > $TESTFILE <<EOF
-DATA LIST FILE='$TEMPDIR/large.dat' /S 1-2 (A) X 3 .
-
-
-AGGREGATE OUTFILE=* /BREAK=X /A=N.
-
-
-EXAMINE /A BY /X.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv -e /dev/null $TESTFILE 
-if [ $? -ne 0 ] ; then fail ; fi
-
-activity="appending to data"
-# Put another 50,000 cases into large.dat
-$PERL -e 'for ($i=0; $i<25000; $i++) { print "AB04\nAB12\n" };' >> $TEMPDIR/large.dat
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv -e /dev/null $TESTFILE 
-if [ $? -ne 0 ] ; then fail ; fi
-
-pass;
diff --git a/tests/bugs/big-input.sh b/tests/bugs/big-input.sh
deleted file mode 100755 (executable)
index 11131b2..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/sh
-
-# This program tests for a bug which caused a crash when 
-# a large number of cases where presented.
-
-
-TEMPDIR=/tmp/pspp-tst-$$
-TESTFILE=$TEMPDIR/`basename $0`.sps
-
-# ensure that top_builddir  are absolute
-if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
-if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
-top_builddir=`cd $top_builddir; pwd`
-PSPP=$top_builddir/src/ui/terminal/pspp$EXEEXT
-
-# ensure that top_srcdir is absolute
-top_srcdir=`cd $top_srcdir; pwd`
-
-STAT_CONFIG_PATH=$top_srcdir/config
-export STAT_CONFIG_PATH
-
-
-cleanup()
-{
-     if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
-       echo "NOT cleaning $TEMPDIR" 
-       return ; 
-     fi
-     cd /
-     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
-INPUT PROGRAM.
-       LOOP #I=1 TO 50000.
-               COMPUTE X=NORMAL(10).
-               END CASE.
-       END LOOP.
-       END FILE.
-END INPUT PROGRAM.
-
-
-EXAMINE /x
-       /STATISTICS=DESCRIPTIVES.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv -e /dev/null $TESTFILE
-if [ $? -ne 0 ] ; then fail ; fi
-
-pass;
index 4cd52b9feb9dd4439bdb0235d508d54eee13504f..9bfa9c78ed5f952eeed35076df291924ec81a2d4 100644 (file)
@@ -514,3 +514,49 @@ warning: Not creating plot because data set is empty.
 ])
 dnl Ignore output -- this is just a no-crash check.
 AT_CLEANUP
+
+dnl Test that big input doesn't crash (bug 11307).
+AT_SETUP([EXAMINE -- big input doesn't crash])
+AT_DATA([examine.sps], [dnl
+INPUT PROGRAM.
+       LOOP #I=1 TO 50000.
+               COMPUTE X=NORMAL(10).
+               END CASE.
+       END LOOP.
+       END FILE.
+END INPUT PROGRAM.
+
+
+EXAMINE /x
+       /STATISTICS=DESCRIPTIVES.
+])
+AT_CHECK([pspp -o pspp.csv examine.sps])
+dnl Ignore output -- this is just a no-crash check.
+AT_CLEANUP
+
+dnl Another test that big input doesn't crash.
+dnl The actual bug that this checks for has been lost.
+AT_SETUP([EXAMINE -- big input doesn't crash 2])
+AT_DATA([make-big-input.pl], 
+  [for ($i=0; $i<100000; $i++) { print "AB12\n" };
+   for ($i=0; $i<100000; $i++) { print "AB04\n" };
+])
+AT_CHECK([$PERL make-big-input.pl > large.txt])
+AT_DATA([examine.sps], [dnl
+DATA LIST FILE='large.txt' /S 1-2 (A) X 3 .
+
+
+AGGREGATE OUTFILE=* /BREAK=X /A=N.
+
+
+EXAMINE /A BY /X.
+])
+AT_CHECK([pspp -o pspp.csv examine.sps])
+dnl Ignore output -- this is just a no-crash check.
+AT_DATA([more-big-input.pl], 
+  [for ($i=0; $i<25000; $i++) { print "AB04\nAB12\n" };
+])
+AT_CHECK([$PERL more-big-input.pl >> large.txt])
+AT_CHECK([pspp -o pspp.csv examine.sps])
+dnl Ignore output -- this is just a no-crash check.
+AT_CLEANUP