Rewrite PSPP output engine.
[pspp-builds.git] / tests / command / match-files.sh
index 367c6ddc6dc3ebd3f38d341fef97ce634d8003f0..a125cbd6e0db53006e1929f6dd6c799c95daae6a 100755 (executable)
@@ -21,9 +21,12 @@ export STAT_CONFIG_PATH
 
 cleanup()
 {
+     if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
+       echo "NOT cleaning $TEMPDIR" 
+       return ; 
+     fi
     cd /
     rm -rf $TEMPDIR
-    :
 }
 
 
@@ -56,19 +59,19 @@ cd $TEMPDIR
 
 activity="data create"
 cat > a.data <<EOF
-0aA
 1aB
-1aC
-2aD
+8aM
 3aE
-4aF
 5aG
+0aA
 5aH
 6aI
 7aJ
+2aD
 7aK
+1aC
 7aL
-8aM
+4aF
 EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 cat > b.data <<EOF
@@ -82,40 +85,40 @@ EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 cat > ff.out <<EOF
-A B C D INA INB
-- - - - --- ---
-0 a A     1   0
-1 a B N   1   1
-1 a C     1   0
-2 a D     1   0
-3 a E O   1   1
-4 a F P   1   1
-5 a G     1   0
-5 a H     1   0
-6 a I Q   1   1
-7 a J R   1   1
-7 a K     1   0
-7 a L     1   0
-8 a M     1   0
-9 b   S   0   1
+Table: Data List
+A,B,C,D,INA,INB,FIRST,LAST
+0,a,A,,1,0,1,1
+1,a,B,N,1,1,1,0
+1,a,C,,1,0,0,1
+2,a,D,,1,0,1,1
+3,a,E,O,1,1,1,1
+4,a,F,P,1,1,1,1
+5,a,G,,1,0,1,0
+5,a,H,,1,0,0,1
+6,a,I,Q,1,1,1,1
+7,a,J,R,1,1,1,0
+7,a,K,,1,0,0,0
+7,a,L,,1,0,0,1
+8,a,M,,1,0,1,1
+9,b,,S,0,1,1,1
 EOF
 
 cat > ft.out <<EOF
-A B C D INA INB
-- - - - --- ---
-0 a A     1   0
-1 a B N   1   1
-1 a C N   1   1
-2 a D     1   0
-3 a E O   1   1
-4 a F P   1   1
-5 a G     1   0
-5 a H     1   0
-6 a I Q   1   1
-7 a J R   1   1
-7 a K R   1   1
-7 a L R   1   1
-8 a M     1   0
+Table: Data List
+A,B,C,D,INA,INB,FIRST,LAST
+0,a,A,,1,0,1,1
+1,a,B,N,1,1,1,0
+1,a,C,N,1,1,0,1
+2,a,D,,1,0,1,1
+3,a,E,O,1,1,1,1
+4,a,F,P,1,1,1,1
+5,a,G,,1,0,1,0
+5,a,H,,1,0,0,1
+6,a,I,Q,1,1,1,1
+7,a,J,R,1,1,1,0
+7,a,K,R,1,1,0,0
+7,a,L,R,1,1,0,1
+8,a,M,,1,0,1,1
 EOF
 
 # Test nonparallel match and table lookup.
@@ -140,21 +143,27 @@ $dla
 $sa
 $dlb
 $sb
-match files $type1='a.sys' /in=INA /$type2='b.sys' /in=INB /rename c=D /by a.
+match files $type1='a.sys' /in=INA /sort
+           /$type2='b.sys' /in=INB /rename c=D
+           /by a /first=FIRST /last=LAST.
 EOF
            elif [ $sources = sa ]; then
                cat <<EOF
 $dla
 $sa
 $dlb
-match files $type1='a.sys' /in=INA /$type2=* /in=INB /rename c=D /by a.
+match files $type1='a.sys' /in=INA /sort
+           /$type2=* /in=INB /rename c=D
+           /by a /first=FIRST /last=LAST.
 EOF
            elif [ $sources = as ]; then
                cat <<EOF
 $dlb
 $sb
 $dla
-match files $type1=* /in=INA /$type2='b.sys' /in=INB /rename c=D /by a.
+match files $type1=* /in=INA /sort
+           /$type2='b.sys' /in=INB /rename c=D
+           /by a /first=FIRST /last=LAST.
 EOF
            else
                activity="internal error"
@@ -165,13 +174,11 @@ EOF
        if [ $? -ne 0 ] ; then no_result ; fi
 
        activity="run $name.pspp"
-       $SUPERVISOR $PSPP -o raw-ascii -e /dev/null $name.pspp 
+       $SUPERVISOR $PSPP --testing-mode -e /dev/null $name.pspp 
        if [ $? -ne 0 ] ; then no_result ; fi
 
        activity="check $name output"
-       perl -pi -e 's/^\s*$//g' pspp.list
-       perl -pi -e 's/^\s*$//g' $types.out
-       diff -b -w pspp.list $types.out
+       diff -c pspp.csv $types.out
        if [ $? -ne 0 ] ; then fail ; fi
     done
 done
@@ -190,27 +197,26 @@ EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="run $name.pspp"
-$SUPERVISOR $PSPP -o raw-ascii -e /dev/null $name.pspp 
+$SUPERVISOR $PSPP --testing-mode -e /dev/null $name.pspp 
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="check $name output"
-perl -pi -e 's/^\s*$//g' pspp.list
-diff -b -w - pspp.list <<EOF
-A B C D E F
-- - - - - -
-0 a A 1 b N
-1 a B 3 b O
-1 a C 4 b P
-2 a D 6 b Q
-3 a E 7 b R
-4 a F 9 b S
-5 a G
-5 a H
-6 a I
-7 a J
-7 a K
-7 a L
-8 a M
+diff -c - pspp.csv <<EOF
+Table: Data List
+A,B,C,D,E,F
+1,a,B,1,b,N
+8,a,M,3,b,O
+3,a,E,4,b,P
+5,a,G,6,b,Q
+0,a,A,7,b,R
+5,a,H,9,b,S
+6,a,I,,,
+7,a,J,,,
+2,a,D,,,
+7,a,K,,,
+1,a,C,,,
+7,a,L,,,
+4,a,F,,,
 EOF
 if [ $? -ne 0 ] ; then fail ; fi
 
@@ -239,17 +245,16 @@ EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="run $name.pspp"
-$SUPERVISOR $PSPP -o raw-ascii -e /dev/null $name.pspp 
+$SUPERVISOR $PSPP --testing-mode -e /dev/null $name.pspp 
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="check $name output"
-perl -pi -e 's/^\s*$//g' pspp.list
-diff -b -w - pspp.list <<EOF | perl -e 's/^\s*$//g'
-        x        z        y
- -------- -------- --------
-     3.00     8.00    30.00 
-     2.00      .      21.00 
-     1.00      .      22.00 
+diff -c - pspp.csv <<EOF
+Table: Data List
+x,z,y
+3.00,8.00,30.00
+2.00,.  ,21.00
+1.00,.  ,22.00
 EOF
 if [ $? -ne 0 ] ; then fail ; fi