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 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@215275 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -9,6 +9,8 @@
|
||||
|
||||
// <math.h>
|
||||
|
||||
// XFAIL: linux
|
||||
|
||||
#include <math.h>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
@@ -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();
|
||||
|
30
test/numerics/c.math/cmath_isinf.pass.cpp
Normal file
30
test/numerics/c.math/cmath_isinf.pass.cpp
Normal file
@@ -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);
|
||||
}
|
30
test/numerics/c.math/cmath_isnan.pass.cpp
Normal file
30
test/numerics/c.math/cmath_isnan.pass.cpp
Normal file
@@ -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);
|
||||
}
|
Reference in New Issue
Block a user