From af444ed55b08448b9a44cf54cd20af324b0ab4c4 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 17 Dec 2003 01:09:47 +0000 Subject: [PATCH] Added a test for the FILE LABEL and DOCUMENT commands --- tests/command/file-label.sh | 165 ++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100755 tests/command/file-label.sh diff --git a/tests/command/file-label.sh b/tests/command/file-label.sh new file mode 100755 index 00000000..eb779266 --- /dev/null +++ b/tests/command/file-label.sh @@ -0,0 +1,165 @@ +#!/bin/sh + +# This program tests the FILE LABEL and DOCUMENT commands + +TEMPDIR=/tmp/pspp-tst-$$ + +here=`pwd`; + +# ensure that top_srcdir is absolute +cd $top_srcdir; top_srcdir=`pwd` + +export STAT_CONFIG_PATH=$top_srcdir/config + + +cleanup() +{ + rm -rf $TEMPDIR +} + + +fail() +{ + echo $activity + echo FAILED + cleanup; + exit 1; +} + + +no_result() +{ + echo $activity + echo NO RESULT; + cleanup; + exit 2; +} + +pass() +{ + cleanup; + exit 0; +} + +mkdir -p $TEMPDIR + +cd $TEMPDIR + +activity="create program" +cat > $TEMPDIR/file-lab.stat << EOF + + +/* Set up a dummy active file in memory. +data list /x 1 y 2. +begin data. +16 +27 +38 +49 +50 +end data. + +/* Add value labels for some further testing of value labels. +value labels x y 1 'first label' 2 'second label' 3 'third label'. +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: . + +/* Display the documents. +display documents. +display file label. /* undocumented feature of PSPP + +/* Save the active file then get it and display the documents again. +save 'foo.save'. +get 'foo.save'. +display documents. +display file label. /* undocumented feature of PSPP + +/* There is an interesting interaction that occurs if the 'execute' +/* command below. What happens is that an error message is output +/* at the next 'save' command that 'foo.save' is already open for +/* input. This is because the 'get' hasn't been executed yet and +/* therefore PSPP would be reading from and writing to the same +/* file at once, which is obviously a Bad Thing. But 'execute' +/* here clears up that potential problem. +execute. + +/* Add another (shorter) document and try again. +document There should be another document now. +display documents. + +/* Save and get. +save 'foo.save'. +get 'foo.save'. +display documents. +display file label. /* undocumented feature of PSPP + +/* Done. + +EOF +if [ $? -ne 0 ] ; then no_result ; fi + +activity="run program" +$here/../src/pspp --testing-mode -o raw-ascii $TEMPDIR/file-lab.stat +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 +if [ $? -ne 0 ] ; then no_result ; fi + +activity="compare results" +diff -b -B $TEMPDIR/pspp.filtered - <