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

2013-05-27 Thread Steve Kargl
On Mon, May 27, 2013 at 08:50:10AM +, 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.

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

-- 
Steve
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


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

2013-05-27 Thread David Schultz
On Mon, May 27, 2013, Steve Kargl wrote:
 On Mon, May 27, 2013 at 08:50:10AM +, 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.
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


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

2013-05-27 Thread Ryan Stone
On Mon, May 27, 2013 at 1:23 PM, David Schultz d...@freebsd.org wrote:

 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.


People are working on bringing ATF into FreeBSD:

https://wiki.freebsd.org/TestingFreeBSD
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


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

2013-05-27 Thread Dimitry Andric

On 2013-05-27 16:07, Steve Kargl wrote:

On Mon, May 27, 2013 at 08:50:10AM +, 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.


The following should help.  Results in just a few warnings now, which
may or may not be real bugs:

1 warning generated.
1 warning generated.
2 warnings generated.
1 warning generated.

Index: tools/regression/lib/msun/Makefile
===
--- tools/regression/lib/msun/Makefile  (revision 250997)
+++ tools/regression/lib/msun/Makefile  (working copy)
@@ -5,6 +5,7 @@
test-fmaxmin test-ilogb test-invtrig test-logarithm test-lrint \
test-lround test-nan test-nearbyint test-next test-rem test-trig
 CFLAGS+= -O0 -lm
+CFLAGS+= -Wno-unused-value -Wno-unknown-pragmas
 
 .PHONY: tests

 tests: ${TESTS}
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


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

2013-05-27 Thread Garrett Cooper
On May 27, 2013, at 12:58 PM, Ryan Stone wrote:

 On Mon, May 27, 2013 at 1:23 PM, David Schultz d...@freebsd.org wrote:
 
 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.
 
 
 People are working on bringing ATF into FreeBSD:
 
 https://wiki.freebsd.org/TestingFreeBSD

Thanks for the plug!

Yes, ATF is in (it's a bit outdated so I'll have to submit a patch for ATF 
0.17), build infrastructure's on its way, and the best news of all is that I've 
already ported a large chunk of the msun testcases from NetBSD to FreeBSD. They 
work with little hacking for the most part. Example:

# cd /usr/src/lib/msun/tests/
# make obj depend all check

Summary for 19 test programs:
295 passed test cases.
0 failed test cases.
0 expected failed test cases.
5 skipped test cases.

*** The verbatim output of atf-run has been saved to 
/usr/obj/usr/src/lib/msun/tests/atf-run.log
#

Why isn't this in FreeBSD yet (along with some of the other testsuites from 
NetBSD)? Well, a couple of reasons:

1. The test build infrastructure changes haven't been fully pushed in (Marcel's 
helping me out with the latest set of patches).
2. There are issues with porting stuff over from NetBSD because some of the 
macros needed to minimize porting divergence don't have a happy home yet. I 
gently poked several people from FreeBSD, NetBSD, and OpenBSD about getting 
some degree of solidarity and agreement on macros, but I haven't heard back 
from anyone I emailed for several weeks. So I figure that FreeBSD needs to bend 
by adding some [compat] macros to strategic locations in sys/sys, and then we 
can work on standardizing things later. I really don't want to hack all of the 
tests to use libnetbsd because while it works for nmtree and nmakefs, it 
doesn't make sense for testcases as the volume of required changes wouldn't 
make sense from a porting perspective.
3. I really REALLY need help porting over changes we've added that can be 
contributed back to NetBSD, and FreeBSD specific tests need to be cordoned off 
properly.

As far as the test image stuff is concerned and test tinderbox stuff is 
concerned, yes, it's on my radar.. I'm working on installing tests via .iso 
images and USB images; once that's done we can work on making the other testing 
stuff work on a cron basis via tinderbox or another similar mechanism.

So, what say ye to making things work better and helping me in this process :)?

Thanks!
-Garrett
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org