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>