mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-25 06:05:53 +00:00
Fix unstable test (#1089)
This commit is contained in:
@@ -100,13 +100,8 @@ protected:
|
|||||||
|
|
||||||
TEST_F(SubscriptionManagerTest, MultipleThreadCtx)
|
TEST_F(SubscriptionManagerTest, MultipleThreadCtx)
|
||||||
{
|
{
|
||||||
std::optional<boost::asio::io_context::work> work_;
|
|
||||||
work_.emplace(ctx); // guard the context
|
|
||||||
|
|
||||||
std::vector<std::thread> workers;
|
std::vector<std::thread> workers;
|
||||||
workers.reserve(2);
|
workers.reserve(2);
|
||||||
for (int i = 0; i < 2; ++i)
|
|
||||||
workers.emplace_back([this]() { ctx.run(); });
|
|
||||||
|
|
||||||
SubscriptionManagerPtr->subManifest(session);
|
SubscriptionManagerPtr->subManifest(session);
|
||||||
SubscriptionManagerPtr->subValidation(session);
|
SubscriptionManagerPtr->subValidation(session);
|
||||||
@@ -114,21 +109,20 @@ TEST_F(SubscriptionManagerTest, MultipleThreadCtx)
|
|||||||
SubscriptionManagerPtr->forwardManifest(json::parse(R"({"manifest":"test"})").get_object());
|
SubscriptionManagerPtr->forwardManifest(json::parse(R"({"manifest":"test"})").get_object());
|
||||||
SubscriptionManagerPtr->forwardValidation(json::parse(R"({"validation":"test"})").get_object());
|
SubscriptionManagerPtr->forwardValidation(json::parse(R"({"validation":"test"})").get_object());
|
||||||
|
|
||||||
auto retry = 5;
|
for (int i = 0; i < 2; ++i)
|
||||||
while (--retry != 0) {
|
workers.emplace_back([this]() { ctx.run(); });
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
|
||||||
|
|
||||||
if (receivedFeedMessage() == R"({"manifest":"test"}{"validation":"test"})" ||
|
|
||||||
receivedFeedMessage() == R"({"validation":"test"}{"manifest":"test"})")
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
EXPECT_TRUE(retry != 0) << "receivedFeedMessage() = " << receivedFeedMessage();
|
|
||||||
|
|
||||||
session.reset();
|
|
||||||
work_.reset();
|
|
||||||
|
|
||||||
|
// wait for all jobs in ctx to finish
|
||||||
for (auto& worker : workers)
|
for (auto& worker : workers)
|
||||||
worker.join();
|
worker.join();
|
||||||
|
|
||||||
|
EXPECT_TRUE(
|
||||||
|
receivedFeedMessage() == R"({"manifest":"test"}{"validation":"test"})" ||
|
||||||
|
receivedFeedMessage() == R"({"validation":"test"}{"manifest":"test"})"
|
||||||
|
) << "receivedFeedMessage() = "
|
||||||
|
<< receivedFeedMessage();
|
||||||
|
|
||||||
|
session.reset();
|
||||||
SubscriptionManagerPtr.reset();
|
SubscriptionManagerPtr.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user