X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fexpressions%2Fexpressions.sh;h=9bfd90ca6fabf0c60dae2314ce4bba1546a6b657;hb=352d48a9cf76667dd4824326c7151df70e90d7a1;hp=4ddb5537a0e608ac34a462a2feaa1f954ab2020a;hpb=d807ad29cc0d3caa4f0e04ee4b75c70a225cfeaf;p=pspp diff --git a/tests/expressions/expressions.sh b/tests/expressions/expressions.sh index 4ddb5537a0..9bfd90ca6f 100755 --- a/tests/expressions/expressions.sh +++ b/tests/expressions/expressions.sh @@ -4,18 +4,23 @@ TEMPDIR=/tmp/pspp-tst-$$ -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 cleanup() { + cd / rm -rf $TEMPDIR - : } @@ -665,6 +670,7 @@ number("123", f3.0) => 123.00 number(" 123", f3.0) => 12.00 number("123", f3.1) => 12.30 number(" ", f3.1) => sysmis +number("123", a8) => error number("123", cca1.2) => error # CCA is not an input format ltrim(' abc') => "abc" @@ -1273,6 +1279,20 @@ SYSMIS($SYSMIS) => true SYSMIS(1 + $SYSMIS) => true # FIXME: out-of-range and nearly out-of-range values on dates + +# Tests correctness of generic optimizations in optimize_tree(). +(X = 10.00); x + 0 => 10.00 +(X = -3.00); x - 0 => -3.00 +(X = 5.00); 0 + x => 5.00 +(X = 10.00); x * 1 => 10.00 +(X = -3.00); 1 * x => -3.00 +(X = 5.00); x / 1 => 5.00 +(X = 10.00); 0 * x => 0.00 +(X = -3.00); x * 0 => 0.00 +(X = 5.00); 0 / x => 0.00 +(X = 5.00); mod(0, x) => 0.00 +(X = 5.00); x ** 1 => 5.00 +(X = 5.00); x ** 2 => 25.00 EOF if [ $? -ne 0 ] ; then no_result ; fi @@ -1282,14 +1302,14 @@ set mxerr 1000.' > $TEMPDIR/expr-opt.stat sed < $TEMPDIR/expr-list >> $TEMPDIR/expr-opt.stat \ -e 's#^\(\(.*\); \)*\(.*\) => .*$#DEBUG EVALUATE\2/\3.#' if [ $? -ne 0 ] ; then no_result ; fi -cp $TEMPDIR/expr-opt.stat ~/foo activity="run optimizing program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii \ +$SUPERVISOR $PSPP --testing-mode -o raw-ascii \ $TEMPDIR/expr-opt.stat >$TEMPDIR/expr-opt.err 2> $TEMPDIR/expr-opt.out activity="compare optimizing output" -diff -B -b $TEMPDIR/expr-list $TEMPDIR/expr-opt.out +perl -pi -e 's/^\s*$//g' $TEMPDIR/expr-list $TEMPDIR/expr-opt.out +diff -b $TEMPDIR/expr-list $TEMPDIR/expr-opt.out if [ $? -ne 0 ] ; then fail ; fi activity="create non-optimizing input" @@ -1300,11 +1320,12 @@ sed < $TEMPDIR/expr-list >> $TEMPDIR/expr-noopt.stat \ if [ $? -ne 0 ] ; then no_result ; fi activity="run non-optimizing program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii \ +$SUPERVISOR $PSPP --testing-mode -o raw-ascii \ $TEMPDIR/expr-noopt.stat >$TEMPDIR/expr-noopt.err 2> $TEMPDIR/expr-noopt.out activity="compare non-optimizing output" -diff -B -b $TEMPDIR/expr-list $TEMPDIR/expr-noopt.out +perl -pi -e 's/^\s*$//g' $TEMPDIR/expr-list $TEMPDIR/expr-noopt.out +diff -b $TEMPDIR/expr-list $TEMPDIR/expr-noopt.out if [ $? -ne 0 ] ; then fail ; fi activity="create optimizing postfix input" @@ -1315,7 +1336,7 @@ sed < $TEMPDIR/expr-list >> $TEMPDIR/expr-opt-pos.stat \ if [ $? -ne 0 ] ; then no_result ; fi activity="run optimizing postfix program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii \ +$SUPERVISOR $PSPP --testing-mode -o raw-ascii \ $TEMPDIR/expr-opt-pos.stat >$TEMPDIR/expr-opt-pos.err 2> $TEMPDIR/expr-opt-pos.out if [ $? -eq 0 ] ; then no_result ; fi @@ -1327,7 +1348,7 @@ sed < $TEMPDIR/expr-list >> $TEMPDIR/expr-noopt-pos.stat \ if [ $? -ne 0 ] ; then no_result ; fi activity="run non-optimizing postfix program" -$SUPERVISOR $here/../src/pspp --testing-mode -o raw-ascii \ +$SUPERVISOR $PSPP --testing-mode -o raw-ascii \ $TEMPDIR/expr-noopt-pos.stat >$TEMPDIR/expr-noopt-pos.err 2> $TEMPDIR/expr-noopt-pos.out if [ $? -eq 0 ] ; then no_result ; fi