From: Ben Pfaff Date: Thu, 11 Mar 2004 05:22:40 +0000 (+0000) Subject: Fix TEMPORARY bug and add regression test. X-Git-Tag: v0.4.0~331 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca1feaeed4961242699d0b7ba61def0c58515ddd;p=pspp-builds.git Fix TEMPORARY bug and add regression test. --- diff --git a/src/ChangeLog b/src/ChangeLog index 8450557f..82f9fca4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +Wed Mar 10 21:16:34 2004 Ben Pfaff + + * temporary.c: (cmd_temporary) When TEMPORARY was the first + transformation following the input program, if any, for some + reason we special-cased f_trns. That's just wrong. It should + always be set to n_trns. + Tue Mar 9 23:44:40 2004 Ben Pfaff * format.c: (parse_format_specifier_name) Fix brown-bag bug diff --git a/src/temporary.c b/src/temporary.c index f569028a..d82461d1 100644 --- a/src/temporary.c +++ b/src/temporary.c @@ -61,10 +61,7 @@ cmd_temporary (void) /* Make a copy of the current dictionary. */ temporary = 1; temp_dict = dict_clone (default_dict); - if (f_trns == n_trns) - temp_trns = -1; - else - temp_trns = n_trns; + temp_trns = n_trns; debug_printf (("TEMPORARY: temp_trns=%d\n", temp_trns)); return lex_end_of_command (); diff --git a/tests/ChangeLog b/tests/ChangeLog index f92371b1..562d925a 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +Wed Mar 10 21:22:03 2004 Ben Pfaff + + * bugs/temporary.sh: Test that basic use of TEMPORARY works. + Mon Feb 16 21:36:57 2004 Ben Pfaff * */*.sh: Prepend $SUPERVISOR to invocations of pspp so that we diff --git a/tests/Makefile.am b/tests/Makefile.am index c5c40add..5b7249df 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -31,7 +31,8 @@ TESTS = command/aggregate.sh \ bugs/html-frequency.sh \ bugs/crosstabs.sh \ bugs/data-crash.sh \ - bugs/random.sh + bugs/random.sh \ + bugs/temporary.sh noinst_PROGRAMS = gengarbage diff --git a/tests/bugs/temporary.sh b/tests/bugs/temporary.sh new file mode 100755 index 00000000..efb39ecc --- /dev/null +++ b/tests/bugs/temporary.sh @@ -0,0 +1,98 @@ +#!/bin/sh + +# This program tests for a bug which caused UNIFORM(x) to always return zero. + + +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/rnd.sps < 5 . +list. + +list. +EOF +if [ $? -ne 0 ] ; then no_result ; fi + +$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/rnd.sps +if [ $? -ne 0 ] ; then no_result ; fi + + +diff -b -B -w $TEMPDIR/pspp.list - << EOF + X +-------- + 6.00 + 7.00 + 8.00 + 9.00 + + X +-------- + 1.00 + 2.00 + 3.00 + 4.00 + 5.00 + 6.00 + 7.00 + 8.00 + 9.00 +EOF +if [ $? -ne 0 ] ; then fail ; fi + +pass;