From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:29:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BAE48201; Fri, 2 Jan 2015 08:29:02 +0000 (UTC) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id 7E79D64B23; Fri, 2 Jan 2015 08:29:02 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id 6E5C9D457FB; Fri, 2 Jan 2015 19:03:43 +1100 (AEDT) Date: Fri, 2 Jan 2015 19:03:43 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Garrett Cooper Subject: Re: svn commit: r276521 - head/contrib/netbsd-tests/lib/libm In-Reply-To: <201501020057.t020vf4d063191@svn.freebsd.org> Message-ID: <20150102185046.K943@besplex.bde.org> References: <201501020057.t020vf4d063191@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R8o6R7hX c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=vw_EG5dSKMz9CBa7WAkA:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:29:02 -0000 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