Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 May 2013 10:23:26 -0700
From:      David Schultz <das@FreeBSD.org>
To:        Steve Kargl <sgk@troutmask.apl.washington.edu>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r251024 - in head: lib/msun lib/msun/ld128 lib/msun/ld80 lib/msun/src tools/regression/lib/msun
Message-ID:  <20130527172326.GA6461@zim.MIT.EDU>
In-Reply-To: <20130527140722.GA43583@troutmask.apl.washington.edu>
References:  <201305270850.r4R8oA6g008947@svn.freebsd.org> <20130527140722.GA43583@troutmask.apl.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130527172326.GA6461>