#!/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
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
+LANG=C
+export LANG
cleanup()
{
+ if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then
+ echo "NOT cleaning $TEMPDIR"
+ return ;
+ fi
cd /
rm -rf $TEMPDIR
}
/* 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. /* undocumented feature of PSPP
+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'.
display documents.
-display file label. /* undocumented feature of PSPP
+display file label.
/* There is an interesting interaction that occurs if the 'execute'
/* command below. What happens is that an error message is output
save /OUTFILE='foo.save'.
get /FILE='foo.save'.
display documents.
-display file label. /* undocumented feature of PSPP
+display file label.
/* Done.
if [ $? -ne 0 ] ; then no_result ; fi
activity="run program"
-$SUPERVISOR $top_builddir/src/pspp --testing-mode -o raw-ascii $TESTFILE
+$SUPERVISOR $PSPP -o pspp.csv $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