From a0b4d55133a01e6c863095624a6d2bb30a46e8ef Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Fri, 28 Oct 2016 06:40:29 +0000 Subject: [PATCH] Add more tests for optional git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285384 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../optional/optional.object/optional.object.ctor/U.pass.cpp | 5 +++++ .../optional.object/optional.object.ctor/const_T.pass.cpp | 5 +++++ .../optional.object/optional.object.ctor/copy.pass.cpp | 5 +++++ .../optional.object/optional.object.ctor/in_place_t.pass.cpp | 4 ++++ .../optional.object/optional.object.ctor/move.pass.cpp | 5 +++++ .../optional.object/optional.object.ctor/rvalue_T.pass.cpp | 5 +++++ 6 files changed, 29 insertions(+) diff --git a/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp index 18efd10a3..68111c0c1 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp +++ b/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/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp index 3f98d9078..34a12b8ad 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp +++ b/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/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp index d2b704c95..5906d4edd 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp +++ b/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/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp index 3cc456f85..d0823d2c8 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp +++ b/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/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp index 5a4929c53..bff6f5bf8 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp +++ b/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/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp index 496661d92..eee749d01 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp +++ b/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();