svn commit: r251024 - in head: lib/msun lib/msun/ld128 lib/msun/ld80 lib/msun/src tools/regression/lib/msun

David Schultz das at FreeBSD.org
Mon May 27 17:23:30 UTC 2013


On Mon, May 27, 2013, Steve Kargl wrote:
> On Mon, May 27, 2013 at 08:50:10AM +0000, David Schultz wrote:
> > Author: das
> > Date: Mon May 27 08:50:10 2013
> > New Revision: 251024
> > URL: http://svnweb.freebsd.org/changeset/base/251024
> > 
> > Log:
> >   Fix some regressions caused by the switch from gcc to clang. The fixes
> >   are workarounds for various symptoms of the problem described in clang
> >   bugs 3929, 8100, 8241, 10409, and 12958.
> >   
> >   The regression tests did their job: they failed, someone brought it
> >   up on the mailing lists, and then the issue got ignored for 6 months.
> >   Oops. There may still be some regressions for functions we don't have
> >   test coverage for yet.
> > 
> 
> The combination of clang+regression tests is almost unusable.
> 
> % cd src/tools/regressions/lib/msun
> % make |& tee sgk.log
> % grep generated sgk.log
> 41 warnings generated.
> 1 warning generated.
> 1 warning generated.
> 593 warnings generated.
> 51 warnings generated.
> 1 warning generated.
> 221 warnings generated.
> 1 warning generated.
> 265 warnings generated.
> 84 warnings generated.
> 1 warning generated.
> 1 warning generated.
> 2 warnings generated.
> 74 warnings generated.

It seems that it's mostly complaining about the macros I use to
test many variants of a function in a single call. The macros
often say things like:
  assert(f(x) == y); \
  assert(f, fetestexcept(...) == K); \
The goal of the "f, " is to make the failure message include the
function that was invoked on the preceding line.

The tests really shouldn't be using assert() at all. Starting
circa 2002, I wrote them that way in the interests of expedience,
since an official unit-testing framework was supposed to replace
it anyway. Ten years later, it looks like everyone is still rolling
their own! If someone were to write or import a good test framework,
get all the tests to use it, and put together a test tinderbox, that
would have a lot of impact.

> I also find the following patch helpful in cleaning up the corefiles.
> 
> 
> Index: Makefile
> ===================================================================
> --- Makefile	(revision 251026)
> +++ Makefile	(working copy)
> @@ -12,4 +12,4 @@
>  
>  .PHONY: clean
>  clean:
> -	-rm -f ${TESTS}
> +	-rm -f ${TESTS} *.core

Sounds reasonable. Feel free to commit this.


More information about the svn-src-head mailing list