svn commit: r313237 - stable/11/lib/msun/tests

Ngie Cooper ngie at FreeBSD.org
Sat Feb 4 17:06:53 UTC 2017


Author: ngie
Date: Sat Feb  4 17:06:51 2017
New Revision: 313237
URL: https://svnweb.freebsd.org/changeset/base/313237

Log:
  MFC r303841,r312012,r312213:
  
  r303841 (by bdrewery):
  
  Revert r298434 which should be fixed by r301287, r301394, and r301403.
  
  PR:	208703, 208963
  
  r312012:
  
  fmaxmin_test still fails with clang 3.9.x.. bypass the test
  
  PR:		208703
  
  r312213:
  
  Turn COMPILER_VERSION/COMPILER_TYPE make check into a compile-time check
  of the clang version
  
  This works around breakage on ^/stable/10 when running installworld from
  a ^/stable/10 host where the test wouldn't be compiled on the first
  go-around and would be missing when make installworld is run.
  
  PR:		208703

Modified:
  stable/11/lib/msun/tests/Makefile
  stable/11/lib/msun/tests/fmaxmin_test.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/msun/tests/Makefile
==============================================================================
--- stable/11/lib/msun/tests/Makefile	Sat Feb  4 17:02:54 2017	(r313236)
+++ stable/11/lib/msun/tests/Makefile	Sat Feb  4 17:06:51 2017	(r313237)
@@ -52,16 +52,7 @@ TAP_TESTS_C+=	ctrig_test
 TAP_TESTS_C+=	exponential_test
 TAP_TESTS_C+=	fenv_test
 TAP_TESTS_C+=	fma_test
-# clang 3.8.0 fails always fails this test. See: bug 208703
-#
-# XXX: depending on this compiler version check doesn't work at
-# buildworld/installworld time, which results in jenkins failures (bug 208963)
-# because the build is run on a 10.x instance, which has an older clang
-# compiler.
-#
-#.if ! (${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} == 30800)
-#TAP_TESTS_C+=	fmaxmin_test
-#.endif
+TAP_TESTS_C+=	fmaxmin_test
 TAP_TESTS_C+=	ilogb_test
 TAP_TESTS_C+=	invtrig_test
 TAP_TESTS_C+=	invctrig_test

Modified: stable/11/lib/msun/tests/fmaxmin_test.c
==============================================================================
--- stable/11/lib/msun/tests/fmaxmin_test.c	Sat Feb  4 17:02:54 2017	(r313236)
+++ stable/11/lib/msun/tests/fmaxmin_test.c	Sat Feb  4 17:06:51 2017	(r313237)
@@ -86,6 +86,8 @@ testall_r(long double big, long double s
 	return (ok);
 }
 
+const char *comment = NULL;
+
 /*
  * Test all the functions: fmaxf, fmax, fmaxl, fminf, fmin, and fminl,
  * in all rounding modes and with the arguments in different orders.
@@ -107,10 +109,17 @@ testall(int testnum, long double big, lo
 			break;
 		}
 	}
-	printf("%sok %d - big = %.20Lg, small = %.20Lg\n",
-	       (i == 4) ? "" : "not ", testnum, big, small);
+	printf("%sok %d - big = %.20Lg, small = %.20Lg%s\n",
+	       (i == 4) ? "" : "not ", testnum, big, small,
+	       comment == NULL ? "" : comment);
 }
 
+/* Clang 3.8.0+ fails the invariants for testcase 6, 7, 10, and 11. */
+#if defined(__clang__) && \
+    (__clang_major__ >= 3 && __clang_minor__ >= 8 && __clang_patchlevel__ >= 0)
+#define	affected_by_bug_208703
+#endif
+
 int
 main(int argc, char *argv[])
 {
@@ -122,15 +131,23 @@ main(int argc, char *argv[])
 	testall(3, nextafterf(42.0, INFINITY), 42.0);
 	testall(4, -5.0, -5.0);
 	testall(5, -3.0, -4.0);
+#ifdef affected_by_bug_208703
+	comment = "# TODO: testcase 6-7 fails invariant with clang 3.8+ (bug 208703)";
+#endif
 	testall(6, 1.0, NAN);
 	testall(7, INFINITY, NAN);
+	comment = NULL;
 	testall(8, INFINITY, 1.0);
 	testall(9, -3.0, -INFINITY);
 	testall(10, 3.0, -INFINITY);
+#ifdef affected_by_bug_208703
+	comment = "# TODO: testcase 11-12 fails invariant with clang 3.8+ (bug 208703)";
+#endif
 	testall(11, NAN, NAN);
 
 	/* This test isn't strictly required to work by C99. */
 	testall(12, 0.0, -0.0);
+	comment = NULL;
 
 	return (0);
 }


More information about the svn-src-all mailing list