diff options
| author | Eric Fiselier <eric@efcs.ca> | 2014-08-09 02:39:03 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2014-08-09 02:39:03 +0000 |
| commit | 95b0d0f888ad4ff4c64bc74e87f3b0e3d4175449 (patch) | |
| tree | 892d55ac786841134dff012b89438f8de3248808 | |
| parent | 6f147a0966e937cbfa1f9a93e21713c626340199 (diff) | |
| download | bcm5719-llvm-95b0d0f888ad4ff4c64bc74e87f3b0e3d4175449.tar.gz bcm5719-llvm-95b0d0f888ad4ff4c64bc74e87f3b0e3d4175449.zip | |
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
llvm-svn: 215275
| -rw-r--r-- | libcxx/test/depr/depr.c.headers/math_h.pass.cpp | 2 | ||||
| -rw-r--r-- | libcxx/test/numerics/c.math/cmath.pass.cpp | 29 | ||||
| -rw-r--r-- | libcxx/test/numerics/c.math/cmath_isinf.pass.cpp | 30 | ||||
| -rw-r--r-- | libcxx/test/numerics/c.math/cmath_isnan.pass.cpp | 30 |
4 files changed, 65 insertions, 26 deletions
diff --git a/libcxx/test/depr/depr.c.headers/math_h.pass.cpp b/libcxx/test/depr/depr.c.headers/math_h.pass.cpp index 858e19066eb..b03a61b15e1 100644 --- a/libcxx/test/depr/depr.c.headers/math_h.pass.cpp +++ b/libcxx/test/depr/depr.c.headers/math_h.pass.cpp @@ -9,6 +9,8 @@ // <math.h> +// XFAIL: linux + #include <math.h> #include <type_traits> #include <cassert> diff --git a/libcxx/test/numerics/c.math/cmath.pass.cpp b/libcxx/test/numerics/c.math/cmath.pass.cpp index 7c74d5b5b0b..973bea01515 100644 --- a/libcxx/test/numerics/c.math/cmath.pass.cpp +++ b/libcxx/test/numerics/c.math/cmath.pass.cpp @@ -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(); diff --git a/libcxx/test/numerics/c.math/cmath_isinf.pass.cpp b/libcxx/test/numerics/c.math/cmath_isinf.pass.cpp new file mode 100644 index 00000000000..6cde04d9bc8 --- /dev/null +++ b/libcxx/test/numerics/c.math/cmath_isinf.pass.cpp @@ -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 diff --git a/libcxx/test/numerics/c.math/cmath_isnan.pass.cpp b/libcxx/test/numerics/c.math/cmath_isnan.pass.cpp new file mode 100644 index 00000000000..f7e2b1335b1 --- /dev/null +++ b/libcxx/test/numerics/c.math/cmath_isnan.pass.cpp @@ -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); +} |

