|
|
|
@ -3918,21 +3918,23 @@ TEST_P(LdsRdsTest, XdsRoutingWeightedCluster) { |
|
|
|
|
const int weight_25_request_count = |
|
|
|
|
backends_[2]->backend_service1()->request_count(); |
|
|
|
|
const double kErrorTolerance = 0.2; |
|
|
|
|
EXPECT_THAT(weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
// TODO: (@donnadionne) Reduce tolerance: increased the tolerance to keep the
|
|
|
|
|
// test from flaking while debugging potential root cause.
|
|
|
|
|
const double kErrorToleranceSmallLoad = 0.3; |
|
|
|
|
gpr_log(GPR_INFO, "target_75 received %d rpcs and target_25 received %d rpcs", |
|
|
|
|
weight_75_request_count, weight_25_request_count); |
|
|
|
|
EXPECT_THAT(weight_25_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(LdsRdsTest, RouteActionWeightedTargetDefaultRoute) { |
|
|
|
@ -3997,21 +3999,23 @@ TEST_P(LdsRdsTest, RouteActionWeightedTargetDefaultRoute) { |
|
|
|
|
const int weight_25_request_count = |
|
|
|
|
backends_[2]->backend_service()->request_count(); |
|
|
|
|
const double kErrorTolerance = 0.2; |
|
|
|
|
EXPECT_THAT(weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEchoRpcs * kWeight75 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEchoRpcs * kWeight75 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEchoRpcs) * |
|
|
|
|
kWeight75 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEchoRpcs) * |
|
|
|
|
kWeight75 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
// TODO: (@donnadionne) Reduce tolerance: increased the tolerance to keep the
|
|
|
|
|
// test from flaking while debugging potential root cause.
|
|
|
|
|
const double kErrorToleranceSmallLoad = 0.3; |
|
|
|
|
gpr_log(GPR_INFO, "target_75 received %d rpcs and target_25 received %d rpcs", |
|
|
|
|
weight_75_request_count, weight_25_request_count); |
|
|
|
|
EXPECT_THAT(weight_25_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEchoRpcs * kWeight25 / 100 * |
|
|
|
|
(1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(kNumEchoRpcs * kWeight25 / 100 * |
|
|
|
|
(1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(static_cast<double>(kNumEchoRpcs) * kWeight25 / |
|
|
|
|
100 * (1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEchoRpcs) * kWeight25 / |
|
|
|
|
100 * (1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateWeights) { |
|
|
|
@ -4101,21 +4105,23 @@ TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateWeights) { |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service()->request_count()); |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service1()->request_count()); |
|
|
|
|
const double kErrorTolerance = 0.2; |
|
|
|
|
EXPECT_THAT(weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
// TODO: (@donnadionne) Reduce tolerance: increased the tolerance to keep the
|
|
|
|
|
// test from flaking while debugging potential root cause.
|
|
|
|
|
const double kErrorToleranceSmallLoad = 0.3; |
|
|
|
|
gpr_log(GPR_INFO, "target_75 received %d rpcs and target_25 received %d rpcs", |
|
|
|
|
weight_75_request_count, weight_25_request_count); |
|
|
|
|
EXPECT_THAT(weight_25_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
// Change Route Configurations: same clusters different weights.
|
|
|
|
|
weighted_cluster1->mutable_weight()->set_value(kWeight50); |
|
|
|
|
weighted_cluster2->mutable_weight()->set_value(kWeight50); |
|
|
|
@ -4138,16 +4144,18 @@ TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateWeights) { |
|
|
|
|
backends_[2]->backend_service1()->request_count(); |
|
|
|
|
EXPECT_EQ(kNumEchoRpcs, backends_[3]->backend_service()->request_count()); |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service1()->request_count()); |
|
|
|
|
EXPECT_THAT(weight_50_request_count_1, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT(weight_50_request_count_2, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_50_request_count_1, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_50_request_count_2, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateClusters) { |
|
|
|
@ -4236,21 +4244,23 @@ TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateClusters) { |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service()->request_count()); |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service1()->request_count()); |
|
|
|
|
const double kErrorTolerance = 0.2; |
|
|
|
|
EXPECT_THAT(weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
// TODO: (@donnadionne) Reduce tolerance: increased the tolerance to keep the
|
|
|
|
|
// test from flaking while debugging potential root cause.
|
|
|
|
|
const double kErrorToleranceSmallLoad = 0.3; |
|
|
|
|
gpr_log(GPR_INFO, "target_75 received %d rpcs and target_25 received %d rpcs", |
|
|
|
|
weight_75_request_count, weight_25_request_count); |
|
|
|
|
EXPECT_THAT(weight_25_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
// Change Route Configurations: new set of clusters with different weights.
|
|
|
|
|
weighted_cluster1->mutable_weight()->set_value(kWeight50); |
|
|
|
|
weighted_cluster2->set_name(kNewCluster2Name); |
|
|
|
@ -4271,16 +4281,18 @@ TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateClusters) { |
|
|
|
|
backends_[2]->backend_service1()->request_count(); |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service()->request_count()); |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service1()->request_count()); |
|
|
|
|
EXPECT_THAT(weight_50_request_count_1, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT(weight_50_request_count_2, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight50 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_50_request_count_1, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_50_request_count_2, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight50 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
// Change Route Configurations.
|
|
|
|
|
weighted_cluster1->mutable_weight()->set_value(kWeight75); |
|
|
|
|
weighted_cluster2->set_name(kNewCluster3Name); |
|
|
|
@ -4299,20 +4311,22 @@ TEST_P(LdsRdsTest, XdsRoutingWeightedClusterUpdateClusters) { |
|
|
|
|
EXPECT_EQ(0, backends_[2]->backend_service1()->request_count()); |
|
|
|
|
EXPECT_EQ(0, backends_[3]->backend_service()->request_count()); |
|
|
|
|
weight_25_request_count = backends_[3]->backend_service1()->request_count(); |
|
|
|
|
EXPECT_THAT(weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight75 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
weight_75_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * |
|
|
|
|
kWeight75 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
// TODO: (@donnadionne) Reduce tolerance: increased the tolerance to keep the
|
|
|
|
|
// test from flaking while debugging potential root cause.
|
|
|
|
|
gpr_log(GPR_INFO, "target_75 received %d rpcs and target_25 received %d rpcs", |
|
|
|
|
weight_75_request_count, weight_25_request_count); |
|
|
|
|
EXPECT_THAT(weight_25_request_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(kNumEcho1Rpcs * kWeight25 / 100 * |
|
|
|
|
(1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 - kErrorToleranceSmallLoad)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumEcho1Rpcs) * kWeight25 / |
|
|
|
|
100 * (1 + kErrorToleranceSmallLoad)))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(LdsRdsTest, XdsRoutingClusterUpdateClusters) { |
|
|
|
@ -5025,14 +5039,18 @@ TEST_P(LdsRdsTest, XdsRoutingRuntimeFractionMatching) { |
|
|
|
|
const int matched_backend_count = |
|
|
|
|
backends_[1]->backend_service()->request_count(); |
|
|
|
|
const double kErrorTolerance = 0.2; |
|
|
|
|
EXPECT_THAT(default_backend_count, |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(kNumRpcs * 75 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumRpcs * 75 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT(matched_backend_count, |
|
|
|
|
::testing::AllOf( |
|
|
|
|
::testing::Ge(kNumRpcs * 25 / 100 * (1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(kNumRpcs * 25 / 100 * (1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
default_backend_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumRpcs) * 75 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumRpcs) * 75 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
matched_backend_count, |
|
|
|
|
::testing::AllOf(::testing::Ge(static_cast<double>(kNumRpcs) * 25 / 100 * |
|
|
|
|
(1 - kErrorTolerance)), |
|
|
|
|
::testing::Le(static_cast<double>(kNumRpcs) * 25 / 100 * |
|
|
|
|
(1 + kErrorTolerance)))); |
|
|
|
|
const auto& response_state = RouteConfigurationResponseState(0); |
|
|
|
|
EXPECT_EQ(response_state.state, AdsServiceImpl::ResponseState::ACKED); |
|
|
|
|
} |
|
|
|
|