INPUT PROGRAM: Convert tests to Autotest framework.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Oct 2010 19:56:59 +0000 (12:56 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Oct 2010 19:56:59 +0000 (12:56 -0700)
tests/automake.mk
tests/bugs/input-crash.sh [deleted file]
tests/language/data-io/inpt-pgm.at [new file with mode: 0644]

index fc246a2f245603e3336b0d036a244d43a0deda68..2193471415090077d334636c63e355261d324cd9 100644 (file)
@@ -29,7 +29,6 @@ dist_TESTS = \
        tests/formats/360.sh \
        tests/bugs/curtailed.sh \
        tests/bugs/if_crash.sh \
-       tests/bugs/input-crash.sh \
        tests/bugs/multipass.sh \
        tests/bugs/overwrite-input-file.sh \
        tests/bugs/overwrite-special-file.sh \
@@ -313,6 +312,7 @@ TESTSUITE_AT = \
        tests/language/data-io/get-data-psql.at \
        tests/language/data-io/get-data-txt.at \
        tests/language/data-io/get.at \
+       tests/language/data-io/inpt-pgm.at \
        tests/language/data-io/list.at \
        tests/language/data-io/match-files.at \
        tests/language/data-io/print.at \
diff --git a/tests/bugs/input-crash.sh b/tests/bugs/input-crash.sh
deleted file mode 100755 (executable)
index fd4694d..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# This program tests for a bug which caused a crash when 
-# reading invalid INPUT PROGRAM syntax.
-
-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 test program"
-cat > $TESTFILE <<EOF 
-INPUT PROGRAM.
-DATA LIST /a 1-9.
-BEGIN DATA
-123456789
-END DATA.
-END INPUT PROGRAM.
-
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-# The above syntax is invalid, so this program should fail to parse
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv -e /dev/null $TESTFILE 
-if [ $? -ne 1 ] ; then fail ; fi
-
-
-activity="create test program 2"
-cat > $TESTFILE <<EOF
-* From bug #21108.
-input program.
-data list list /x.
-end file.
-end input program.
-
-descriptives x.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-# The above syntax is invalid, so this program should fail to parse
-activity="run program 2"
-$SUPERVISOR $PSPP -o pspp.csv -e /dev/null $TESTFILE
-if [ $? -ne 1 ] ; then fail ; fi
-
-
-pass;
diff --git a/tests/language/data-io/inpt-pgm.at b/tests/language/data-io/inpt-pgm.at
new file mode 100644 (file)
index 0000000..7f2e143
--- /dev/null
@@ -0,0 +1,37 @@
+AT_BANNER([INPUT PROGRAM])
+
+dnl Tests for a bug which caused a crash when 
+dnl reading invalid INPUT PROGRAM syntax.
+AT_SETUP([INPUT PROGRAM invalid syntax crash])
+AT_DATA([input-program.sps], [dnl
+INPUT PROGRAM.
+DATA LIST NOTABLE /a 1-9.
+BEGIN DATA
+123456789
+END DATA.
+END INPUT PROGRAM.
+])
+AT_CHECK([pspp -O format=csv input-program.sps], [1], [dnl
+input-program.sps:3: error: BEGIN DATA: BEGIN DATA is not allowed inside INPUT PROGRAM.
+
+input-program.sps:4: error: Syntax error at `123456789': expecting command name.
+
+input-program.sps:5: error: Unknown command END DATA.
+])
+AT_CLEANUP
+
+dnl Tests for bug #21108, a crash when 
+dnl reading invalid INPUT PROGRAM syntax.
+AT_SETUP([INPUT PROGRAM invalid syntax crash])
+AT_DATA([input-program.sps], [dnl
+INPUT PROGRAM.
+DATA LIST LIST NOTABLE /x.
+END FILE.
+END INPUT PROGRAM.
+
+DESCRIPTIVES x.
+])
+AT_CHECK([pspp -O format=csv input-program.sps], [1], [dnl
+error: DESCRIPTIVES: Syntax error at end of file: expecting `BEGIN'.
+])
+AT_CLEANUP