From 64428acf41943b929e9ebc8e83cfaad2f76ab33a Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Fri, 28 Oct 2016 06:40:29 +0000 Subject: Add more tests for optional llvm-svn: 285384 --- .../optional/optional.object/optional.object.ctor/U.pass.cpp | 5 +++++ .../optional/optional.object/optional.object.ctor/const_T.pass.cpp | 5 +++++ .../optional/optional.object/optional.object.ctor/copy.pass.cpp | 5 +++++ .../optional.object/optional.object.ctor/in_place_t.pass.cpp | 4 ++++ .../optional/optional.object/optional.object.ctor/move.pass.cpp | 5 +++++ .../optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp | 5 +++++ 6 files changed, 29 insertions(+) (limited to 'libcxx/test') diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp index 18efd10a30b..68111c0c13b 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp @@ -68,6 +68,11 @@ void test_implicit() using T = long double; static_assert(implicit_conversion(3.14, 3.14), ""); } + { + int x = 42; + optional o(&x); + assert(*o == &x); + } { using T = TrivialTestTypes::TestType; static_assert(implicit_conversion(42, 42), ""); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp index 3f98d907890..34a12b8ad1c 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp @@ -52,6 +52,11 @@ int main() }; } + { + const int x = 42; + optional o(x); + assert(*o == x); + } { typedef TestTypes::TestType T; T::reset(); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp index d2b704c95f2..5906d4edd11 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp @@ -108,6 +108,11 @@ int main() { test(); test(3); + { + const optional o(42); + optional o2(o); + assert(*o2 == 42); + } { using T = TestTypes::TestType; T::reset(); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp index 3cc456f850c..d0823d2c8c8 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp @@ -74,6 +74,10 @@ int main() }; } + { + optional opt(in_place, 5); + assert(*opt == 5); + } { const optional opt(in_place); assert(static_cast(opt) == true); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp index 5a4929c5373..bff6f5bf8f6 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp @@ -136,6 +136,11 @@ int main() { test(); test(3); + { + optional o(42); + optional o2(std::move(o)); + assert(*o2 == 42); + } { using T = TestTypes::TestType; T::reset(); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp index 496661d922a..eee749d0170 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp @@ -58,6 +58,11 @@ int main() constexpr test_constexpr_ctor(T&&) {} }; } + { + const int x = 42; + optional o(std::move(x)); + assert(*o == 42); + } { typedef TestTypes::TestType T; T::reset(); -- cgit v1.2.3