Module Name:    src
Committed By:   riastradh
Date:           Thu May  9 14:13:09 UTC 2024

Modified Files:
        src/tests/lib/libc/gen: t_fpclassify.c

Log Message:
tests/lib/libc/gen/t_fpclassify: Spruce this up a bit.

Provide more useful diagnostics when tests fail.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/lib/libc/gen/t_fpclassify.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/libc/gen/t_fpclassify.c
diff -u src/tests/lib/libc/gen/t_fpclassify.c:1.4 src/tests/lib/libc/gen/t_fpclassify.c:1.5
--- src/tests/lib/libc/gen/t_fpclassify.c:1.4	Tue May  7 21:00:00 2024
+++ src/tests/lib/libc/gen/t_fpclassify.c	Thu May  9 14:13:08 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: t_fpclassify.c,v 1.4 2024/05/07 21:00:00 riastradh Exp $ */
+/* $NetBSD: t_fpclassify.c,v 1.5 2024/05/09 14:13:08 riastradh Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -61,35 +61,67 @@ ATF_TC_BODY(fpclassify_float, tc)
 	int e, i;
 
 	d0 = FLT_MIN;
-	ATF_REQUIRE_EQ(fpclassify(d0), FP_NORMAL);
+	ATF_CHECK_EQ_MSG(fpclassify(d0), FP_NORMAL,
+	    "fpclassify(%a)=%d FP_NORMAL=%d",
+	    d0, fpclassify(d0), FP_NORMAL);
 	f = frexpf(d0, &e);
-	ATF_REQUIRE_EQ(e, FLT_MIN_EXP);
-	ATF_REQUIRE_EQ(f, 0.5);
+	ATF_CHECK_EQ_MSG(e, FLT_MIN_EXP,
+	    "frexpf(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d0, f, e, 0.5, FLT_MIN_EXP);
+	ATF_CHECK_EQ_MSG(f, 0.5,
+	    "frexpf(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d0, f, e, 0.5, FLT_MIN_EXP);
 	d1 = d0;
 
 	/* shift a "1" bit through the mantissa (skip the implicit bit) */
 	for (i = 1; i < FLT_MANT_DIG; i++) {
 		d1 /= 2;
-		ATF_REQUIRE_EQ(fpclassify(d1), FP_SUBNORMAL);
-		ATF_REQUIRE(d1 > 0 && d1 < d0);
+		ATF_CHECK_EQ_MSG(fpclassify(d1), FP_SUBNORMAL,
+		    "[%d] fpclassify(%a)=%d FP_SUBNORMAL=%d",
+		    i, d1, fpclassify(d1), FP_SUBNORMAL);
+		ATF_CHECK_MSG(d1 > 0 && d1 < d0,
+		    "[%d] d1=%a d0=%a", i, d1, d0);
 
 		d2 = ldexpf(d0, -i);
-		ATF_REQUIRE_EQ(d2, d1);
+		ATF_CHECK_EQ_MSG(d2, d1, "[%d] ldexpf(%a, -%d)=%a != %a",
+		    i, d0, i, d2, d1);
 
 		d2 = modff(d1, &ip);
-		ATF_REQUIRE_EQ(d2, d1);
-		ATF_REQUIRE_EQ(ip, 0);
+		ATF_CHECK_EQ_MSG(d2, d1,
+		    "[%d] modff(%a) returned int %a, frac %a;"
+		    " expected int %a, frac %a",
+		    i, d1, ip, d2, 0., d1);
+		ATF_CHECK_EQ_MSG(ip, 0,
+		    "[%d] modff(%a) returned int %a, frac %a;"
+		    " expected int %a, frac %a",
+		    i, d1, ip, d2, 0., d1);
 
 		f = frexpf(d1, &e);
-		ATF_REQUIRE_EQ(e, FLT_MIN_EXP - i);
-		ATF_REQUIRE_EQ(f, 0.5);
+		ATF_CHECK_EQ_MSG(e, FLT_MIN_EXP - i,
+		    "[%d] frexpf(%a) returned normalized %a, exponent %d;"
+		    " expected normalized %a, exponent %d",
+		    i, d1, f, e, 0.5, FLT_MIN_EXP - i);
+		ATF_CHECK_EQ_MSG(f, 0.5,
+		    "[%d] frexpf(%a) returned normalized %a, exponent %d;"
+		    " expected normalized %a, exponent %d",
+		    i, d1, f, e, 0.5, FLT_MIN_EXP - i);
 	}
 
 	d1 /= 2;
-	ATF_REQUIRE_EQ(fpclassify(d1), FP_ZERO);
+	ATF_CHECK_EQ_MSG(fpclassify(d1), FP_ZERO,
+	    "fpclassify(%a)=%d FP_ZERO=%d",
+	    d1, fpclassify(d1), FP_ZERO);
 	f = frexpf(d1, &e);
