[llvm] [orc-rt] Use the Error matchers in SimpleNativeMemoryMapSPSCITest (PR #228796)

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 3 18:09:47 PDT 2026


https://github.com/lhames created https://github.com/llvm/llvm-project/pull/228796

Use the Error matchers introduced in 4c8a437d0487 to clean up error tests SimpleNativeMemoryMapSPSCITest.

>From 61ee0009b6fba80ecd2c67edb0c28a7a36c8f0e1 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Thu, 1 Oct 2026 16:20:54 +1000
Subject: [PATCH] [orc-rt] Use the Error matchers in
 SimpleNativeMemoryMapSPSCITest

Use the Error matchers introduced in 4c8a437d0487 to clean up error
tests SimpleNativeMemoryMapSPSCITest.
---
 .../sps/SimpleNativeMemoryMapSPSCITest.cpp    | 52 ++++++++++++++-----
 1 file changed, 39 insertions(+), 13 deletions(-)

diff --git a/orc-rt/test/unit/bedrock/sps/SimpleNativeMemoryMapSPSCITest.cpp b/orc-rt/test/unit/bedrock/sps/SimpleNativeMemoryMapSPSCITest.cpp
index 1c792e7485cc3..afe4d3638a3a5 100644
--- a/orc-rt/test/unit/bedrock/sps/SimpleNativeMemoryMapSPSCITest.cpp
+++ b/orc-rt/test/unit/bedrock/sps/SimpleNativeMemoryMapSPSCITest.cpp
@@ -21,6 +21,7 @@
 #include "BedrockTestUtils.h"
 #include "CommonTestUtils.h"
 #include "DirectCaller.h"
+#include "ErrorMatchers.h"
 #include "gtest/gtest.h"
 
 using namespace orc_rt;
@@ -119,7 +120,9 @@ class SimpleNativeMemoryMapSPSCITest : public ::testing::Test {
   void SetUp() override {
     S = std::make_unique<Session>(mockExecutorProcessInfo(), noDispatch,
                                   noErrors);
-    SNMM = cantFail(SimpleNativeMemoryMap::Create(*S, CI));
+    auto SNMMOrErr = SimpleNativeMemoryMap::Create(*S, CI);
+    ASSERT_THAT_EXPECTED(SNMMOrErr, Succeeded());
+    SNMM = std::move(*SNMMOrErr);
   }
 
   void TearDown() override {
@@ -183,17 +186,25 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, Registration) {
 TEST_F(SimpleNativeMemoryMapSPSCITest, ReserveAndRelease) {
   std::future<Expected<Expected<void *>>> ReserveAddr;
   spsReserve(waitFor(ReserveAddr), 1024 * 1024 * 1024);
-  auto *Addr = cantFail(cantFail(ReserveAddr.get()));
+  auto AddrOrErr = ReserveAddr.get();
+  ASSERT_THAT_EXPECTED(AddrOrErr, Succeeded());
+  ASSERT_THAT_EXPECTED(*AddrOrErr, Succeeded());
+  void *Addr = **AddrOrErr;
 
   std::future<Expected<Error>> ReleaseResult;
   spsReleaseMultiple(waitFor(ReleaseResult), {&Addr, 1});
-  cantFail(cantFail(ReleaseResult.get()));
+  auto ReleaseErr = ReleaseResult.get();
+  ASSERT_THAT_EXPECTED(ReleaseErr, Succeeded());
+  ASSERT_THAT_ERROR(std::move(*ReleaseErr), Succeeded());
 }
 
 TEST_F(SimpleNativeMemoryMapSPSCITest, FullPipelineForOneRWSegment) {
   std::future<Expected<Expected<void *>>> ReserveAddr;
   spsReserve(waitFor(ReserveAddr), 1024 * 1024 * 1024);
-  void *Addr = cantFail(cantFail(ReserveAddr.get()));
+  auto AddrOrErr = ReserveAddr.get();
+  ASSERT_THAT_EXPECTED(AddrOrErr, Succeeded());
+  ASSERT_THAT_EXPECTED(*AddrOrErr, Succeeded());
+  void *Addr = **AddrOrErr;
 
   std::future<Expected<Expected<void *>>> InitializeKey;
   TestSNMMInitializeRequest IR;
@@ -232,7 +243,10 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, FullPipelineForOneRWSegment) {
        {}});
 
   spsInitialize(waitFor(InitializeKey), std::move(IR));
-  void *InitializeKeyAddr = cantFail(cantFail(InitializeKey.get()));
+  auto InitializeKeyAddrOrErr = InitializeKey.get();
+  ASSERT_THAT_EXPECTED(InitializeKeyAddrOrErr, Succeeded());
+  ASSERT_THAT_EXPECTED(*InitializeKeyAddrOrErr, Succeeded());
+  void *InitializeKeyAddr = **InitializeKeyAddrOrErr;
 
   EXPECT_EQ(SentinelValue1, 42U);
   EXPECT_EQ(SentinelValue2, 0U);
@@ -240,7 +254,9 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, FullPipelineForOneRWSegment) {
 
   std::future<Expected<Error>> DeallocResult;
   spsDeinitializeMultiple(waitFor(DeallocResult), {&InitializeKeyAddr, 1});
-  cantFail(cantFail(DeallocResult.get()));
+  auto DeallocErr = DeallocResult.get();
+  ASSERT_THAT_EXPECTED(DeallocErr, Succeeded());
+  ASSERT_THAT_ERROR(std::move(*DeallocErr), Succeeded());
 
   EXPECT_EQ(SentinelValue1, 42U);
   EXPECT_EQ(SentinelValue2, 42U);
@@ -248,17 +264,21 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, FullPipelineForOneRWSegment) {
 
   std::future<Expected<Error>> ReleaseResult;
   spsReleaseMultiple(waitFor(ReleaseResult), {&Addr, 1});
-  cantFail(cantFail(ReleaseResult.get()));
+  auto ReleaseErr = ReleaseResult.get();
+  ASSERT_THAT_EXPECTED(ReleaseErr, Succeeded());
+  ASSERT_THAT_ERROR(std::move(*ReleaseErr), Succeeded());
 }
 
 TEST_F(SimpleNativeMemoryMapSPSCITest, ReserveInitializeShutdown) {
   std::future<Expected<Expected<void *>>> ReserveAddr;
   spsReserve(waitFor(ReserveAddr), 1024 * 1024 * 1024);
-  void *Addr = cantFail(cantFail(ReserveAddr.get()));
+  auto Addr = ReserveAddr.get();
+  ASSERT_THAT_EXPECTED(Addr, Succeeded());
+  ASSERT_THAT_EXPECTED(*Addr, Succeeded());
 
   std::future<Expected<Expected<void *>>> InitializeKey;
   TestSNMMInitializeRequest IR;
-  char *InitializeBase = reinterpret_cast<char *>(Addr) + 64 * 1024;
+  char *InitializeBase = reinterpret_cast<char *>(**Addr) + 64 * 1024;
   uint64_t SentinelValue = 0;
 
   IR.Segments.push_back(
@@ -272,7 +292,9 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, ReserveInitializeShutdown) {
            read_value_sps_allocaction, ExecutorAddr::fromPtr(&SentinelValue),
            ExecutorAddr::fromPtr(InitializeBase))});
   spsInitialize(waitFor(InitializeKey), std::move(IR));
