From eac01167f50d718d7551e30e5eb54fe4c0437a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 7 Sep 2015 00:01:36 +0200 Subject: [PATCH] MSVC 2015 compatibility: except long double (de)normalization to fail. I'm giving up on this one also for 2015. Cherry-picked from compatibility branch (6ee931b7b492c12cd6674c93564617c7139cea84). --- src/Magnum/Math/Test/FunctionsTest.cpp | 35 ++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/Magnum/Math/Test/FunctionsTest.cpp b/src/Magnum/Math/Test/FunctionsTest.cpp index 95b71cbee..131dee2f3 100644 --- a/src/Magnum/Math/Test/FunctionsTest.cpp +++ b/src/Magnum/Math/Test/FunctionsTest.cpp @@ -319,7 +319,12 @@ void FunctionsTest::denormalizeUnsigned() { CORRADE_COMPARE(Math::denormalize(1.0), std::numeric_limits::max()); CORRADE_COMPARE(Math::denormalize(0.0l), 0); - CORRADE_COMPARE(Math::denormalize(1.0l), std::numeric_limits::max()); + { + #ifdef CORRADE_MSVC2015_COMPATIBILITY + CORRADE_EXPECT_FAIL("Long double (de)normalization is broken on MSVC <= 2015."); + #endif + CORRADE_COMPARE(Math::denormalize(1.0l), std::numeric_limits::max()); + } #endif CORRADE_COMPARE(Math::denormalize(0.33f), 21626); @@ -342,9 +347,19 @@ void FunctionsTest::denormalizeSigned() { CORRADE_COMPARE(Math::denormalize(0.0), 0); CORRADE_COMPARE(Math::denormalize(1.0), std::numeric_limits::max()); - CORRADE_COMPARE(Math::denormalize(-1.0l), std::numeric_limits::min()+1); + { + #ifdef CORRADE_MSVC2015_COMPATIBILITY + CORRADE_EXPECT_FAIL("Long double (de)normalization is broken on MSVC <= 2015."); + #endif + CORRADE_COMPARE(Math::denormalize(-1.0l), std::numeric_limits::min()+1); + } CORRADE_COMPARE(Math::denormalize(0.0l), 0); - CORRADE_COMPARE(Math::denormalize(1.0l), std::numeric_limits::max()); + { + #ifdef CORRADE_MSVC2015_COMPATIBILITY + CORRADE_EXPECT_FAIL("Long double (de)normalization is broken on MSVC <= 2015."); + #endif + CORRADE_COMPARE(Math::denormalize(1.0l), std::numeric_limits::max()); + } #endif CORRADE_COMPARE(Math::denormalize(-0.33f), -10813); @@ -365,7 +380,12 @@ void FunctionsTest::renormalizeUnsinged() { CORRADE_COMPARE(Math::normalize(Math::denormalize(1.0)), 1.0); CORRADE_COMPARE(Math::normalize(Math::denormalize(0.0l)), 0.0l); - CORRADE_COMPARE(Math::normalize(Math::denormalize(1.0l)), 1.0l); + { + #ifdef CORRADE_MSVC2015_COMPATIBILITY + CORRADE_EXPECT_FAIL("Long double (de)normalization is broken on MSVC <= 2015."); + #endif + CORRADE_COMPARE(Math::normalize(Math::denormalize(1.0l)), 1.0l); + } #endif } @@ -385,7 +405,12 @@ void FunctionsTest::renormalizeSinged() { CORRADE_COMPARE(Math::normalize(Math::denormalize(-1.0l)), -1.0l); CORRADE_COMPARE(Math::normalize(Math::denormalize(0.0l)), 0.0l); - CORRADE_COMPARE(Math::normalize(Math::denormalize(1.0l)), 1.0l); + { + #ifdef CORRADE_MSVC2015_COMPATIBILITY + CORRADE_EXPECT_FAIL("Long double (de)normalization is broken on MSVC <= 2015."); + #endif + CORRADE_COMPARE(Math::normalize(Math::denormalize(1.0l)), 1.0l); + } #endif }