#!/bin/sh
# This program tests for a bug which caused
# the second procedure after GET FILE to corrupt its output
TEMPDIR=/tmp/pspp-tst-$$
TESTFILE=$TEMPDIR/`basename $0`.sps
here=`pwd`;
# ensure that top_srcdir is absolute
cd $top_srcdir; top_srcdir=`pwd`
STAT_CONFIG_PATH=$top_srcdir/config
export STAT_CONFIG_PATH
cleanup()
{
cd /
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 > $TESTFILE <<EOF
DATA LIST LIST NOTABLE /LOCATION * EDITOR * SHELL * FREQ * .
BEGIN DATA.
1.00 1.00 1.0 2.00
1.00 1.00 2.0 30.00
1.00 2.00 1.0 8.00
1.00 2.00 2.0 20.00
2.00 1.00 1.0 2.00
2.00 1.00 2.0 22.00
2.00 2.00 1.0 1.00
2.00 2.00 2.0 3.00
END DATA.
SAVE /OUTFILE='$TEMPDIR/foo.sav'.
GET /FILE='$TEMPDIR/foo.sav'.
* This one's ok
LIST.
* But this one get rubbish
LIST.
EOF
if [ $? -ne 0 ] ; then no_result ; fi
activity="run program"
$SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
if [ $? -ne 0 ] ; then no_result ; fi
activity="compare output"
diff -b -B -w $TEMPDIR/pspp.list - << EOF
LOCATION EDITOR SHELL FREQ
-------- -------- -------- --------
1.00 1.00 1.00 2.00
1.00 1.00 2.00 30.00
1.00 2.00 1.00 8.00
1.00 2.00 2.00 20.00
2.00 1.00 1.00 2.00
2.00 1.00 2.00 22.00
2.00 2.00 1.00 1.00
2.00 2.00 2.00 3.00
LOCATION EDITOR SHELL FREQ
-------- -------- -------- --------
1.00 1.00 1.00 2.00
1.00 1.00 2.00 30.00
1.00 2.00 1.00 8.00
1.00 2.00 2.00 20.00
2.00 1.00 1.00 2.00
2.00 1.00 2.00 22.00
2.00 2.00 1.00 1.00
2.00 2.00 2.00 3.00
EOF
if [ $? -ne 0 ] ; then fail ; fi
pass;
syntax highlighted by Code2HTML, v. 0.9.1