Module Name:    src
Committed By:   jruoho
Date:           Mon Sep 12 15:47:14 UTC 2011

Modified Files:
        src/tests/lib/libm: t_ldexp.c t_scalbn.c

Log Message:
Add more assertions.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libm/t_ldexp.c \
    src/tests/lib/libm/t_scalbn.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libm/t_ldexp.c
diff -u src/tests/lib/libm/t_ldexp.c:1.1 src/tests/lib/libm/t_ldexp.c:1.2
--- src/tests/lib/libm/t_ldexp.c:1.1	Mon Sep 12 15:27:40 2011
+++ src/tests/lib/libm/t_ldexp.c	Mon Sep 12 15:47:14 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_ldexp.c,v 1.1 2011/09/12 15:27:40 jruoho Exp $ */
+/* $NetBSD: t_ldexp.c,v 1.2 2011/09/12 15:47:14 jruoho Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_ldexp.c,v 1.1 2011/09/12 15:27:40 jruoho Exp $");
+__RCSID("$NetBSD: t_ldexp.c,v 1.2 2011/09/12 15:47:14 jruoho Exp $");
 
 #include <math.h>
 #include <limits.h>
@@ -53,6 +53,8 @@
 	double y;
 	size_t i;
 
+	ATF_REQUIRE(isnan(x) != 0);
+
 	for (i = 0; i < __arraycount(exps); i++) {
 		y = ldexp(x, exps[i]);
 		ATF_CHECK(isnan(y) != 0);
@@ -98,10 +100,16 @@
 ATF_TC_BODY(ldexp_zero_neg, tc)
 {
 	const double x = -0.0L;
+	double y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(ldexp(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) != 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = ldexp(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) != 0);
+	}
 }
 
 ATF_TC(ldexp_zero_pos);
@@ -113,10 +121,16 @@
 ATF_TC_BODY(ldexp_zero_pos, tc)
 {
 	const double x = 0.0L;
+	double y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(ldexp(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) == 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = ldexp(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) == 0);
+	}
 }
 
 ATF_TC(ldexpf_nan);
@@ -131,6 +145,8 @@
 	float y;
 	size_t i;
 
+	ATF_REQUIRE(isnan(x) != 0);
+
 	for (i = 0; i < __arraycount(exps); i++) {
 		y = ldexpf(x, exps[i]);
 		ATF_CHECK(isnan(y) != 0);
@@ -180,10 +196,16 @@
 ATF_TC_BODY(ldexpf_zero_neg, tc)
 {
 	const float x = -0.0L;
+	float y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(ldexpf(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) != 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = ldexpf(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) != 0);
+	}
 }
 
 ATF_TC(ldexpf_zero_pos);
@@ -195,10 +217,16 @@
 ATF_TC_BODY(ldexpf_zero_pos, tc)
 {
 	const float x = 0.0L;
+	float y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(ldexpf(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) == 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = ldexpf(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) == 0);
+	}
 }
 
 ATF_TP_ADD_TCS(tp)
Index: src/tests/lib/libm/t_scalbn.c
diff -u src/tests/lib/libm/t_scalbn.c:1.1 src/tests/lib/libm/t_scalbn.c:1.2
--- src/tests/lib/libm/t_scalbn.c:1.1	Mon Sep 12 15:27:40 2011
+++ src/tests/lib/libm/t_scalbn.c	Mon Sep 12 15:47:14 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_scalbn.c,v 1.1 2011/09/12 15:27:40 jruoho Exp $ */
+/* $NetBSD: t_scalbn.c,v 1.2 2011/09/12 15:47:14 jruoho Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_scalbn.c,v 1.1 2011/09/12 15:27:40 jruoho Exp $");
+__RCSID("$NetBSD: t_scalbn.c,v 1.2 2011/09/12 15:47:14 jruoho Exp $");
 
 #include <math.h>
 #include <limits.h>
@@ -53,6 +53,8 @@
 	double y;
 	size_t i;
 
+	ATF_REQUIRE(isnan(x) != 0);
+
 	for (i = 0; i < __arraycount(exps); i++) {
 		y = scalbn(x, exps[i]);
 		ATF_CHECK(isnan(y) != 0);
@@ -98,10 +100,16 @@
 ATF_TC_BODY(scalbn_zero_neg, tc)
 {
 	const double x = -0.0L;
+	double y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(scalbn(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) != 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = scalbn(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) != 0);
+	}
 }
 
 ATF_TC(scalbn_zero_pos);
@@ -113,10 +121,16 @@
 ATF_TC_BODY(scalbn_zero_pos, tc)
 {
 	const double x = 0.0L;
+	double y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(scalbn(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) == 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = scalbn(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) == 0);
+	}
 }
 
 /*
@@ -134,6 +148,8 @@
 	float y;
 	size_t i;
 
+	ATF_REQUIRE(isnan(x) != 0);
+
 	for (i = 0; i < __arraycount(exps); i++) {
 		y = scalbnf(x, exps[i]);
 		ATF_CHECK(isnan(y) != 0);
@@ -179,10 +195,16 @@
 ATF_TC_BODY(scalbnf_zero_neg, tc)
 {
 	const float x = -0.0L;
+	float y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(scalbnf(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) != 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = scalbnf(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) != 0);
+	}
 }
 
 ATF_TC(scalbnf_zero_pos);
@@ -194,10 +216,16 @@
 ATF_TC_BODY(scalbnf_zero_pos, tc)
 {
 	const float x = 0.0L;
+	float y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(scalbnf(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) == 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = scalbnf(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) == 0);
+	}
 }
 
 /*
@@ -218,6 +246,8 @@
 	long double y;
 	size_t i;
 
+	ATF_REQUIRE(isnan(x) != 0);
+
 	for (i = 0; i < __arraycount(exps); i++) {
 		y = scalbnl(x, exps[i]);
 		ATF_CHECK(isnan(y) != 0);
@@ -275,10 +305,16 @@
 	atf_tc_skip("Requires long double support");
 #else
 	const long double x = -0.0L;
+	long double y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(scalbnl(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) != 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = scalbnl(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) != 0);
+	}
 #endif
 }
 
@@ -294,10 +330,16 @@
 	atf_tc_skip("Requires long double support");
 #else
 	const long double x = 0.0L;
+	long double y;
 	size_t i;
 
-	for (i = 0; i < __arraycount(exps); i++)
-		ATF_CHECK(scalbnl(x, exps[i]) == x);
+	ATF_REQUIRE(signbit(x) == 0);
+
+	for (i = 0; i < __arraycount(exps); i++) {
+		y = scalbnl(x, exps[i]);
+		ATF_CHECK(x == y);
+		ATF_CHECK(signbit(y) == 0);
+	}
 #endif
 }
 

Reply via email to