diff --git a/mcrouter/test/cpp_unit_tests/McrouterClientUsage.cpp b/mcrouter/test/cpp_unit_tests/McrouterClientUsage.cpp index c35aabae4..e61b877d1 100644 --- a/mcrouter/test/cpp_unit_tests/McrouterClientUsage.cpp +++ b/mcrouter/test/cpp_unit_tests/McrouterClientUsage.cpp @@ -5,11 +5,13 @@ * LICENSE file in the root directory of this source tree. */ +#include #include #include #include #include +#include #include #include @@ -300,9 +302,13 @@ TEST(CarbonRouterClient, basicUsageRemoteThreadClientThreadAffinityMulti) { requests.end(), [&baton, &replyCount, &requests]( const McGetRequest&, McGetReply&& reply) { - EXPECT_TRUE( - *reply.result_ref() == carbon::Result::CONNECT_ERROR || - *reply.result_ref() == carbon::Result::TKO); + constexpr std::array possibleResults{ + carbon::Result::CONNECT_TIMEOUT, + carbon::Result::CONNECT_ERROR, + carbon::Result::TKO}; + + EXPECT_THAT(possibleResults, testing::Contains(*reply.result_ref())); + if (++replyCount == requests.size()) { baton.post(); } diff --git a/mcrouter/test/test_mcrouter_serialized.py b/mcrouter/test/test_mcrouter_serialized.py index 09f2aab77..5b7f017c6 100644 --- a/mcrouter/test/test_mcrouter_serialized.py +++ b/mcrouter/test/test_mcrouter_serialized.py @@ -257,7 +257,7 @@ def test_failover_limit(self): # now every 5th request should succeed for _ in range(10): for _ in range(4): - self.assertIsNone(mcr.get("key")) + self.assertIn("SERVER_ERROR", mcr.get("key")) self.assertEqual(mcr.get("key"), "value.gut") @@ -284,7 +284,7 @@ def test_failover_limit(self): # now every 5th request should succeed for _ in range(10): for _ in range(4): - self.assertIsNone(mcr.get("key")) + self.assertIn("SERVER_ERROR", mcr.get("key")) self.assertEqual(mcr.get("key"), "value.gut") @@ -314,7 +314,7 @@ def test_failover_limit(self): # all subsequest requests would fail until timeouts become # as TKOs for _ in range(18): - self.assertIsNone(mcr.get("key")) + self.assertIn("SERVER_ERROR", mcr.get("key")) # From here it should behave like the testcase above because # all destinations are declared TKO and ratelimiting is not @@ -322,7 +322,7 @@ def test_failover_limit(self): for _ in range(10): self.assertEqual(mcr.get("key"), "value.gut") for _ in range(4): - self.assertIsNone(mcr.get("key")) + self.assertIn("SERVER_ERROR", mcr.get("key")) class TestFailoverWithLimitWithTKOAndErrors(McrouterTestCase): @@ -346,9 +346,9 @@ def test_failover_limit(self): # operations would succeed before rate limiting kicks in) for _ in range(4): self.assertEqual(mcr.get("key"), "value.gut") - self.assertIsNone(mcr.get("key")) + self.assertIn("SERVER_ERROR", mcr.get("key")) # All dests are TKO now, so now every 5th request should succeed for _ in range(10): self.assertEqual(mcr.get("key"), "value.gut") for _ in range(4): - self.assertIsNone(mcr.get("key")) + self.assertIn("SERVER_ERROR", mcr.get("key")) diff --git a/mcrouter/test/test_mcrouter_states.py b/mcrouter/test/test_mcrouter_states.py index 544bcdcce..8e4869db9 100644 --- a/mcrouter/test/test_mcrouter_states.py +++ b/mcrouter/test/test_mcrouter_states.py @@ -61,8 +61,8 @@ def check_invariant(): # down aka hard tko self.mc.terminate() - self.assertEqual(mcr.get("key"), None) - self.assertEqual(c2.get("key"), None) + self.assertIn("SERVER_ERROR", mcr.get("key")) + self.assertIn("SERVER_ERROR", c2.get("key")) stat = mcr.stats() self.assertEqual(stat["num_servers_up"], "0") self.assertEqual(stat["num_servers_down"], "2")