diff options
author | Stephan T. Lavavej <stl@exchange.microsoft.com> | 2016-11-18 22:45:32 +0000 |
---|---|---|
committer | Stephan T. Lavavej <stl@exchange.microsoft.com> | 2016-11-18 22:45:32 +0000 |
commit | ae3c4eec5ab73bf4635939b938eaf4bdbfc6b12b (patch) | |
tree | 3b3ac2d7f71e0fd03bc79d2a273b711e1fdbccfa /libcxx/test/std/numerics/rand/rand.eng | |
parent | 62ae8f671cc922ec15e001e40801164073c8eb84 (diff) | |
download | bcm5719-llvm-ae3c4eec5ab73bf4635939b938eaf4bdbfc6b12b.tar.gz bcm5719-llvm-ae3c4eec5ab73bf4635939b938eaf4bdbfc6b12b.zip |
[libcxx] [test] D26812: In random tests, use real static_asserts and silence a warning.
In C++11 mode and newer, use real static_asserts.
In C++03 mode, min() and max() aren't constexpr, so use plain asserts.
One test triggers MSVC's warning C4310 "cast truncates constant value".
The code is valid, and yet the warning is valid, so I'm silencing it
through push-disable-pop.
llvm-svn: 287391
Diffstat (limited to 'libcxx/test/std/numerics/rand/rand.eng')
3 files changed, 49 insertions, 10 deletions
diff --git a/libcxx/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp b/libcxx/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp index 857a478a557..7ff4480ba92 100644 --- a/libcxx/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp @@ -37,8 +37,27 @@ test1() static_assert((LCE::multiplier == a), ""); static_assert((LCE::increment == c), ""); static_assert((LCE::modulus == m), ""); - /*static_*/assert((LCE::min() == (c == 0u ? 1u: 0u))/*, ""*/); - /*static_*/assert((LCE::max() == result_type(m - 1u))/*, ""*/); +#if TEST_STD_VER >= 11 + static_assert((LCE::min() == (c == 0u ? 1u: 0u)), ""); +#else + assert((LCE::min() == (c == 0u ? 1u: 0u))); +#endif + +#ifdef _MSC_VER + #pragma warning(push) + #pragma warning(disable: 4310) // cast truncates constant value +#endif // _MSC_VER + +#if TEST_STD_VER >= 11 + static_assert((LCE::max() == result_type(m - 1u)), ""); +#else + assert((LCE::max() == result_type(m - 1u))); +#endif + +#ifdef _MSC_VER + #pragma warning(pop) +#endif // _MSC_VER + static_assert((LCE::default_seed == 1), ""); where(LCE::multiplier); where(LCE::increment); diff --git a/libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp b/libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp index 331d3c51119..3a16d62d728 100644 --- a/libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp @@ -60,8 +60,13 @@ test1() static_assert((E::tempering_c == 0xefc60000), ""); static_assert((E::tempering_l == 18), ""); static_assert((E::initialization_multiplier == 1812433253), ""); - /*static_*/assert((E::min() == 0)/*, ""*/); - /*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/); +#if TEST_STD_VER >= 11 + static_assert((E::min() == 0), ""); + static_assert((E::max() == 0xFFFFFFFF), ""); +#else + assert((E::min() == 0)); + assert((E::max() == 0xFFFFFFFF)); +#endif static_assert((E::default_seed == 5489u), ""); where(E::word_size); where(E::state_size); @@ -96,8 +101,13 @@ test2() static_assert((E::tempering_c == 0xfff7eee000000000ull), ""); static_assert((E::tempering_l == 43), ""); static_assert((E::initialization_multiplier == 6364136223846793005ull), ""); - /*static_*/assert((E::min() == 0)/*, ""*/); - /*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/); +#if TEST_STD_VER >= 11 + static_assert((E::min() == 0), ""); + static_assert((E::max() == 0xFFFFFFFFFFFFFFFFull), ""); +#else + assert((E::min() == 0)); + assert((E::max() == 0xFFFFFFFFFFFFFFFFull)); +#endif static_assert((E::default_seed == 5489u), ""); where(E::word_size); where(E::state_size); diff --git a/libcxx/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp b/libcxx/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp index 75716a43dea..b3f12e72383 100644 --- a/libcxx/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp @@ -38,8 +38,13 @@ test1() static_assert((E::word_size == 24), ""); static_assert((E::short_lag == 10), ""); static_assert((E::long_lag == 24), ""); - /*static_*/assert((E::min() == 0)/*, ""*/); - /*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/); +#if TEST_STD_VER >= 11 + static_assert((E::min() == 0), ""); + static_assert((E::max() == 0xFFFFFF), ""); +#else + assert((E::min() == 0)); + assert((E::max() == 0xFFFFFF)); +#endif static_assert((E::default_seed == 19780503u), ""); where(E::word_size); where(E::short_lag); @@ -54,8 +59,13 @@ test2() static_assert((E::word_size == 48), ""); static_assert((E::short_lag == 5), ""); static_assert((E::long_lag == 12), ""); - /*static_*/assert((E::min() == 0)/*, ""*/); - /*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/); +#if TEST_STD_VER >= 11 + static_assert((E::min() == 0), ""); + static_assert((E::max() == 0xFFFFFFFFFFFFull), ""); +#else + assert((E::min() == 0)); + assert((E::max() == 0xFFFFFFFFFFFFull)); +#endif static_assert((E::default_seed == 19780503u), ""); where(E::word_size); where(E::short_lag); |