Rewrite PSPP output engine.
[pspp-builds.git] / tests / command / file-label.sh
index 0d3500eb8dd4d6a67ee4f495705a8396c4fcd710..4dc929eaa39833a23d1ee8158c5dcd914f9d2a98 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# This program tests the FILE LABEL and  DOCUMENT commands
+# This program tests the FILE LABEL and  DOCUMENT, and ADD DOCUMENT commands
 
 TEMPDIR=/tmp/pspp-tst-$$
 TESTFILE=$TEMPDIR/`basename $0`.sps
@@ -22,6 +22,10 @@ export LANG
 
 cleanup()
 {
+     if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
+       echo "NOT cleaning $TEMPDIR" 
+       return ; 
+     fi
      cd /
      rm -rf $TEMPDIR
 }
@@ -74,13 +78,16 @@ add value labels x 1 'first label mark two'.
 /* Add a file label and a few documents.
 file label This is a test file label.
 document First line of a document
-This is the second very long line of a document in an attempt to overflow the input buffer with a really long line
-Note that the last line should end with a period: .
+Second line of a document
+The last line should end with a period: .
+
 
 /* Display the documents.
 display documents.
 display file label.
 
+ADD DOCUMENT 'Line one' 'Line two'.
+
 /* Save the active file then get it and display the documents again.
 save /OUTFILE='foo.save'.
 get /FILE='foo.save'.
@@ -112,48 +119,98 @@ EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="run program"
-$SUPERVISOR $PSPP --testing-mode -o raw-ascii $TESTFILE
+$SUPERVISOR $PSPP --testing-mode $TESTFILE
 if [ $? -ne 0 ] ; then no_result ; fi
 
 # We need to filter out the dates/times
 activity="date filter"
-grep -v 'Document entered' $TEMPDIR/pspp.list > $TEMPDIR/pspp.filtered
+sed 's/(Entered [^)]*)/(Entered <date>)/' $TEMPDIR/pspp.csv > $TEMPDIR/pspp.filtered
 if [ $? -ne 0 ] ; then no_result ; fi
 
 
 activity="compare results"
-perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.filtered
-diff -b  $TEMPDIR/pspp.filtered - <<EOF
-1.1 DATA LIST.  Reading 1 record from INLINE.
-+--------+------+-------+------+
-|Variable|Record|Columns|Format|
-#========#======#=======#======#
-|X       |     1|  1-  1|F1.0  |
-|Y       |     1|  2-  2|F1.0  |
-+--------+------+-------+------+
+diff -c $TEMPDIR/pspp.filtered - <<EOF
+Table: Reading 1 record from INLINE.
+Variable,Record,Columns,Format
+X,1,1-  1,F1.0
+Y,1,2-  2,F1.0
+
 Documents in the active file:
-   First line of a document
-   This is the second very long line of a document in an attempt to overflow the
-   Note that the last line should end with a period: .
+
+document First line of a document
+
+Second line of a document
+
+The last line should end with a period: .
+
+(Entered <date>)
+
 File label:
+
 This is a test file label
+
 Documents in the active file:
-   First line of a document
-   This is the second very long line of a document in an attempt to overflow the
-   Note that the last line should end with a period: .
+
+document First line of a document
+
+Second line of a document
+
+The last line should end with a period: .
+
+(Entered <date>)
+
+Line one
+
+Line two
+
+(Entered <date>)
+
 File label:
+
 This is a test file label
+
 Documents in the active file:
-   First line of a document
-   This is the second very long line of a document in an attempt to overflow the
-   Note that the last line should end with a period: .
-   There should be another document now.
+
+document First line of a document
+
+Second line of a document
+
+The last line should end with a period: .
+
+(Entered <date>)
+
+Line one
+
+Line two
+
+(Entered <date>)
+
+document There should be another document now.
+
+(Entered <date>)
+
 Documents in the active file:
-   First line of a document
-   This is the second very long line of a document in an attempt to overflow the
-   Note that the last line should end with a period: .
-   There should be another document now.
+
+document First line of a document
+
+Second line of a document
+
+The last line should end with a period: .
+
+(Entered <date>)
+
+Line one
+
+Line two
+
+(Entered <date>)
+
+document There should be another document now.
+
+(Entered <date>)
+
 File label:
+
 This is a test file label
 EOF
 if [ $? -ne 0 ] ; then fail ; fi