bug-m4
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HEAD: inclusion order wrong for input.c


From: Eric Blake
Subject: Re: HEAD: inclusion order wrong for input.c
Date: Tue, 3 Apr 2007 20:28:36 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Ralf Wildenhues <Ralf.Wildenhues <at> gmx.de> writes:

> > Care to share the testsuite.log?
> 
> Certainly.  Here you go.  Pretty recent versions of most things were
> used for bootstrap.

Are you interested in installing GMP to further test the mpeval module (5 of 
the 6 skips)?  Also, can you show me tests/testsuite.dir/068/testsuite.log so I 
can see why 'stdin seekable' was skipped (hmm, maybe that is an autotest bug, 
for not including logs of skipped tests).

The failure in 70 is merely a test suite bug:

| ../../m4/tests/others.at:613: m4 -b -d --help >/dev/full < /dev/null
| stderr:
| /tmp/build/src/.libs/lt-m4: write error
| ../../m4/tests/others.at:613: sed 's/^[^:]*[lt-]*m4[.ex]*:/m4:/
|         /^m4debug: module/s/opening file.*/opening file/
|         s/\(cannot open module [^:]*\):.*/\1/
|     ' stderr >&2
| --- -   2007-04-03 18:13:03.473039000 +0200
| +++ /tmp/build/tests/testsuite.dir/at-stderr    2007-04-03 18:13:03.000000000 
+0200
| @@ -1,2 +1,2 @@
| -m4: write error: No space left on device
| +m4: write error

It appears here that Linux explicitly resets errno to 0 rather than leaving 
unchanged if ferror can detect that a failure occurred but doesn't remember 
why; whereas I wrote the test on cygwin which leaves errno unchanged from its 
previous state of ENOSPC.  So the test suite needs to be tolerant of a wider 
variety of error output.  I'm not sure whether the following will catch 
everything, but it hopefully lets the test get further; it may take a couple 
iterations before we settle on the right patch for the testsuite:

2007-04-03  Eric Blake  <address@hidden>

        * tests/others.at (stdout full): Make test more robust when errno
        is unset after detecting write error.
        Reported by Ralf Wildenhues.



The failure in 135 is a failure to port a fix from branch-1_4:

| ../../m4/tests/../m4/doc/m4.texinfo:6322:
| ../../m4/tests/generated.at:3432: m4 -b -d  input.m4 < /dev/null
| --- /dev/null   2006-05-22 13:44:12.000000000 +0200
| +++ /tmp/build/tests/testsuite.dir/at-stderr    2007-04-03 18:13:14.000000000 
+0200
| @@ -0,0 +1 @@
| +/tmp/build/../m4/tests/testsuite: line 1388: 16652 Floating point exception
(core dumped) m4 -b -d input.m4 </dev/null

And to think that I was the one that originally reported the comparable crash 
with x86 and x86_64 architectures in m4 1.4.4 - the bug is that m4 must special 
case MIN_INT / -1 and MIN_INT % -1 to avoid FPE on these platforms (and the 
autoconf manual even documents the FPE violation of the C standard on MIN_INT 
% -1 as a portability pitfall).  I'll patch that one shortly.

-- 
Eric Blake

Index: tests/others.at
===================================================================
RCS file: /sources/m4/m4/tests/others.at,v
retrieving revision 1.31
diff -u -r1.31 others.at
--- tests/others.at     5 Feb 2007 17:31:10 -0000       1.31
+++ tests/others.at     3 Apr 2007 20:24:44 -0000
@@ -610,21 +610,17 @@
 }])
 
 dnl detect write failures on --help
-AT_CHECK_M4([--help >/dev/full], [1], [],
-[[m4: write error: No space left on device
-]])
+AT_CHECK_M4([--help >/dev/full], [1], [], [stderr])
+AT_CHECK([grep '^m4: write error' stderr], [0], [ignore])
+mv stderr experr
 
 dnl detect write failures on --version
-AT_CHECK_M4([--version >/dev/full], [1], [],
-[[m4: write error: No space left on device
-]])
+AT_CHECK_M4([--version >/dev/full], [1], [], [experr])
 
 dnl detect ordinary write failures
 AT_DATA([in.m4], [[hello world
 ]])
-AT_CHECK_M4([in.m4 >/dev/full], [1], [],
-[[m4: write error: No space left on device
-]])
+AT_CHECK_M4([in.m4 >/dev/full], [1], [], [experr])
 
 dnl detect stderr write failures
 AT_DATA([in.m4], [[dnl(hello world)







reply via email to

[Prev in Thread] Current Thread [Next in Thread]