summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/numerics/rand/rand.eng
diff options
context:
space:
mode:
authorStephan T. Lavavej <stl@exchange.microsoft.com>2016-11-18 22:45:32 +0000
committerStephan T. Lavavej <stl@exchange.microsoft.com>2016-11-18 22:45:32 +0000
commitae3c4eec5ab73bf4635939b938eaf4bdbfc6b12b (patch)
tree3b3ac2d7f71e0fd03bc79d2a273b711e1fdbccfa /libcxx/test/std/numerics/rand/rand.eng
parent62ae8f671cc922ec15e001e40801164073c8eb84 (diff)
downloadbcm5719-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')
-rw-r--r--libcxx/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp23
-rw-r--r--libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp18
-rw-r--r--libcxx/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp18
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);
OpenPOWER on IntegriCloud