[orc-rt] Fix unittests after 53a1e056f38. (#186711)

Updates unittests to reflect Service interface changes.
This commit is contained in:
Lang Hames 2026-03-16 10:28:39 +11:00 committed by GitHub
parent 7aeb01f01f
commit b0df9a366a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 17 deletions

View File

@ -30,42 +30,40 @@ class MockService : public Service {
public:
enum class Op { Detach, Shutdown };
static Error alwaysSucceed(Op) { return Error::success(); }
static void noop(Op) {}
MockService(std::optional<size_t> &DetachOpIdx,
std::optional<size_t> &ShutdownOpIdx, size_t &OpIdx,
move_only_function<Error(Op)> GenResult = alwaysSucceed)
move_only_function<void(Op)> GenResult = noop)
: DetachOpIdx(DetachOpIdx), ShutdownOpIdx(ShutdownOpIdx), OpIdx(OpIdx),
GenResult(std::move(GenResult)) {}
void onDetach(OnCompleteFn OnComplete) override {
DetachOpIdx = OpIdx++;
OnComplete(GenResult(Op::Detach));
GenResult(Op::Detach);
OnComplete();
}
void onShutdown(OnCompleteFn OnComplete) override {
ShutdownOpIdx = OpIdx++;
OnComplete(GenResult(Op::Shutdown));
GenResult(Op::Shutdown);
OnComplete();
}
private:
std::optional<size_t> &DetachOpIdx;
std::optional<size_t> &ShutdownOpIdx;
size_t &OpIdx;
move_only_function<Error(Op)> GenResult;
move_only_function<void(Op)> GenResult;
};
class ConfigurableService : public Service {
public:
ConfigurableService(int ConstructorOption) {}
void onDetach(OnCompleteFn OnComplete) override {
OnComplete(Error::success());
}
void onDetach(OnCompleteFn OnComplete) override { OnComplete(); }
void onShutdown(OnCompleteFn OnComplete) override {
OnComplete(Error::success());
}
void onShutdown(OnCompleteFn OnComplete) override { OnComplete(); }
void doMoreConfig(int) noexcept {}
};

View File

@ -91,6 +91,12 @@ template <typename T> move_only_function<void(T)> waitFor(std::future<T> &F) {
return [P = std::move(P)](T Val) mutable { P.set_value(std::move(Val)); };
}
move_only_function<void()> waitFor(std::future<void> &F) {
std::promise<void> P;
F = P.get_future();
return [P = std::move(P)]() mutable { P.set_value(); };
}
TEST(SimpleNativeMemoryMapTest, CreateAndDestroy) {
// Test that we can create and destroy a SimpleNativeMemoryMap instance as
// expected.
@ -288,9 +294,9 @@ TEST(SimpleNativeMemoryMap, ReserveInitializeShutdown) {
EXPECT_EQ(SentinelValue, 0U);
std::future<Error> ShutdownResult;
std::future<void> ShutdownResult;
SNMM->onShutdown(waitFor(ShutdownResult));
cantFail(ShutdownResult.get());
ShutdownResult.get();
EXPECT_EQ(SentinelValue, 42);
}
@ -325,15 +331,15 @@ TEST(SimpleNativeMemoryMap, ReserveInitializeDetachShutdown) {
EXPECT_EQ(SentinelValue, 0U);
std::future<Error> DetachResult;
std::future<void> DetachResult;
SNMM->onDetach(waitFor(DetachResult));
cantFail(DetachResult.get());
DetachResult.get();
EXPECT_EQ(SentinelValue, 0);
std::future<Error> ShutdownResult;
std::future<void> ShutdownResult;
SNMM->onShutdown(waitFor(ShutdownResult));
cantFail(ShutdownResult.get());
ShutdownResult.get();
EXPECT_EQ(SentinelValue, 42);
}