summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/time/time.duration/time.duration.cons
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/utilities/time/time.duration/time.duration.cons')
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/convert_exact.pass.cpp28
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/convert_float_to_int.fail.cpp26
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.fail.cpp26
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.pass.cpp28
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/convert_int_to_float.pass.cpp28
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp35
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/rep.pass.cpp37
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/rep01.fail.cpp27
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.fail.cpp27
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.pass.cpp27
-rw-r--r--libcxx/test/utilities/time/time.duration/time.duration.cons/rep03.fail.cpp25
11 files changed, 303 insertions, 11 deletions
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_exact.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_exact.pass.cpp
index 356fd1bd8e3..9639ad2b902 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_exact.pass.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_exact.pass.cpp
@@ -1 +1,27 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2, class Period2> // duration(const duration<Rep2, Period2>& d); // exact conversions allowed for integral reps #include <chrono> #include <cassert> int main() { std::chrono::milliseconds ms(1); std::chrono::microseconds us = ms; assert(us.count() == 1000); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2, class Period2>
+// duration(const duration<Rep2, Period2>& d);
+
+// exact conversions allowed for integral reps
+
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+ std::chrono::milliseconds ms(1);
+ std::chrono::microseconds us = ms;
+ assert(us.count() == 1000);
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_float_to_int.fail.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_float_to_int.fail.cpp
index 5d53a39d594..056096a66b0 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_float_to_int.fail.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_float_to_int.fail.cpp
@@ -1 +1,25 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2, class Period2> // duration(const duration<Rep2, Period2>& d); // conversions from floating point to integral durations disallowed #include <chrono> int main() { std::chrono::duration<double> d; std::chrono::duration<int> i = d; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2, class Period2>
+// duration(const duration<Rep2, Period2>& d);
+
+// conversions from floating point to integral durations disallowed
+
+#include <chrono>
+
+int main()
+{
+ std::chrono::duration<double> d;
+ std::chrono::duration<int> i = d;
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.fail.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.fail.cpp
index 1e87931a01d..692da387770 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.fail.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.fail.cpp
@@ -1 +1,25 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2, class Period2> // duration(const duration<Rep2, Period2>& d); // inexact conversions disallowed for integral reps #include <chrono> int main() { std::chrono::microseconds us(1); std::chrono::milliseconds ms = us; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2, class Period2>
+// duration(const duration<Rep2, Period2>& d);
+
+// inexact conversions disallowed for integral reps
+
+#include <chrono>
+
+int main()
+{
+ std::chrono::microseconds us(1);
+ std::chrono::milliseconds ms = us;
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.pass.cpp
index 1359be9c0eb..39f281a026e 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.pass.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_inexact.pass.cpp
@@ -1 +1,27 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2, class Period2> // duration(const duration<Rep2, Period2>& d); // inexact conversions allowed for floating point reps #include <chrono> #include <cassert> int main() { std::chrono::duration<double, std::micro> us(1); std::chrono::duration<double, std::milli> ms = us; assert(ms.count() == 1./1000); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2, class Period2>
+// duration(const duration<Rep2, Period2>& d);
+
+// inexact conversions allowed for floating point reps
+
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+ std::chrono::duration<double, std::micro> us(1);
+ std::chrono::duration<double, std::milli> ms = us;
+ assert(ms.count() == 1./1000);
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_int_to_float.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_int_to_float.pass.cpp
index 32328cac805..a69c3543c2d 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_int_to_float.pass.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/convert_int_to_float.pass.cpp
@@ -1 +1,27 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2, class Period2> // duration(const duration<Rep2, Period2>& d); // conversions from integral to floating point durations allowed #include <chrono> #include <cassert> int main() { std::chrono::duration<int> i(3); std::chrono::duration<int> d = i; assert(d.count() == 3); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2, class Period2>
+// duration(const duration<Rep2, Period2>& d);
+
+// conversions from integral to floating point durations allowed
+
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+ std::chrono::duration<int> i(3);
+ std::chrono::duration<int> d = i;
+ assert(d.count() == 3);
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp
index 1d86be2ecac..917c4cc744c 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp
@@ -1 +1,34 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // duration() = default; // Rep must be default initialized, not initialized with 0 #include <chrono> #include <cassert> #include "../../rep.h" template <class D> void test() { D d; assert(d.count() == typename D::rep()); } int main() { test<std::chrono::duration<Rep> >(); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// duration() = default;
+
+// Rep must be default initialized, not initialized with 0
+
+#include <chrono>
+#include <cassert>
+
+#include "../../rep.h"
+
+template <class D>
+void
+test()
+{
+ D d;
+ assert(d.count() == typename D::rep());
+}
+
+int main()
+{
+ test<std::chrono::duration<Rep> >();
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep.pass.cpp
index 7538605d073..59bbd6e1946 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep.pass.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep.pass.cpp
@@ -1 +1,36 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2> // explicit duration(const Rep2& r); #include <chrono> #include <cassert> #include "../../rep.h" template <class D, class R> void test(R r) { D d(r); assert(d.count() == r); } int main() { test<std::chrono::duration<int> >(5); test<std::chrono::duration<int, std::ratio<3, 2> > >(5); test<std::chrono::duration<Rep, std::ratio<3, 2> > >(Rep(3)); test<std::chrono::duration<double, std::ratio<2, 3> > >(5.5); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2>
+// explicit duration(const Rep2& r);
+
+#include <chrono>
+#include <cassert>
+
+#include "../../rep.h"
+
+template <class D, class R>
+void
+test(R r)
+{
+ D d(r);
+ assert(d.count() == r);
+}
+
+int main()
+{
+ test<std::chrono::duration<int> >(5);
+ test<std::chrono::duration<int, std::ratio<3, 2> > >(5);
+ test<std::chrono::duration<Rep, std::ratio<3, 2> > >(Rep(3));
+ test<std::chrono::duration<double, std::ratio<2, 3> > >(5.5);
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep01.fail.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep01.fail.cpp
index da9d886c249..b0d20e1e1a6 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep01.fail.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep01.fail.cpp
@@ -1 +1,26 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2> // explicit duration(const Rep2& r); // test for explicit #include <chrono> #include "../../rep.h" int main() { std::chrono::duration<int> d = 1; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2>
+// explicit duration(const Rep2& r);
+
+// test for explicit
+
+#include <chrono>
+
+#include "../../rep.h"
+
+int main()
+{
+ std::chrono::duration<int> d = 1;
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.fail.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.fail.cpp
index 17d532cbadb..72bd7678858 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.fail.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.fail.cpp
@@ -1 +1,26 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2> // explicit duration(const Rep2& r); // Rep2 shall be implicitly convertible to rep #include <chrono> #include "../../rep.h" int main() { std::chrono::duration<Rep> d(1); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2>
+// explicit duration(const Rep2& r);
+
+// Rep2 shall be implicitly convertible to rep
+
+#include <chrono>
+
+#include "../../rep.h"
+
+int main()
+{
+ std::chrono::duration<Rep> d(1);
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.pass.cpp
index 38844c7811c..c25f04a96c9 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.pass.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep02.pass.cpp
@@ -1 +1,26 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2> // explicit duration(const Rep2& r); // construct double with int #include <chrono> #include <cassert> int main() { std::chrono::duration<double> d(5); assert(d.count() == 5); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2>
+// explicit duration(const Rep2& r);
+
+// construct double with int
+
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+ std::chrono::duration<double> d(5);
+ assert(d.count() == 5);
+}
diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep03.fail.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep03.fail.cpp
index fb6c83a1d3d..9fa9bdeb8c7 100644
--- a/libcxx/test/utilities/time/time.duration/time.duration.cons/rep03.fail.cpp
+++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/rep03.fail.cpp
@@ -1 +1,24 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <chrono> // duration // template <class Rep2> // explicit duration(const Rep2& r); // treat_as_floating_point<Rep2>::value shall be false #include <chrono> int main() { std::chrono::duration<int> d(1.); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+// duration
+
+// template <class Rep2>
+// explicit duration(const Rep2& r);
+
+// treat_as_floating_point<Rep2>::value shall be false
+
+#include <chrono>
+
+int main()
+{
+ std::chrono::duration<int> d(1.);
+}
OpenPOWER on IntegriCloud