#!/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
-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
# ensure that top_srcdir is absolute
-cd $top_srcdir; top_srcdir=`pwd`
+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 $here/../src/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
+grep -v '[Ee]ntered' $TEMPDIR/pspp.list > $TEMPDIR/pspp.filtered
if [ $? -ne 0 ] ; then no_result ; fi
activity="compare results"
-diff -b -B $TEMPDIR/pspp.filtered - <<EOF
-1.1 DATA LIST. Reading 1 record from the command file.
+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 |
+--------+------+-------+------+
-
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: .
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: .
+Line one
+Line two
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: .
+Line one
+Line two
+document There should be another document now.
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: .
+Line one
+Line two
+document There should be another document now.
File label:
This is a test file label
EOF