tests: Convert do-repeat.sh test to use Autotest.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 25 Sep 2010 23:33:01 +0000 (16:33 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 25 Sep 2010 23:33:01 +0000 (16:33 -0700)
tests/automake.mk
tests/bugs/empty-do-repeat.sh [deleted file]
tests/command/do-repeat.sh [deleted file]
tests/language/control/do-repeat.at [new file with mode: 0644]

index b367984eae982b10a17cdbbc3f121c449de98135..a873a7265dcdbd334b8fe62bc7db697825b93269 100644 (file)
@@ -10,7 +10,6 @@ TESTS_ENVIRONMENT += LC_ALL=C
 TESTS_ENVIRONMENT += EXEEXT=$(EXEEXT)
 
 dist_TESTS = \
-       tests/command/do-repeat.sh \
        tests/command/erase.sh \
        tests/command/examine.sh \
        tests/command/examine-extremes.sh \
@@ -94,7 +93,6 @@ dist_TESTS = \
        tests/bugs/compression.sh \
        tests/bugs/curtailed.sh \
        tests/bugs/data-crash.sh \
-       tests/bugs/empty-do-repeat.sh \
        tests/bugs/get.sh \
        tests/bugs/examine-crash.sh \
        tests/bugs/examine-crash2.sh \
@@ -395,6 +393,7 @@ TESTSUITE_AT = \
        tests/data/calendar.at \
        tests/data/data-in.at \
        tests/language/control/do-if.at \
+       tests/language/control/do-repeat.at \
        tests/language/data-io/add-files.at \
        tests/language/data-io/data-list.at \
        tests/language/data-io/data-reader.at \
diff --git a/tests/bugs/empty-do-repeat.sh b/tests/bugs/empty-do-repeat.sh
deleted file mode 100755 (executable)
index 15ef6be..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-# This program tests for a bug that crashed PSPP given an empty DO
-# REPEAT...END REPEAT block.  See bug #18407.
-
-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 > $TEMPDIR/repeat.stat <<EOF
-DATA LIST NOTABLE /a 1.
-BEGIN DATA.
-0
-END DATA.
-
-DO REPEAT h = a.
-END REPEAT.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-# Must not crash.
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv $TEMPDIR/repeat.stat 
-if [ $? -ne 0 ] ; then fail ; fi
-
-pass;
diff --git a/tests/command/do-repeat.sh b/tests/command/do-repeat.sh
deleted file mode 100755 (executable)
index f5999dc..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/sh
-
-# This program tests the DO REPEAT command.
-
-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
-DATA LIST NOTABLE /a 1.
-BEGIN DATA.
-0
-END DATA.
-
-DO REPEAT h = h0 TO h3 / x = 0 TO 3 / y = 8, 7.5, 6, 5.
-       COMPUTE h = x + y.
-END REPEAT.
-
-VECTOR v(6).
-COMPUTE #idx = 0.
-DO REPEAT i = 1 TO 2.
-       DO REPEAT j = 3 TO 5.
-               COMPUTE #x = i + j.
-               COMPUTE #idx = #idx + 1.
-               COMPUTE v(#idx) = #x.
-       END REPEAT.
-END REPEAT.
-
-LIST.
-
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv $TESTFILE 
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="compare results"
-perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.csv
-diff -b  $TEMPDIR/pspp.csv - <<EOF
-Table: Data List
-a,h0,h1,h2,h3,v1,v2,v3,v4,v5,v6
-0,8.00,8.50,8.00,8.00,4.00,5.00,6.00,5.00,6.00,7.00
-EOF
-if [ $? -ne 0 ] ; then fail ; fi
-
-
-pass
diff --git a/tests/language/control/do-repeat.at b/tests/language/control/do-repeat.at
new file mode 100644 (file)
index 0000000..8f300dc
--- /dev/null
@@ -0,0 +1,49 @@
+AT_BANNER([DO REPEAT])
+
+AT_SETUP([DO REPEAT -- ordinary])
+AT_DATA([do-repeat.sps], [dnl
+DATA LIST NOTABLE /a 1.
+BEGIN DATA.
+0
+END DATA.
+
+DO REPEAT h = h0 TO h3 / x = 0 TO 3 / y = 8, 7.5, 6, 5.
+       COMPUTE h = x + y.
+END REPEAT.
+
+VECTOR v(6).
+COMPUTE #idx = 0.
+DO REPEAT i = 1 TO 2.
+       DO REPEAT j = 3 TO 5.
+               COMPUTE #x = i + j.
+               COMPUTE #idx = #idx + 1.
+               COMPUTE v(#idx) = #x.
+       END REPEAT.
+END REPEAT.
+
+LIST.
+])
+AT_CHECK([pspp -o pspp.csv do-repeat.sps])
+AT_CHECK([cat pspp.csv], [0], [dnl
+Table: Data List
+a,h0,h1,h2,h3,v1,v2,v3,v4,v5,v6
+0,8.00,8.50,8.00,8.00,4.00,5.00,6.00,5.00,6.00,7.00
+])
+AT_CLEANUP
+
+dnl This program tests for a bug that crashed PSPP given an empty DO
+dnl REPEAT...END REPEAT block.  See bug #18407.
+AT_SETUP([DO REPEAT -- empty])
+AT_DATA([do-repeat.sps], [dnl
+DATA LIST NOTABLE /a 1.
+BEGIN DATA.
+0
+END DATA.
+
+DO REPEAT h = a.
+END REPEAT.
+])
+AT_CHECK([pspp -o pspp.csv do-repeat.sps])
+AT_CHECK([cat pspp.csv], [0], [dnl
+])
+AT_CLEANUP