Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jan 2017 08:46:19 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r311970 - in vendor/NetBSD/tests/dist/lib: libm libpthread
Message-ID:  <201701120846.v0C8kJfu057628@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Thu Jan 12 08:46:19 2017
New Revision: 311970
URL: https://svnweb.freebsd.org/changeset/base/311970

Log:
  Add additional testcases missed in r311966

Added:
  vendor/NetBSD/tests/dist/lib/libm/t_casinh.c   (contents, props changed)
  vendor/NetBSD/tests/dist/lib/libm/t_fe_round.c   (contents, props changed)
  vendor/NetBSD/tests/dist/lib/libm/t_ilogb.c   (contents, props changed)
  vendor/NetBSD/tests/dist/lib/libpthread/t_timedmutex.c   (contents, props changed)

Added: vendor/NetBSD/tests/dist/lib/libm/t_casinh.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/NetBSD/tests/dist/lib/libm/t_casinh.c	Thu Jan 12 08:46:19 2017	(r311970)
@@ -0,0 +1,81 @@
+/* $NetBSD: t_casinh.c,v 1.2 2016/09/20 17:19:28 christos Exp $ */
+
+/*
+ * Written by Maya Rashish
+ * Public domain.
+ *
+ * Testing special values of casinh
+ * Values from ISO/IEC 9899:201x G.6.2.2
+ */
+
+#include <atf-c.h>
+#include <complex.h>
+#include <math.h>
+
+#define RE(z) (((double *)(&z))[0])
+#define IM(z) (((double *)(&z))[1])
+
+static const struct {
+	double input_re;
+	double input_im;
+	double result_re;
+	double result_im;
+} values[] = {
+	{ +0,		+0,		+0,		+0},
+	{ +5.032E3,	+INFINITY,	+INFINITY,	+M_PI/2},
+	{ +INFINITY,	+5.023E3,	+INFINITY,	+0},
+	{ +INFINITY,	+INFINITY,	+INFINITY,	+M_PI/4},
+#ifdef __HAVE_NANF
+	{ +INFINITY,	+NAN,		+INFINITY,	+NAN},
+	{ +5.032E3,	+NAN,		+NAN,		+NAN}, /* + FE_INVALID optionally raised */
+	{ +NAN,		+0,		+NAN,		+0},
+	{ +NAN,		-5.023E3,	+NAN,		+NAN}, /* + FE_INVALID optionally raised */
+	{ +NAN,		+INFINITY,	+INFINITY,	+NAN}, /* sign of real part of result unspecified */
+	{ +NAN,		+NAN,		+NAN,		+NAN},
+#endif
+};
+
+#ifdef __HAVE_NANF
+#define both_nan(a,b) (isnan(a) && isnan(b))
+#else
+#define both_nan(a,b) 0
+#endif
+
+#define crude_equality(a,b) ((a == b) || both_nan(a,b))
+
+#define ATF_COMPLEX_EQUAL(a,b) do { \
+	complex double ci = casinh(a); \
+	ATF_CHECK_MSG(crude_equality(creal(ci),creal(b)) && \
+	    crude_equality(cimag(ci), cimag(b)), \
+	    "for casinh([%g,%g]) = [%g,%g] != [%g,%g]", \
+	    creal(a), cimag(a), creal(ci), cimag(ci), creal(b), cimag(b)); \
+} while (0/*CONSTCOND*/)
+
+
+ATF_TC(casinh);
+ATF_TC_HEAD(casinh, tc)
+{
+	atf_tc_set_md_var(tc, "descr","Check casinh family - special values");
+}
+
+ATF_TC_BODY(casinh, tc)
+{
+	complex double input;
+	complex double result;
+	unsigned int i;
+	for (i = 0; i < __arraycount(values); i++) {
+		RE(input) = values[i].input_re;
+		IM(input) = values[i].input_im;
+		RE(result) = values[i].result_re;
+		IM(result) = values[i].result_im;
+		ATF_COMPLEX_EQUAL(input, result);
+	}
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+	ATF_TP_ADD_TC(tp, casinh);
+
+	return atf_no_error();
+}

