msgstr ""
"Project-Id-Version: PSPP 0.3.1\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2005-01-05 08:20+0800\n"
+"POT-Creation-Date: 2005-01-05 22:50+0800\n"
"PO-Revision-Date: 2004-01-23 13:04+0800\n"
"Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
"Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
msgid "Error opening page on %s device of %s class."
msgstr ""
+#: src/percentiles.c:38
+msgid "HAverage"
+msgstr ""
+
+#: src/percentiles.c:39
+msgid "Weighted Average"
+msgstr ""
+
+#: src/percentiles.c:40
+msgid "Rounded"
+msgstr ""
+
+#: src/percentiles.c:41
+msgid "Empirical"
+msgstr ""
+
+#: src/percentiles.c:42
+msgid "Empirical with averaging"
+msgstr ""
+
#: src/permissions.c:75
#, c-format
msgid "Expecting %s or %s."
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2005-01-05 08:20+0800\n"
+"POT-Creation-Date: 2005-01-05 22:50+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Error opening page on %s device of %s class."
msgstr ""
+#: src/percentiles.c:38
+msgid "HAverage"
+msgstr ""
+
+#: src/percentiles.c:39
+msgid "Weighted Average"
+msgstr ""
+
+#: src/percentiles.c:40
+msgid "Rounded"
+msgstr ""
+
+#: src/percentiles.c:41
+msgid "Empirical"
+msgstr ""
+
+#: src/percentiles.c:42
+msgid "Empirical with averaging"
+msgstr ""
+
#: src/permissions.c:75
#, c-format
msgid "Expecting %s or %s."
+Thu Jan 6 18:48:58 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * main.c Added a signal handler for SIGFPE
+
+ * sort.c Somewhat more robust fix to the previous entry.
+
Wed Jan 5 21:23:31 2005 Ben Pfaff <blp@gnu.org>
* sort.c: (merge) Fix assertion for proper Huffman merge pattern:
main (int argc, char **argv)
{
signal (SIGSEGV, bug_handler);
+ signal (SIGFPE, bug_handler);
gsl_set_error_handler_off();
void
bug_handler(int sig UNUSED)
{
- request_bug_report_and_abort("Segmentation Violation");
+ switch (sig)
+ {
+ case SIGFPE:
+ request_bug_report_and_abort("Floating Point Exception");
+ break;
+ case SIGSEGV:
+ request_bug_report_and_abort("Segmentation Violation");
+ break;
+ default:
+ request_bug_report_and_abort("");
+ break;
+ }
}
make_heap (xsrt->initial_runs, xsrt->run_cnt, sizeof *xsrt->initial_runs,
compare_initial_runs, NULL);
dummy_run_cnt = mod (1 - (int) xsrt->run_cnt, max_order - 1);
- assert (max_order == 2
+
+ assert( max_order > 0 );
+ assert (max_order <= 2
|| (xsrt->run_cnt + dummy_run_cnt) % (max_order - 1) == 1);
while (xsrt->run_cnt > 1)
{
command/weight.sh \
bugs/alpha-freq.sh \
bugs/big-input.sh \
+ bugs/big-input-2.sh \
bugs/comment-at-eof.sh \
bugs/compute-fmt.sh \
bugs/crosstabs.sh \
bugs/t-test.sh \
bugs/t-test-alpha.sh \
bugs/t-test-alpha2.sh \
+ bugs/terminate.sh \
bugs/temporary.sh \
bugs/val-labs.sh \
bugs/val-labs-trailing-slash.sh \
--- /dev/null
+#!/bin/sh
+
+# This program tests for a bug which caused a crash when
+# very large files are presented.
+
+
+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="delete data"
+rm -f $TEMPDIR/large.dat
+if [ $? -ne 0 ] ; then no_result ; fi
+
+printf "Creating input data. Please wait"
+activity="create data"
+i=0
+while [ $i -lt 100000 ] ; do
+ echo AB12 >> $TEMPDIR/large.dat;
+ i=$[$i + 1];
+done;
+printf '.'
+i=0
+while [ $i -lt 100000 ] ; do
+ echo AB04 >> $TEMPDIR/large.dat;
+ i=$[$i + 1];
+done;
+if [ $? -ne 0 ] ; then no_result ; fi
+printf "\n";
+
+activity="create program"
+cat > $TEMPDIR/large.sps <<EOF
+DATA LIST FILE='$TEMPDIR/large.dat' /S 1-2 (A) X 3 .
+
+
+AGGREGATE /BREAK=X /A=N.
+
+
+EXAMINE /A BY /X.
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="run program"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/large.sps > /dev/null
+if [ $? -ne 0 ] ; then fail ; fi
+
+
+activity="appending to data"
+# Put another 100,000 cases into large.dat
+i=0
+while [ $i -lt 50000 ] ; do
+ echo AB04 >> $TEMPDIR/large.dat;
+ echo AB12 >> $TEMPDIR/large.dat;
+ i=$[$i + 1];
+done;
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="run program"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/large.sps > /dev/null
+if [ $? -ne 0 ] ; then fail ; fi
+
+
+
+pass;
activity="create program"
cat > $TEMPDIR/foo.sps <<EOF
INPUT PROGRAM.
-LOOP #I=1 TO 50000.
-COMPUTE X=NORMAL(10).
-END CASE.
-END LOOP.
-END FILE.
+ LOOP #I=1 TO 50000.
+ COMPUTE X=NORMAL(10).
+ END CASE.
+ END LOOP.
+ END FILE.
END INPUT PROGRAM.
EXAMINE /x
-/STATISTICS=DESCRIPTIVES.
+ /STATISTICS=DESCRIPTIVES.
EOF
if [ $? -ne 0 ] ; then no_result ; fi
+activity="run program"
$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/foo.sps > /dev/null
-if [ $? -ne 1 ] ; then fail ; fi
+if [ $? -ne 0 ] ; then fail ; fi
pass;
EOF
if [ $? -ne 0 ] ; then no_result ; fi
-
+#This must fail
+activity="run program"
$SUPERVISOR $here/../src/pspp $TEMPDIR/ct.stat > /dev/null
if [ $? -ne 1 ] ; then fail ; fi
EOF
if [ $? -ne 0 ] ; then no_result ; fi
+#The syntax was invalid. Therefore pspp must return non zero.
+activity="run program"
$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/rnd.sps > /dev/null
if [ $? -ne 1 ] ; then fail ; fi
--- /dev/null
+#!/bin/sh
+
+# This tests checks that when a fatal error occurs,
+# and appropriate notice is printed and the program exits with a
+# non zero status
+
+
+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="delete file"
+rm -f $TEMPDIR/bar.dat
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="create program"
+cat > $TEMPDIR/foo.sps <<EOF
+DATA LIST FILE='$TEMPDIR/bar.dat' /S 1-2 (A) X 3 .
+
+EXECUTE.
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="run program"
+# This must exit with non zero status
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/foo.sps > /dev/null 2> $TEMPDIR/stderr
+if [ $? -eq 0 ] ; then fail ; fi
+
+activity="compare stderr"
+diff $TEMPDIR/stderr - << EOF
+pspp: Terminating NOW due to a fatal error!
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+pass;
EOF
if [ $? -ne 0 ] ; then no_result ; fi
+#Invalid syntax --- return value is non zero.
+activity="run program"
$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/rnd.sps > /dev/null
if [ $? -ne 1 ] ; then fail ; fi