From 5ca98fd98791947eba83a1ed3f2c8191ef7afa6c Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 24 Nov 2014 09:08:18 +0000 Subject: Vendor import of llvm RELEASE_350/final tag r216957 (effectively, 3.5.0 release): https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_350/final@216957 --- unittests/Support/ErrorOrTest.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'unittests/Support/ErrorOrTest.cpp') diff --git a/unittests/Support/ErrorOrTest.cpp b/unittests/Support/ErrorOrTest.cpp index feb6a086e194..d76e7d62421f 100644 --- a/unittests/Support/ErrorOrTest.cpp +++ b/unittests/Support/ErrorOrTest.cpp @@ -8,9 +8,8 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/ErrorOr.h" - +#include "llvm/Support/Errc.h" #include "gtest/gtest.h" - #include using namespace llvm; @@ -22,22 +21,25 @@ ErrorOr t2() { return errc::invalid_argument; } TEST(ErrorOr, SimpleValue) { ErrorOr a = t1(); - EXPECT_TRUE(a); + // FIXME: This is probably a bug in gtest. EXPECT_TRUE should expand to + // include the !! to make it friendly to explicit bool operators. + EXPECT_TRUE(!!a); EXPECT_EQ(1, *a); + ErrorOr b = a; + EXPECT_EQ(1, *b); + a = t2(); EXPECT_FALSE(a); - EXPECT_EQ(errc::invalid_argument, a); + EXPECT_EQ(a.getError(), errc::invalid_argument); #ifdef EXPECT_DEBUG_DEATH EXPECT_DEBUG_DEATH(*a, "Cannot get value when an error exists"); #endif } -#if LLVM_HAS_CXX11_STDLIB ErrorOr > t3() { return std::unique_ptr(new int(3)); } -#endif TEST(ErrorOr, Types) { int x; @@ -45,22 +47,18 @@ TEST(ErrorOr, Types) { *a = 42; EXPECT_EQ(42, x); -#if LLVM_HAS_CXX11_STDLIB // Move only types. EXPECT_EQ(3, **t3()); -#endif } struct B {}; struct D : B {}; TEST(ErrorOr, Covariant) { - ErrorOr b(ErrorOr(0)); - b = ErrorOr(0); + ErrorOr b(ErrorOr(nullptr)); + b = ErrorOr(nullptr); -#if LLVM_HAS_CXX11_STDLIB - ErrorOr > b1(ErrorOr >(0)); - b1 = ErrorOr >(0); -#endif + ErrorOr > b1(ErrorOr >(nullptr)); + b1 = ErrorOr >(nullptr); } } // end anon namespace -- cgit v1.2.3