-  cantFail(cantFail(InitializeKey.get()));
+  auto InitializeKeyAddrOrErr = InitializeKey.get();
+  ASSERT_THAT_EXPECTED(InitializeKeyAddrOrErr, Succeeded());
+  ASSERT_THAT_EXPECTED(*InitializeKeyAddrOrErr, Succeeded());
 
   EXPECT_EQ(SentinelValue, 0U);
 
@@ -287,11 +309,13 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, ReserveInitializeShutdown) {
 TEST_F(SimpleNativeMemoryMapSPSCITest, ReserveInitializeDetachShutdown) {
   std::future<Expected<Expected<void *>>> ReserveAddr;
   spsReserve(waitFor(ReserveAddr), 1024 * 1024 * 1024);
-  void *Addr = cantFail(cantFail(ReserveAddr.get()));
+  auto Addr = ReserveAddr.get();
+  ASSERT_THAT_EXPECTED(Addr, Succeeded());
+  ASSERT_THAT_EXPECTED(*Addr, Succeeded());
 
   std::future<Expected<Expected<void *>>> InitializeKey;
   TestSNMMInitializeRequest IR;
-  char *InitializeBase = reinterpret_cast<char *>(Addr) + 64 * 1024;
+  char *InitializeBase = reinterpret_cast<char *>(**Addr) + 64 * 1024;
   uint64_t SentinelValue = 0;
 
   IR.Segments.push_back(
@@ -305,7 +329,9 @@ TEST_F(SimpleNativeMemoryMapSPSCITest, ReserveInitializeDetachShutdown) {
            read_value_sps_allocaction, ExecutorAddr::fromPtr(&SentinelValue),
            ExecutorAddr::fromPtr(InitializeBase))});
   spsInitialize(waitFor(InitializeKey), std::move(IR));
-  cantFail(cantFail(InitializeKey.get()));
+  auto InitializeKeyAddrOrErr = InitializeKey.get();
+  ASSERT_THAT_EXPECTED(InitializeKeyAddrOrErr, Succeeded());
+  ASSERT_THAT_EXPECTED(*InitializeKeyAddrOrErr, Succeeded());
 
   EXPECT_EQ(SentinelValue, 0U);
 



More information about the llvm-commits mailing list