tests: Convert tab handling test to Autotest framework.
authorBen Pfaff <blp@cs.stanford.edu>
Wed, 6 Oct 2010 04:59:17 +0000 (21:59 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Wed, 6 Oct 2010 04:59:17 +0000 (21:59 -0700)
tests/automake.mk
tests/command/tabs.sh [deleted file]
tests/language/data-io/data-list.at

index df9dc48ff68942d4be3834b95dddee53b9602756..8f1e3a48615d0e1eb6107da7bb9f14e83ff1773b 100644 (file)
@@ -10,7 +10,6 @@ TESTS_ENVIRONMENT += LC_ALL=C
 TESTS_ENVIRONMENT += EXEEXT=$(EXEEXT)
 
 dist_TESTS = \
-       tests/command/tabs.sh \
        tests/command/update.sh \
        tests/command/use.sh \
        tests/command/variable-display.sh \
diff --git a/tests/command/tabs.sh b/tests/command/tabs.sh
deleted file mode 100755 (executable)
index 83b3641..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/sh
-
-# This program tests that tab characters can be used in string input
-
-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 1"
-cat > $TEMPDIR/tabs.stat <<EOF
-data list /X 1-80 (a).
-begin data.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="create program 2"
-printf  "\t1\t12\t123\t1234\t12345\n" >> $TEMPDIR/tabs.stat
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-activity="create program 3"
-cat >> $TEMPDIR/tabs.stat <<EOF
-end data.
-print /x.
-execute.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-activity="run program"
-$SUPERVISOR $PSPP -o pspp.csv $TEMPDIR/tabs.stat
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-diff -c $TEMPDIR/pspp.csv - << EOF | perl -e 's/^\s*$//g'
-Table: Reading 1 record from INLINE.
-Variable,Record,Columns,Format
-X,1,1- 80,A80
-
-    1   12  123 1234    12345
-EOF
-if [ $? -ne 0 ] ; then fail ; fi
-
-pass;
index 64a918df9e3d6688f86ad25aec9c806055319f55..dba2a4a12e182a0d14cd0db555ffcfb4389c54d0 100644 (file)
@@ -225,3 +225,33 @@ a,b,c
 16.00,17.00,18.00
 ])
 AT_CLEANUP
+
+AT_SETUP([DATA LIST properly expands tabs in input])
+AT_DATA([data-list.sps], [dnl
+data list notable /X 1-50 (a).
+begin data.
+       1       12      123     1234    12345    .
+end data.
+print /x.
+print outfile='print.txt' /x.
+write outfile='write.txt' /x.
+execute.
+])
+AT_CHECK([sed -n '/12345/l' data-list.sps], [0], [dnl
+\t1\t12\t123\t1234\t12345    .$
+])
+AT_CHECK([pspp -o pspp.csv data-list.sps])
+dnl The CSV driver drops leading spaces so they don't appear here:
+AT_CHECK([cat pspp.csv], [0], [dnl
+1       12      123     1234    12345    . @&t@
+])
+dnl But they do appear in print.txt.  The PRINT command also puts a space
+dnl at the beginning of the line and after the variable:
+AT_CHECK([cat print.txt], [0], [dnl
+         1       12      123     1234    12345    . @&t@
+])
+dnl WRITE doesn't add spaces at the beginning or end of lines:
+AT_CHECK([cat write.txt], [0], [dnl
+        1       12      123     1234    12345    .
+])
+AT_CLEANUP