[llvm] Unittest for Error forwarding, follow-up to PR #92208 (PR #92314)
Mircea Trofin via llvm-commits
llvm-commits at lists.llvm.org
Thu May 16 07:24:28 PDT 2024
https://github.com/mtrofin updated https://github.com/llvm/llvm-project/pull/92314
>From f8de7d27ee42811253c14c72071987098b65069d Mon Sep 17 00:00:00 2001
From: Mircea Trofin <mtrofin at google.com>
Date: Wed, 15 May 2024 13:41:52 -0700
Subject: [PATCH 1/2] Unittest for Error forwarding, follow-up to PR #92208
Added a unittest demonstrating Error -> Expected<T>
forwarding.
---
llvm/unittests/Support/ErrorTest.cpp | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/llvm/unittests/Support/ErrorTest.cpp b/llvm/unittests/Support/ErrorTest.cpp
index 1229282cf0def..5c0179f256d6e 100644
--- a/llvm/unittests/Support/ErrorTest.cpp
+++ b/llvm/unittests/Support/ErrorTest.cpp
@@ -1158,4 +1158,20 @@ TEST(Error, BadAllocFatalErrorHandlersInteraction) {
remove_bad_alloc_error_handler();
}
+TEST(Error, ForwardToExpected) {
+ auto ErrorReturningFct = [](bool Fail) {
+ return Fail ? make_error<StringError>(llvm::errc::invalid_argument,
+ "Some Error")
+ : Error::success();
+ };
+ auto ExpectedReturningFct = [&](bool Fail) -> Expected<int> {
+ auto Err = ErrorReturningFct(Fail);
+ if (Err)
+ return Err;
+ return 42;
+ };
+ std::optional<int> MaybeV;
+ EXPECT_THAT_ERROR(ExpectedReturningFct(true).moveInto(MaybeV), Failed());
+ EXPECT_EQ(*ExpectedReturningFct(false), 42);
+}
} // namespace
>From b97642d221617d07a58a901447e65f794ad723b8 Mon Sep 17 00:00:00 2001
From: Mircea Trofin <mtrofin at google.com>
Date: Thu, 16 May 2024 07:24:00 -0700
Subject: [PATCH 2/2] forgot to consume the success error
---
llvm/unittests/Support/ErrorTest.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/llvm/unittests/Support/ErrorTest.cpp b/llvm/unittests/Support/ErrorTest.cpp
index 5c0179f256d6e..5d866a67c0eaa 100644
--- a/llvm/unittests/Support/ErrorTest.cpp
+++ b/llvm/unittests/Support/ErrorTest.cpp
@@ -13,6 +13,7 @@
#include "llvm/Support/Errc.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Testing/Support/Error.h"
+#include "gmock/gmock.h"
#include "gtest/gtest-spi.h"
#include "gtest/gtest.h"
#include <memory>
@@ -1172,6 +1173,7 @@ TEST(Error, ForwardToExpected) {
};
std::optional<int> MaybeV;
EXPECT_THAT_ERROR(ExpectedReturningFct(true).moveInto(MaybeV), Failed());
- EXPECT_EQ(*ExpectedReturningFct(false), 42);
+ EXPECT_THAT_ERROR(ExpectedReturningFct(false).moveInto(MaybeV), Succeeded());
+ EXPECT_EQ(*MaybeV, 42);
}
} // namespace
More information about the llvm-commits
mailing list