# This program tests the autorecode command
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`
-export STAT_CONFIG_PATH=$top_srcdir/config
+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
}
cd $TEMPDIR
activity="create program"
-cat > $TEMPDIR/prog.sps <<EOF
+cat > $TESTFILE <<EOF
/* Tries AUTORECODE on some random but similar strings of characters.
-data list /x 1-5(a) y 7.
+data list /X 1-5(a) Y 7.
begin data.
lasdj 1 1 3
asdfk 0 3 <---- These are the numbers that should be produced for a 4
asdfk 1 3 3
end data.
-autorecode x y into a b/descend.
+autorecode x y into A B/descend.
list.
/* Just to make sure it works on second & subsequent executions,
/* try it again.
-compute z=trunc(y/2).
-autorecode z into w.
+compute Z=trunc(y/2).
+autorecode z into W.
list.
EOF
if [ $? -ne 0 ] ; then no_result ; fi
activity="run program"
-$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+$SUPERVISOR $PSPP --testing-mode $TESTFILE
if [ $? -ne 0 ] ; then no_result ; fi
activity="test output"
-diff -b -B $TEMPDIR/pspp.list - <<EOF
-1.1 DATA LIST. Reading 1 record from the command file.
+perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
+diff -b $TEMPDIR/pspp.list - <<EOF
+1.1 DATA LIST. Reading 1 record from INLINE.
+--------+------+-------+------+
|Variable|Record|Columns|Format|
#========#======#=======#======#
|X | 1| 1- 5|A5 |
|Y | 1| 7- 7|F1.0 |
+--------+------+-------+------+
-
X Y A B
----- - -------- --------
lasdj 1 1.00 3.00
lajks 9 2.00 1.00
asdfk 0 3.00 4.00
asdfk 1 3.00 3.00
-
X Y A B Z W
----- - -------- -------- -------- --------
lasdj 1 1.00 3.00 .00 1.00