On Fri, 2 Jan 2015, Garrett Cooper wrote:

Log:
 Reset errno in :scalbnf_val and :scalbnl_val before running the tests so the
 tested errno isn't stale

It is a bug to even test errno.  No function in libm accesses errno.

 This was needed in order for the test to pass on amd64 with stable/10

 MFC after: 3 days

Modified:
 head/contrib/netbsd-tests/lib/libm/t_scalbn.c

Modified: head/contrib/netbsd-tests/lib/libm/t_scalbn.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libm/t_scalbn.c       Thu Jan  1 23:21:46 
2015        (r276520)
+++ head/contrib/netbsd-tests/lib/libm/t_scalbn.c       Fri Jan  2 00:57:40 
2015        (r276521)
@@ -225,6 +225,9 @@ ATF_TC_BODY(scalbnf_val, tc)
        double rv;

        for (i = 0; i < tcnt; i++) {
+#ifdef __FreeBSD__
+               errno = 0;
+#endif

This is not FreeBSD-specific.  A correct test might test
errno under the condition (math_errhandling & MATH_ERRNO), but that
would be a lot of work to test a fundamentally broken implementataion.

                rv = scalbnf(tests[i].inval, tests[i].exp);
                ATF_CHECK_EQ_MSG(errno, tests[i].error,
                    "test %zu: errno %d instead of %d", i, errno,

The tests might set errno elsewhere, but scalbnf() obviously doesn't
in FreeBSD (and shouldn't unless MATH_ERRNO), so the ATF_CHECK_EQ_MSG()
test can have no effect.  It is surprising that it doesn't sometimes
fail if errno is always 0.  If it always succeeds, then tests[i].error
must be dead data (always 0) and the ATF_CHECK_EQ_MSG() test dead code
(always pass).

Bruce
_______________________________________________
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"

Reply via email to