summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/time
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2018-11-13 17:22:41 +0000
committerMarshall Clow <mclow.lists@gmail.com>2018-11-13 17:22:41 +0000
commitcf355fc37383dd81093cf093c4ab6c879d6bb66d (patch)
treee47df6bd83f365bcc9735ae7862dba34b7a6f7b8 /libcxx/test/std/utilities/time
parent7a83c5f623c00e6c1a88f1a90ac8691381375199 (diff)
downloadbcm5719-llvm-cf355fc37383dd81093cf093c4ab6c879d6bb66d.tar.gz
bcm5719-llvm-cf355fc37383dd81093cf093c4ab6c879d6bb66d.zip
Implement P0972R0: <chrono> zero(), min(), and max() should be noexcept. Reviewed as https://reviews.llvm.org/D53828
llvm-svn: 346766
Diffstat (limited to 'libcxx/test/std/utilities/time')
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp6
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp6
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp6
-rw-r--r--libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp8
-rw-r--r--libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp8
-rw-r--r--libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp11
-rw-r--r--libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp11
-rw-r--r--libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp9
8 files changed, 57 insertions, 8 deletions
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp
index 48c3e86e810..29b0e04c247 100644
--- a/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp
@@ -11,7 +11,7 @@
// duration
-// static constexpr duration max();
+// static constexpr duration max(); // noexcept after C++17
#include <chrono>
#include <limits>
@@ -23,6 +23,10 @@
template <class D>
void test()
{
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<typename D::rep>::max());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT( std::chrono::duration_values<typename D::rep>::max());
+#endif
{
typedef typename D::rep Rep;
Rep max_rep = std::chrono::duration_values<Rep>::max();
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp
index 0d94aaa5869..daf7165cf90 100644
--- a/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp
@@ -11,7 +11,7 @@
// duration
-// static constexpr duration min();
+// static constexpr duration min(); // noexcept after C++17
#include <chrono>
#include <limits>
@@ -23,6 +23,10 @@
template <class D>
void test()
{
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<typename D::rep>::min());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT( std::chrono::duration_values<typename D::rep>::min());
+#endif
{
typedef typename D::rep Rep;
Rep min_rep = std::chrono::duration_values<Rep>::min();
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp
index 7b312c5acb5..f9a4673db1a 100644
--- a/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp
@@ -11,7 +11,7 @@
// duration
-// static constexpr duration zero();
+// static constexpr duration zero(); // noexcept after C++17
#include <chrono>
#include <cassert>
@@ -22,6 +22,10 @@
template <class D>
void test()
{
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<typename D::rep>::zero());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT( std::chrono::duration_values<typename D::rep>::zero());
+#endif
{
typedef typename D::rep Rep;
Rep zero_rep = std::chrono::duration_values<Rep>::zero();
diff --git a/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp b/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp
index 6bba6fc8278..1d8d0796438 100644
--- a/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.point/time.point.special/max.pass.cpp
@@ -11,15 +11,21 @@
// time_point
-// static constexpr time_point max();
+// static constexpr time_point max(); // noexcept after C++17
#include <chrono>
#include <cassert>
+#include "test_macros.h"
+
int main()
{
typedef std::chrono::system_clock Clock;
typedef std::chrono::milliseconds Duration;
typedef std::chrono::time_point<Clock, Duration> TP;
+ LIBCPP_ASSERT_NOEXCEPT(TP::max());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT( TP::max());
+#endif
assert(TP::max() == TP(Duration::max()));
}
diff --git a/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp b/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp
index b1d955c252a..fab5b4aae22 100644
--- a/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.point/time.point.special/min.pass.cpp
@@ -11,15 +11,21 @@
// time_point
-// static constexpr time_point min();
+// static constexpr time_point min(); // noexcept after C++17
#include <chrono>
#include <cassert>
+#include "test_macros.h"
+
int main()
{
typedef std::chrono::system_clock Clock;
typedef std::chrono::milliseconds Duration;
typedef std::chrono::time_point<Clock, Duration> TP;
+ LIBCPP_ASSERT_NOEXCEPT(TP::max());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT( TP::max());
+#endif
assert(TP::min() == TP(Duration::min()));
}
diff --git a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp
index e3754c1f647..bd411543794 100644
--- a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp
@@ -9,7 +9,7 @@
// <chrono>
-// duration_values::max
+// duration_values::max // noexcept after C++17
#include <chrono>
#include <limits>
@@ -34,4 +34,13 @@ int main()
static_assert(std::chrono::duration_values<Rep>::max() ==
std::numeric_limits<Rep>::max(), "");
#endif
+
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<int>::max());
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<double>::max());
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::max());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT(std::chrono::duration_values<int>::max());
+ ASSERT_NOEXCEPT(std::chrono::duration_values<double>::max());
+ ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::max());
+#endif
}
diff --git a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp
index 508837375b8..207a9ab5aff 100644
--- a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp
@@ -9,7 +9,7 @@
// <chrono>
-// duration_values::min
+// duration_values::min // noexcept after C++17
#include <chrono>
#include <limits>
@@ -34,4 +34,13 @@ int main()
static_assert(std::chrono::duration_values<Rep>::min() ==
std::numeric_limits<Rep>::lowest(), "");
#endif
+
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<int>::min());
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<double>::min());
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::min());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT(std::chrono::duration_values<int>::min());
+ ASSERT_NOEXCEPT(std::chrono::duration_values<double>::min());
+ ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::min());
+#endif
}
diff --git a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp
index b84a676738a..614c69b2e38 100644
--- a/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp
@@ -9,7 +9,7 @@
// <chrono>
-// duration_values::zero
+// duration_values::zero // noexcept after C++17
#include <chrono>
#include <cassert>
@@ -25,4 +25,11 @@ int main()
static_assert(std::chrono::duration_values<int>::zero() == 0, "");
static_assert(std::chrono::duration_values<Rep>::zero() == 0, "");
#endif
+
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<int>::zero());
+ LIBCPP_ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::zero());
+#if TEST_STD_VER > 17
+ ASSERT_NOEXCEPT(std::chrono::duration_values<int>::zero());
+ ASSERT_NOEXCEPT(std::chrono::duration_values<Rep>::zero());
+#endif
}
OpenPOWER on IntegriCloud