Fix tests/command/sample.sh test on Mingw.
[pspp-builds.git] / tests / command / sample.sh
index 599892714731308d1e2ca2bc9acbb4e5cb419d0b..fc856a4adfbfc2f0ccab2743d482d5cb30582157 100755 (executable)
@@ -3,17 +3,28 @@
 # This program tests the SAMPLE function
 
 TEMPDIR=/tmp/pspp-tst-$$
+TESTFILE=$TEMPDIR/`basename $0`.sps
 
-here=`pwd`;
+# 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
-cd $top_srcdir; top_srcdir=`pwd`
+top_srcdir=`cd $top_srcdir; pwd`
 
-export STAT_CONFIG_PATH=$top_srcdir/config
+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
 }
 
@@ -48,9 +59,9 @@ cd $TEMPDIR
 
 activity="create program"
 cat > $TEMPDIR/sample.stat <<EOF
-set seed=2
+set seed=3
 
-data list /a 1-2.
+data list notable /A 1-2.
 begin data.
 1
 2
@@ -64,16 +75,52 @@ begin data.
 10
 end data.
 sample .5.
-n 5.
 list.
 EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 
-$here/../src/pspp -o raw-ascii $TEMPDIR/sample.stat
+activity="run program"
+$SUPERVISOR $PSPP --testing-mode $TEMPDIR/sample.stat 
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="create head"
+grep -v '^[ \r]*$' $TEMPDIR/pspp.list | head -2 > $TEMPDIR/head
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="extract data"
+grep  '[0-9][0-9]*' $TEMPDIR/pspp.list > $TEMPDIR/data
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="compare head"
+perl -pi -e 's/^\s*$//g' $TEMPDIR/head
+diff -b $TEMPDIR/head - << EOF
+ A
+--
+EOF
 if [ $? -ne 0 ] ; then fail ; fi
 
-fail
+activity="compare data"
+diff -w $TEMPDIR/data - << EOF > $TEMPDIR/diffs
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+EOF
+# note   vv 
+if [ $? -eq 0 ] ; then fail ; fi
+
+# Check that there was nothing added
+grep '^<' $TEMPDIR/diffs
+# note   vv
+if [ $? -eq 0 ] ; then fail ; fi
 
 
 pass;