-	ATF_REQUIRE_EQ(e, 0);
-	ATF_REQUIRE_EQ(f, 0);
+	ATF_CHECK_EQ_MSG(e, 0,
+	    "frexpf(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d1, f, e, 0., 0);
+	ATF_CHECK_EQ_MSG(f, 0,
+	    "frexpf(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d1, f, e, 0., 0);
 }
 
 ATF_TC(fpclassify_double);
@@ -105,35 +137,67 @@ ATF_TC_BODY(fpclassify_double, tc)
 	int e, i;
 
 	d0 = DBL_MIN;
-	ATF_REQUIRE_EQ(fpclassify(d0), FP_NORMAL);
+	ATF_CHECK_EQ_MSG(fpclassify(d0), FP_NORMAL,
+	    "fpclassify(%a)=%d FP_NORMAL=%d",
+	    d0, fpclassify(d0), FP_NORMAL);
 	f = frexp(d0, &e);
-	ATF_REQUIRE_EQ(e, DBL_MIN_EXP);
-	ATF_REQUIRE_EQ(f, 0.5);
+	ATF_CHECK_EQ_MSG(e, DBL_MIN_EXP,
+	    "frexp(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d0, f, e, 0.5, DBL_MIN_EXP);
+	ATF_CHECK_EQ_MSG(f, 0.5,
+	    "frexp(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d0, f, e, 0.5, DBL_MIN_EXP);
 	d1 = d0;
 
 	/* shift a "1" bit through the mantissa (skip the implicit bit) */
 	for (i = 1; i < DBL_MANT_DIG; i++) {
 		d1 /= 2;
-		ATF_REQUIRE_EQ(fpclassify(d1), FP_SUBNORMAL);
-		ATF_REQUIRE(d1 > 0 && d1 < d0);
+		ATF_CHECK_EQ_MSG(fpclassify(d1), FP_SUBNORMAL,
+		    "[%d] fpclassify(%a)=%d FP_SUBNORMAL=%d",
+		    i, d1, fpclassify(d1), FP_SUBNORMAL);
+		ATF_CHECK_MSG(d1 > 0 && d1 < d0,
+		    "[%d] d1=%a d0=%a", i, d1, d0);
 
 		d2 = ldexp(d0, -i);
-		ATF_REQUIRE_EQ(d2, d1);
+		ATF_CHECK_EQ_MSG(d2, d1, "[%d] ldexp(%a, -%d)=%a != %a",
+		    i, d0, i, d2, d1);
 
 		d2 = modf(d1, &ip);
-		ATF_REQUIRE_EQ(d2, d1);
-		ATF_REQUIRE_EQ(ip, 0);
+		ATF_CHECK_EQ_MSG(d2, d1,
+		    "[%d] modf(%a) returned int %a, frac %a;"
+		    " expected int %a, frac %a",
+		    i, d1, ip, d2, 0., d1);
+		ATF_CHECK_EQ_MSG(ip, 0,
+		    "[%d] modf(%a) returned int %a, frac %a;"
+		    " expected int %a, frac %a",
+		    i, d1, ip, d2, 0., d1);
 
 		f = frexp(d1, &e);
-		ATF_REQUIRE_EQ(e, DBL_MIN_EXP - i);
-		ATF_REQUIRE_EQ(f, 0.5);
+		ATF_CHECK_EQ_MSG(e, DBL_MIN_EXP - i,
+		    "[%d] frexp(%a) returned normalized %a, exponent %d;"
+		    " expected normalized %a, exponent %d",
+		    i, d1, f, e, 0.5, DBL_MIN_EXP - i);
+		ATF_CHECK_EQ_MSG(f, 0.5,
+		    "[%d] frexp(%a) returned normalized %a, exponent %d;"
+		    " expected normalized %a, exponent %d",
+		    i, d1, f, e, 0.5, DBL_MIN_EXP - i);
 	}
 
 	d1 /= 2;
-	ATF_REQUIRE_EQ(fpclassify(d1), FP_ZERO);
+	ATF_CHECK_EQ_MSG(fpclassify(d1), FP_ZERO,
+	    "fpclassify(%a)=%d FP_ZERO=%d",
+	    d1, fpclassify(d1), FP_ZERO);
 	f = frexp(d1, &e);
-	ATF_REQUIRE_EQ(e, 0);
-	ATF_REQUIRE_EQ(f, 0);
+	ATF_CHECK_EQ_MSG(e, 0,
+	    "frexp(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d1, f, e, 0., 0);
+	ATF_CHECK_EQ_MSG(f, 0,
+	    "frexp(%a) returned normalized %a, exponent %d;"
+	    " expected normalized %a, exponent %d",
+	    d1, f, e, 0., 0);
 }
 
 ATF_TC(fpclassify_long_double);
@@ -149,35 +213,67 @@ ATF_TC_BODY(fpclassify_long_double, tc)
 	int e, i;
 
 	d0 = LDBL_MIN;
-	ATF_REQUIRE_EQ(fpclassify(d0), FP_NORMAL);
+	ATF_CHECK_EQ_MSG(fpclassify(d0), FP_NORMAL,
+	    "fpclassify(%La)=%d FP_NORMAL=%d",
+	    d0, fpclassify(d0), FP_NORMAL);
 	f = frexpl(d0, &e);
-	ATF_REQUIRE_EQ(e, LDBL_MIN_EXP);
-	ATF_REQUIRE_EQ(f, 0.5);
+	ATF_CHECK_EQ_MSG(e, LDBL_MIN_EXP,
+	    "frexpl(%La) returned normalized %La, exponent %d;"
+	    " expected normalized %La, exponent %d",
+	    d0, f, e, 0.5L, LDBL_MIN_EXP);
+	ATF_CHECK_EQ_MSG(f, 0.5,
+	    "frexpl(%La) returned normalized %La, exponent %d;"
+	    " expected normalized %La, exponent %d",
+	    d0, f, e, 0.5L, LDBL_MIN_EXP);
 	d1 = d0;
 
 	/* shift a "1" bit through the mantissa (skip the implicit bit) */
 	for (i = 1; i < LDBL_MANT_DIG; i++) {
 		d1 /= 2;
-		ATF_REQUIRE_EQ(fpclassify(d1), FP_SUBNORMAL);
-		ATF_REQUIRE(d1 > 0 && d1 < d0);
+		ATF_CHECK_EQ_MSG(fpclassify(d1), FP_SUBNORMAL,
+		    "[%d] fpclassify(%La)=%d FP_SUBNORMAL=%d",
+		    i, d1, fpclassify(d1), FP_SUBNORMAL);
+		ATF_CHECK_MSG(d1 > 0 && d1 < d0,
+		    "[%d] d1=%La d0=%La", i, d1, d0);
 
 		d2 = ldexpl(d0, -i);
-		ATF_REQUIRE_EQ(d2, d1);
+		ATF_CHECK_EQ_MSG(d2, d1, "[%d] ldexpl(%La, -%d)=%La != %La",
+		    i, d0, i, d2, d1);
 
 		d2 = modfl(d1, &ip);
-		ATF_REQUIRE_EQ(d2, d1);
-		ATF_REQUIRE_EQ(ip, 0);
+		ATF_CHECK_EQ_MSG(d2, d1,
+		    "[%d] modfl(%La) returned int %La, frac %La;"
+		    " expected int %La, frac %La",
+		    i, d1, ip, d2, 0.L, d1);
+		ATF_CHECK_EQ_MSG(ip, 0,
+		    "[%d] modfl(%La) returned int %La, frac %La;"
+		    " expected int %La, frac %La",
+		    i, d1, ip, d2, 0.L, d1);
 
 		f = frexpl(d1, &e);
-		ATF_REQUIRE_EQ(e, LDBL_MIN_EXP - i);
-		ATF_REQUIRE_EQ(f, 0.5);
+		ATF_CHECK_EQ_MSG(e, LDBL_MIN_EXP - i,
+		    "[%d] frexpl(%La) returned normalized %La, exponent %d;"
+		    " expected normalized %La, exponent %d",
+		    i, d1, f, e, 0.5L, LDBL_MIN_EXP - i);
+		ATF_CHECK_EQ_MSG(f, 0.5,
+		    "[%d] frexpl(%La) returned normalized %La, exponent %d;"
+		    " expected normalized %La, exponent %d",
+		    i, d1, f, e, 0.5L, LDBL_MIN_EXP - i);
 	}
 
 	d1 /= 2;
-	ATF_REQUIRE_EQ(fpclassify(d1), FP_ZERO);
+	ATF_CHECK_EQ_MSG(fpclassify(d1), FP_ZERO,
+	    "fpclassify(%La)=%d FP_ZERO=%d",
+	    d1, fpclassify(d1), FP_ZERO);
 	f = frexpl(d1, &e);
-	ATF_REQUIRE_EQ(e, 0);
-	ATF_REQUIRE_EQ(f, 0);
+	ATF_CHECK_EQ_MSG(e, 0,
+	    "frexpl(%La) returned normalized %La, exponent %d;"
+	    " expected normalized %La, exponent %d",
+	    d1, f, e, 0.L, 0);
+	ATF_CHECK_EQ_MSG(f, 0,
+	    "frexpl(%La) returned normalized %La, exponent %d;"
+	    " expected normalized %La, exponent %d",
+	    d1, f, e, 0.L, 0);
 }
 
 #endif /* _FLOAT_IEEE754 */

Reply via email to