From 43bbe3ba14482dce65459f02e18e16ff718afd44 Mon Sep 17 00:00:00 2001
From: Ben Pfaff <blp@cs.stanford.edu>
Date: Sun, 10 Oct 2010 13:15:58 -0700
Subject: [PATCH] tests: Convert multipass.sh test to Autotest framework.

---
 tests/automake.mk                    |  1 -
 tests/bugs/multipass.sh              | 97 ----------------------------
 tests/language/stats/descriptives.at | 28 ++++++++
 3 files changed, 28 insertions(+), 98 deletions(-)
 delete mode 100755 tests/bugs/multipass.sh

diff --git a/tests/automake.mk b/tests/automake.mk
index ffcf6a26..3a0e5c05 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -27,7 +27,6 @@ dist_TESTS = \
 	tests/formats/wkday-in.sh \
 	tests/formats/wkday-out.sh \
 	tests/formats/360.sh \
-	tests/bugs/multipass.sh \
 	tests/bugs/overwrite-input-file.sh \
 	tests/bugs/overwrite-special-file.sh \
 	tests/bugs/shbang.sh \
diff --git a/tests/bugs/multipass.sh b/tests/bugs/multipass.sh
deleted file mode 100755
index dc70544a..00000000
--- a/tests/bugs/multipass.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/sh
-
-# This program tests for a bug which caused UNIFORM(x) to always return zero.
-
-
-TEMPDIR=/tmp/pspp-tst-$$
-TESTFILE=$TEMPDIR/`basename $0`.sps
-
-# 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$EXEEXT
-
-# ensure that top_srcdir is absolute
-top_srcdir=`cd $top_srcdir; pwd`
-
-STAT_CONFIG_PATH=$top_srcdir/config
-export STAT_CONFIG_PATH
-
-
-cleanup()
-{
-     if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
-	echo "NOT cleaning $TEMPDIR" 
-	return ; 
-     fi
-     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 /ID * ABC *.
-begin data.
-1 3.5
-2 2.0
-3 2.0
-4 3.5
-5 3.0
-6 4.0
-7 5.0
-end data.
-
-TEMPORARY.
-SELECT IF id < 7 .
-
-DESCRIPTIVES
-        /VAR=abc.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-$SUPERVISOR $PSPP -o pspp.csv $TESTFILE
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-diff -c $TEMPDIR/pspp.csv - << EOF
-Table: Reading free-form data from INLINE.
-Variable,Format
-ID,F8.0
-ABC,F8.0
-
-Table: Valid cases = 6; cases with missing value(s) = 0.
-Variable,N,Mean,Std Dev,Minimum,Maximum
-ABC,6,3.00,.84,2.00,4.00
-EOF
-if [ $? -ne 0 ] ; then fail ; fi
-
-pass;
diff --git a/tests/language/stats/descriptives.at b/tests/language/stats/descriptives.at
index ec05f1b9..9c6be8d3 100644
--- a/tests/language/stats/descriptives.at
+++ b/tests/language/stats/descriptives.at
@@ -157,3 +157,31 @@ Variable,N,Mean
 X,6,2.500
 ])
 AT_CLEANUP
+
+dnl Git history shows that this was probably a bug in the PSPP
+dnl core regarding multipass procedures, not anything specific
+dnl to DESCRIPTIVES.
+AT_SETUP([DESCRIPTIVES bug with TEMPORARY])
+AT_DATA([descriptives.sps], [dnl
+DATA LIST LIST NOTABLE /id * abc *.
+BEGIN DATA.
+1 3.5
+2 2.0
+3 2.0
+4 3.5
+5 3.0
+6 4.0
+7 5.0
+END DATA.
+
+TEMPORARY.
+SELECT IF id < 7 .
+
+DESCRIPTIVES /VAR=abc.
+])
+AT_CHECK([pspp -O format=csv descriptives.sps], [0], [dnl
+Table: Valid cases = 6; cases with missing value(s) = 0.
+Variable,N,Mean,Std Dev,Minimum,Maximum
+abc,6,3.00,.84,2.00,4.00
+])
+AT_CLEANUP
-- 
2.30.2