Added: vendor/NetBSD/tests/dist/lib/libm/t_fe_round.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/NetBSD/tests/dist/lib/libm/t_fe_round.c	Thu Jan 12 08:46:19 2017	(r311970)
@@ -0,0 +1,124 @@
+/*
+ * Written by Maya Rashish <maya@NetBSD.org>
+ * Public domain.
+ *
+ * Testing IEEE-754 rounding modes (and lrint)
+ */
+
+#include <atf-c.h>
+#include <fenv.h>
+#ifdef __HAVE_FENV
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/*#pragma STDC FENV_ACCESS ON gcc?? */
+
+#define INT 9223L
+
+#define EPSILON 0.001
+
+static const struct {
+	int round_mode;
+	double input;
+	long int expected;
+} values[] = {
+	{ FE_DOWNWARD,		3.7,		3},
+	{ FE_DOWNWARD,		-3.7,		-4},
+	{ FE_DOWNWARD,		+0,		0},
+	{ FE_DOWNWARD,		-INT-0.01,	-INT-1},
+	{ FE_DOWNWARD,		+INT-0.01,	INT-1},
+	{ FE_DOWNWARD,		-INT+0.01,	-INT},
+	{ FE_DOWNWARD,		+INT+0.01,	INT},
+#if 0 /* cpu bugs? */
+	{ FE_DOWNWARD,		-0,		-1},
+
+	{ FE_UPWARD,		+0,		1},
+#endif
+	{ FE_UPWARD,		-0,		0},
+	{ FE_UPWARD,		-123.7,		-123},
+	{ FE_UPWARD,		123.999,	124},
+	{ FE_UPWARD,		-INT-0.01,	-INT},
+	{ FE_UPWARD,		+INT-0.01,	INT},
+	{ FE_UPWARD,		-INT+0.01,	-INT+1},
+	{ FE_UPWARD,		+INT+0.01,	INT+1},
+
+	{ FE_TOWARDZERO,	1.99,		1},
+	{ FE_TOWARDZERO,	-1.99,		-1},
+	{ FE_TOWARDZERO,	0.2,		0},
+	{ FE_TOWARDZERO,	INT+0.01,	INT},
+	{ FE_TOWARDZERO,	INT-0.01,	INT - 1},
+	{ FE_TOWARDZERO,	-INT+0.01,	-INT + 1},
+	{ FE_TOWARDZERO,	+0,		0},
+	{ FE_TOWARDZERO,	-0,		0},
+
+	{ FE_TONEAREST,		-INT-0.01,	-INT},
+	{ FE_TONEAREST,		+INT-0.01,	INT},
+	{ FE_TONEAREST,		-INT+0.01,	-INT},
+	{ FE_TONEAREST,		+INT+0.01,	INT},
+	{ FE_TONEAREST,		-INT-0.501,	-INT-1},
+	{ FE_TONEAREST,		+INT-0.501,	INT-1},
+	{ FE_TONEAREST,		-INT+0.501,	-INT+1},
+	{ FE_TONEAREST,		+INT+0.501,	INT+1},
+	{ FE_TONEAREST,		+0,		0},
+	{ FE_TONEAREST,		-0,		0},
+};
+
+ATF_TC(fe_round);
+ATF_TC_HEAD(fe_round, tc)
+{
+	atf_tc_set_md_var(tc, "descr","Checking IEEE 754 rounding modes using lrint");
+}
+
+ATF_TC_BODY(fe_round, tc)
+{
+	long int received;
+
+	for (unsigned int i = 0; i < __arraycount(values); i++) {
+		fesetround(values[i].round_mode);
+
+		received = lrint(values[i].input);
+		ATF_CHECK_MSG(
+		    (labs(received - values[i].expected) < EPSILON),
+		    "lrint rounding wrong, difference too large\n"
+		    "input: %f (index %d): got %ld, expected %ld\n",
+		    values[i].input, i, received, values[i].expected);
+
+		/* Do we get the same rounding mode out? */
+		ATF_CHECK_MSG(
+		    (fegetround() == values[i].round_mode),
+		    "Didn't get the same rounding mode out!\n"
+		    "(index %d) fed in %d rounding mode, got %d out\n",
+		    i, fegetround(), values[i].round_mode);
+	}
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+	ATF_TP_ADD_TC(tp, fe_round);
+
+	return atf_no_error();
+}
+#else
+ATF_TC(t_nofe_round);
+
+ATF_TC_HEAD(t_nofe_round, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "dummy test case - no fenv.h support");
+}
+
+
+ATF_TC_BODY(t_nofe_round, tc)
+{
+	atf_tc_skip("no fenv.h support on this architecture");
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+	ATF_TP_ADD_TC(tp, t_nofe_round);
+	return atf_no_error();
+}
+
+#endif

