[PATCH] D105014: added some example code for llvm::Expected<T>

Christian Kühnel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 30 04:58:21 PDT 2021


kuhnel updated this revision to Diff 355508.
kuhnel added a comment.

fixed typo


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105014/new/

https://reviews.llvm.org/D105014

Files:
  llvm/include/llvm/Testing/Support/Error.h


Index: llvm/include/llvm/Testing/Support/Error.h
===================================================================
--- llvm/include/llvm/Testing/Support/Error.h
+++ llvm/include/llvm/Testing/Support/Error.h
@@ -165,26 +165,24 @@
 #define ASSERT_THAT_ERROR(Err, Matcher)                                        \
   ASSERT_THAT(llvm::detail::TakeError(Err), Matcher)
 
-/// Helper marcro for checking the result of an 'Expected<T>'
+/// Helper macro for checking the result of an 'Expected<T>'
 ///
 ///   @code{.cpp}
 ///     // function to be tested
 ///     Expected<int> myDivide(int A, int B);
 ///
 ///     TEST(myDivideTests, GoodAndBad) {
-///       // test the good care
-///       auto D1 = myDivide(10, 5);
-///       // ensure the Error gets consumed in case the function fails by
-///       // calling 'toString()'. This also helps in debugging failing tests.
-///       EXPECT_THAT_EXPECTED(D1, Succeeded()) << toString(D1.takeError()) <<
-///         "\n";
-///       EXPECT_THAT(*D1, Eq(2));
+///       // test good case
+///       // if you only care about success or failure:
+///       EXPECT_THAT_EXPECTED(myDivide(10, 5), Succeeded());
+///       // if you also care about the value:
+///       EXPECT_THAT_EXPECTED(myDivide(10, 5), HasValue(2));
 ///
 ///       // test the error case
-///       auto D2 = myDivide(10, 0);
-///       EXPECT_THAT_EXPECTED(D2, Failed());
-///       // In the error case we need to consume the error.
-///       consumeError(D2.takeError());
+///       EXPECT_THAT_EXPECTED(myDivide(10, 0), Failed());
+///       // also check the error message
+///       EXPECT_THAT_EXPECTED(myDivide(10, 0),
+///           FailedWithMessage("B must not be zero!"));
 ///     }
 ///   @endcode
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105014.355508.patch
Type: text/x-patch
Size: 1734 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210630/1b18d399/attachment.bin>


More information about the llvm-commits mailing list