[libcxx] r215275 - Mark math.h and cmath tests as xfail on linux.

Eric Fiselier eric at efcs.ca
Fri Aug 8 19:39:03 PDT 2014


Author: ericwf
Date: Fri Aug  8 21:39:03 2014
New Revision: 215275

URL: http://llvm.org/viewvc/llvm-project?rev=215275&view=rev
Log:
Mark math.h and cmath tests as xfail on linux.

These tests were marked as failing because the libc implementation does not
use the proper return type on certain math functions. There is other weirdness
that prevents us from defining our own version of these functions.

The failing tests in cmake were separated into their own files so that the rest
failures in the rest of the cmath tests were not hidden.

This was not done for the math.h test since we don't actually supply math.h

Added:
    libcxx/trunk/test/numerics/c.math/cmath_isinf.pass.cpp
    libcxx/trunk/test/numerics/c.math/cmath_isnan.pass.cpp
Modified:
    libcxx/trunk/test/depr/depr.c.headers/math_h.pass.cpp
    libcxx/trunk/test/numerics/c.math/cmath.pass.cpp

Modified: libcxx/trunk/test/depr/depr.c.headers/math_h.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/depr/depr.c.headers/math_h.pass.cpp?rev=215275&r1=215274&r2=215275&view=diff
==============================================================================
--- libcxx/trunk/test/depr/depr.c.headers/math_h.pass.cpp (original)
+++ libcxx/trunk/test/depr/depr.c.headers/math_h.pass.cpp Fri Aug  8 21:39:03 2014
@@ -9,6 +9,8 @@
 
 // <math.h>
 
+// XFAIL: linux
+
 #include <math.h>
 #include <type_traits>
 #include <cassert>

Modified: libcxx/trunk/test/numerics/c.math/cmath.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/numerics/c.math/cmath.pass.cpp?rev=215275&r1=215274&r2=215275&view=diff
==============================================================================
--- libcxx/trunk/test/numerics/c.math/cmath.pass.cpp (original)
+++ libcxx/trunk/test/numerics/c.math/cmath.pass.cpp Fri Aug  8 21:39:03 2014
@@ -9,6 +9,9 @@
 
 // <cmath>
 
+// NOTE: isinf and isnan are tested separately because they are expected to fail
+// on linux. We don't want their expected failure to hide other failures in this file.
+
 #include <cmath>
 #include <type_traits>
 #include <cassert>
@@ -475,30 +478,6 @@ void test_isfinite()
     assert(std::isfinite(-1.0) == true);
 }
 
-void test_isinf()
-{
-#ifdef isinf
-#error isinf defined
-#endif
-    static_assert((std::is_same<decltype(std::isinf((float)0)), bool>::value), "");
-    static_assert((std::is_same<decltype(std::isinf((double)0)), bool>::value), "");
-    static_assert((std::is_same<decltype(std::isinf(0)), bool>::value), "");
-    static_assert((std::is_same<decltype(std::isinf((long double)0)), bool>::value), "");
-    assert(std::isinf(-1.0) == false);
-}
-
-void test_isnan()
-{
-#ifdef isnan
-#error isnan defined
-#endif
-    static_assert((std::is_same<decltype(std::isnan((float)0)), bool>::value), "");
-    static_assert((std::is_same<decltype(std::isnan((double)0)), bool>::value), "");
-    static_assert((std::is_same<decltype(std::isnan(0)), bool>::value), "");
-    static_assert((std::is_same<decltype(std::isnan((long double)0)), bool>::value), "");
-    assert(std::isnan(-1.0) == false);
-}
-
 void test_isnormal()
 {
 #ifdef isnormal
@@ -1318,8 +1297,6 @@ int main()
     test_signbit();
     test_fpclassify();
     test_isfinite();
-    test_isinf();
-    test_isnan();
     test_isnormal();
     test_isgreater();
     test_isgreaterequal();

Added: libcxx/trunk/test/numerics/c.math/cmath_isinf.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/numerics/c.math/cmath_isinf.pass.cpp?rev=215275&view=auto
==============================================================================
--- libcxx/trunk/test/numerics/c.math/cmath_isinf.pass.cpp (added)
+++ libcxx/trunk/test/numerics/c.math/cmath_isinf.pass.cpp Fri Aug  8 21:39:03 2014
@@ -0,0 +1,30 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <cmath>
+
+// isinf
+
+// XFAIL: linux
+
+#include <cmath>
+#include <type_traits>
+#include <cassert>
+
+int main()
+{
+#ifdef isinf
+#error isinf defined
+#endif
+    static_assert((std::is_same<decltype(std::isinf((float)0)), bool>::value), "");
+    static_assert((std::is_same<decltype(std::isinf((double)0)), bool>::value), "");
+    static_assert((std::is_same<decltype(std::isinf(0)), bool>::value), "");
+    static_assert((std::is_same<decltype(std::isinf((long double)0)), bool>::value), "");
+    assert(std::isinf(-1.0) == false);
+}
\ No newline at end of file

Added: libcxx/trunk/test/numerics/c.math/cmath_isnan.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/numerics/c.math/cmath_isnan.pass.cpp?rev=215275&view=auto
==============================================================================
--- libcxx/trunk/test/numerics/c.math/cmath_isnan.pass.cpp (added)
+++ libcxx/trunk/test/numerics/c.math/cmath_isnan.pass.cpp Fri Aug  8 21:39:03 2014
@@ -0,0 +1,30 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <cmath>
+
+// isinf
+
+// XFAIL: linux
+
+#include <cmath>
+#include <type_traits>
+#include <cassert>
+
+int main()
+{
+#ifdef isnan
+#error isnan defined
+#endif
+    static_assert((std::is_same<decltype(std::isnan((float)0)), bool>::value), "");
+    static_assert((std::is_same<decltype(std::isnan((double)0)), bool>::value), "");
+    static_assert((std::is_same<decltype(std::isnan(0)), bool>::value), "");
+    static_assert((std::is_same<decltype(std::isnan((long double)0)), bool>::value), "");
+    assert(std::isnan(-1.0) == false);
+}





More information about the cfe-commits mailing list