Added: vendor/NetBSD/tests/dist/lib/libm/t_ilogb.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/NetBSD/tests/dist/lib/libm/t_ilogb.c	Thu Jan 12 08:46:19 2017	(r311970)
@@ -0,0 +1,127 @@
+/* $NetBSD: t_ilogb.c,v 1.6 2016/08/26 08:01:55 christos Exp $ */
+
+/*-
+ * Copyright (c) 2016 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Maya Rashish.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <atf-c.h>
+#include <fenv.h>
+#include <math.h>
+
+#ifndef __HAVE_FENV
+
+# define ATF_CHECK_RAISED_INVALID 
+# define ATF_CHECK_RAISED_NOTHING 
+
+#else
+# define ATF_CHECK_RAISED_INVALID do { \
+	int r = fetestexcept(FE_ALL_EXCEPT); \
+	ATF_CHECK_MSG(r == FE_INVALID, "r=%#x != %#x\n", r, FE_INVALID); \
+	(void)feclearexcept(FE_ALL_EXCEPT); \
+} while (/*CONSTCOND*/0)
+
+# define ATF_CHECK_RAISED_NOTHING do { \
+	int r = fetestexcept(FE_ALL_EXCEPT); \
+	ATF_CHECK_MSG(r == 0, "r=%#x != 0\n", r); \
+	(void)feclearexcept(FE_ALL_EXCEPT); \
+} while (/*CONSTCOND*/0)
+#endif
+
+ATF_TC(ilogb);
+ATF_TC_HEAD(ilogb, tc)
+{
+	atf_tc_set_md_var(tc, "descr","Check ilogb family");
+}
+
+ATF_TC_BODY(ilogb, tc)
+{
+
+	ATF_CHECK(ilogbf(0) == FP_ILOGB0);
+	ATF_CHECK_RAISED_INVALID;
+	ATF_CHECK(ilogb(0) == FP_ILOGB0);
+	ATF_CHECK_RAISED_INVALID;
+#ifdef __HAVE_LONG_DOUBLE
+	ATF_CHECK(ilogbl(0) == FP_ILOGB0);
+	ATF_CHECK_RAISED_INVALID;
+#endif
+
+	ATF_CHECK(ilogbf(-0) == FP_ILOGB0);
+	ATF_CHECK_RAISED_INVALID;
+	ATF_CHECK(ilogb(-0) == FP_ILOGB0);
+	ATF_CHECK_RAISED_INVALID;
+#ifdef __HAVE_LONG_DOUBLE
+	ATF_CHECK(ilogbl(-0) == FP_ILOGB0);
+	ATF_CHECK_RAISED_INVALID;
+#endif
+
+	ATF_CHECK(ilogbf(INFINITY) == INT_MAX);
+	ATF_CHECK_RAISED_INVALID;
+	ATF_CHECK(ilogb(INFINITY) == INT_MAX);
+	ATF_CHECK_RAISED_INVALID;
+#ifdef __HAVE_LONG_DOUBLE
+	ATF_CHECK(ilogbl(INFINITY) == INT_MAX);
+	ATF_CHECK_RAISED_INVALID;
+#endif
+
+	ATF_CHECK(ilogbf(-INFINITY) == INT_MAX);
+	ATF_CHECK_RAISED_INVALID;
+	ATF_CHECK(ilogb(-INFINITY) == INT_MAX);
+	ATF_CHECK_RAISED_INVALID;
+#ifdef __HAVE_LONG_DOUBLE
+	ATF_CHECK(ilogbl(-INFINITY) == INT_MAX);
+	ATF_CHECK_RAISED_INVALID;
+#endif
+
+	ATF_CHECK(ilogbf(1024) == 10);
+	ATF_CHECK_RAISED_NOTHING;
+	ATF_CHECK(ilogb(1024) == 10);
+	ATF_CHECK_RAISED_NOTHING;
+#ifdef __HAVE_LONG_DOUBLE
+	ATF_CHECK(ilogbl(1024) == 10);
+	ATF_CHECK_RAISED_NOTHING;
+#endif
+
+#ifndef __vax__
+	ATF_CHECK(ilogbf(NAN) == FP_ILOGBNAN);
+	ATF_CHECK_RAISED_INVALID;
+	ATF_CHECK(ilogb(NAN) == FP_ILOGBNAN);
+	ATF_CHECK_RAISED_INVALID;
+#ifdef __HAVE_LONG_DOUBLE
+	ATF_CHECK(ilogbl(NAN) == FP_ILOGBNAN);
+	ATF_CHECK_RAISED_INVALID;
+#endif
+#endif
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+	ATF_TP_ADD_TC(tp, ilogb);
+
+	return atf_no_error();
+}

Added: vendor/NetBSD/tests/dist/lib/libpthread/t_timedmutex.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/NetBSD/tests/dist/lib/libpthread/t_timedmutex.c	Thu Jan 12 08:46:19 2017	(r311970)
@@ -0,0 +1,30 @@
+/* $NetBSD: t_timedmutex.c,v 1.2 2016/10/31 16:21:23 christos Exp $ */
+
+/*
+ * Copyright (c) 2008 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define TIMEDMUTEX
+#include "t_mutex.c"



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