summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/time/time.duration/time.duration.literals
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2014-12-20 01:40:03 +0000
committerEric Fiselier <eric@efcs.ca>2014-12-20 01:40:03 +0000
commit5a83710e371fe68a06e6e3876c6a2c8b820a8976 (patch)
treeafde4c82ad6704681781c5cd49baa3fbd05c85db /libcxx/test/std/utilities/time/time.duration/time.duration.literals
parentf11e8eab527fba316c64112f6e05de1a79693a3e (diff)
downloadbcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.tar.gz
bcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.zip
Move test into test/std subdirectory.
llvm-svn: 224658
Diffstat (limited to 'libcxx/test/std/utilities/time/time.duration/time.duration.literals')
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals.pass.cpp59
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.fail.cpp21
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.pass.cpp48
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.fail.cpp22
-rw-r--r--libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.pass.cpp51
5 files changed, 201 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals.pass.cpp
new file mode 100644
index 00000000000..48324ae8365
--- /dev/null
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals.pass.cpp
@@ -0,0 +1,59 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+#include <chrono>
+#include <type_traits>
+#include <cassert>
+
+int main()
+{
+#if _LIBCPP_STD_VER > 11
+ using namespace std::literals::chrono_literals;
+
+// Make sure the types are right
+ static_assert ( std::is_same<decltype( 3h ), std::chrono::hours>::value, "" );
+ static_assert ( std::is_same<decltype( 3min ), std::chrono::minutes>::value, "" );
+ static_assert ( std::is_same<decltype( 3s ), std::chrono::seconds>::value, "" );
+ static_assert ( std::is_same<decltype( 3ms ), std::chrono::milliseconds>::value, "" );
+ static_assert ( std::is_same<decltype( 3us ), std::chrono::microseconds>::value, "" );
+ static_assert ( std::is_same<decltype( 3ns ), std::chrono::nanoseconds>::value, "" );
+
+ std::chrono::hours h = 4h;
+ assert ( h == std::chrono::hours(4));
+ auto h2 = 4.0h;
+ assert ( h == h2 );
+
+ std::chrono::minutes min = 36min;
+ assert ( min == std::chrono::minutes(36));
+ auto min2 = 36.0min;
+ assert ( min == min2 );
+
+ std::chrono::seconds s = 24s;
+ assert ( s == std::chrono::seconds(24));
+ auto s2 = 24.0s;
+ assert ( s == s2 );
+
+ std::chrono::milliseconds ms = 247ms;
+ assert ( ms == std::chrono::milliseconds(247));
+ auto ms2 = 247.0ms;
+ assert ( ms == ms2 );
+
+ std::chrono::microseconds us = 867us;
+ assert ( us == std::chrono::microseconds(867));
+ auto us2 = 867.0us;
+ assert ( us == us2 );
+
+ std::chrono::nanoseconds ns = 645ns;
+ assert ( ns == std::chrono::nanoseconds(645));
+ auto ns2 = 645.ns;
+ assert ( ns == ns2 );
+#endif
+}
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.fail.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.fail.cpp
new file mode 100644
index 00000000000..46aaa30e51e
--- /dev/null
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.fail.cpp
@@ -0,0 +1,21 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+#if _LIBCPP_STD_VER > 11
+ std::chrono::hours h = 4h; // should fail w/conversion operator not found
+#else
+#error
+#endif
+}
+
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.pass.cpp
new file mode 100644
index 00000000000..574f9bcce87
--- /dev/null
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals1.pass.cpp
@@ -0,0 +1,48 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+#if _LIBCPP_STD_VER > 11
+ using namespace std::chrono;
+
+ hours h = 4h;
+ assert ( h == hours(4));
+ auto h2 = 4.0h;
+ assert ( h == h2 );
+
+ minutes min = 36min;
+ assert ( min == minutes(36));
+ auto min2 = 36.0min;
+ assert ( min == min2 );
+
+ seconds s = 24s;
+ assert ( s == seconds(24));
+ auto s2 = 24.0s;
+ assert ( s == s2 );
+
+ milliseconds ms = 247ms;
+ assert ( ms == milliseconds(247));
+ auto ms2 = 247.0ms;
+ assert ( ms == ms2 );
+
+ microseconds us = 867us;
+ assert ( us == microseconds(867));
+ auto us2 = 867.0us;
+ assert ( us == us2 );
+
+ nanoseconds ns = 645ns;
+ assert ( ns == nanoseconds(645));
+ auto ns2 = 645.ns;
+ assert ( ns == ns2 );
+#endif
+}
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.fail.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.fail.cpp
new file mode 100644
index 00000000000..17358e589f4
--- /dev/null
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.fail.cpp
@@ -0,0 +1,22 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+#include <chrono>
+#include <cassert>
+
+int main()
+{
+#if _LIBCPP_STD_VER > 11
+ using std::chrono::hours;
+
+ hours foo = 4h; // should fail w/conversion operator not found
+#else
+#error
+#endif
+}
diff --git a/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.pass.cpp b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.pass.cpp
new file mode 100644
index 00000000000..e37bc6e6796
--- /dev/null
+++ b/libcxx/test/std/utilities/time/time.duration/time.duration.literals/literals2.pass.cpp
@@ -0,0 +1,51 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <chrono>
+
+#include <chrono>
+#include <type_traits>
+#include <cassert>
+
+int main()
+{
+#if _LIBCPP_STD_VER > 11
+ using namespace std::literals;
+
+ std::chrono::hours h = 4h;
+ assert ( h == std::chrono::hours(4));
+ auto h2 = 4.0h;
+ assert ( h == h2 );
+
+ std::chrono::minutes min = 36min;
+ assert ( min == std::chrono::minutes(36));
+ auto min2 = 36.0min;
+ assert ( min == min2 );
+
+ std::chrono::seconds s = 24s;
+ assert ( s == std::chrono::seconds(24));
+ auto s2 = 24.0s;
+ assert ( s == s2 );
+
+ std::chrono::milliseconds ms = 247ms;
+ assert ( ms == std::chrono::milliseconds(247));
+ auto ms2 = 247.0ms;
+ assert ( ms == ms2 );
+
+ std::chrono::microseconds us = 867us;
+ assert ( us == std::chrono::microseconds(867));
+ auto us2 = 867.0us;
+ assert ( us == us2 );
+
+ std::chrono::nanoseconds ns = 645ns;
+ assert ( ns == std::chrono::nanoseconds(645));
+ auto ns2 = 645.ns;
+ assert ( ns == ns2 );
+#endif
+}
OpenPOWER on IntegriCloud