@@ -225,154 +225,6 @@ TEST(HostUtilityTest, SelectOverrideHostTest) {
225
225
}
226
226
}
227
227
228
- TEST (HostUtilityTest, CreateOverrideHostStatusWithRuntimeFlagFlase) {
229
- TestScopedRuntime scoped_runtime;
230
- scoped_runtime.mergeValues (
231
- {{" envoy.reloadable_features.validate_detailed_override_host_statuses" , " false" }});
232
-
233
- // Deprecated status that will be removed after runtime flag is removed.
234
- static constexpr HostUtility::HostStatusSet UnhealthyStatus =
235
- 1u << static_cast <size_t >(Host::Health::Unhealthy);
236
- static constexpr HostUtility::HostStatusSet DegradedStatus =
237
- 1u << static_cast <size_t >(Host::Health::Degraded);
238
- static constexpr HostUtility::HostStatusSet HealthyStatus =
239
- 1u << static_cast <size_t >(Host::Health::Healthy);
240
-
241
- {
242
- envoy::config::cluster::v3::Cluster::CommonLbConfig lb_config;
243
- lb_config.mutable_override_host_status ()->add_statuses (
244
- ::envoy::config::core::v3::HealthStatus::UNKNOWN);
245
- lb_config.mutable_override_host_status ()->add_statuses (
246
- ::envoy::config::core::v3::HealthStatus::HEALTHY);
247
- EXPECT_EQ (HostUtility::createOverrideHostStatus (lb_config), HealthyStatus);
248
- }
249
- {
250
- envoy::config::cluster::v3::Cluster::CommonLbConfig lb_config;
251
- lb_config.mutable_override_host_status ()->add_statuses (
252
- ::envoy::config::core::v3::HealthStatus::UNHEALTHY);
253
- lb_config.mutable_override_host_status ()->add_statuses (
254
- ::envoy::config::core::v3::HealthStatus::DRAINING);
255
- lb_config.mutable_override_host_status ()->add_statuses (
256
- ::envoy::config::core::v3::HealthStatus::TIMEOUT);
257
-
258
- EXPECT_EQ (HostUtility::createOverrideHostStatus (lb_config), UnhealthyStatus);
259
- }
260
- {
261
- envoy::config::cluster::v3::Cluster::CommonLbConfig lb_config;
262
- lb_config.mutable_override_host_status ()->add_statuses (
263
- ::envoy::config::core::v3::HealthStatus::DEGRADED);
264
- EXPECT_EQ (HostUtility::createOverrideHostStatus (lb_config), DegradedStatus);
265
- }
266
- {
267
- envoy::config::cluster::v3::Cluster::CommonLbConfig lb_config;
268
- EXPECT_EQ (HostUtility::createOverrideHostStatus (lb_config), 0b110u );
269
- }
270
- {
271
- envoy::config::cluster::v3::Cluster::CommonLbConfig lb_config;
272
- lb_config.mutable_override_host_status ()->add_statuses (
273
- ::envoy::config::core::v3::HealthStatus::UNHEALTHY);
274
- lb_config.mutable_override_host_status ()->add_statuses (
275
- ::envoy::config::core::v3::HealthStatus::DRAINING);
276
- lb_config.mutable_override_host_status ()->add_statuses (
277
- ::envoy::config::core::v3::HealthStatus::TIMEOUT);
278
- lb_config.mutable_override_host_status ()->add_statuses (
279
- ::envoy::config::core::v3::HealthStatus::UNKNOWN);
280
- lb_config.mutable_override_host_status ()->add_statuses (
281
- ::envoy::config::core::v3::HealthStatus::HEALTHY);
282
-
283
- EXPECT_EQ (HostUtility::createOverrideHostStatus (lb_config), 0b101u );
284
- }
285
-
286
- {
287
- envoy::config::cluster::v3::Cluster::CommonLbConfig lb_config;
288
- lb_config.mutable_override_host_status ()->add_statuses (
289
- ::envoy::config::core::v3::HealthStatus::UNHEALTHY);
290
- lb_config.mutable_override_host_status ()->add_statuses (
291
- ::envoy::config::core::v3::HealthStatus::DRAINING);
292
- lb_config.mutable_override_host_status ()->add_statuses (
293
- ::envoy::config::core::v3::HealthStatus::TIMEOUT);
294
- lb_config.mutable_override_host_status ()->add_statuses (
295
- ::envoy::config::core::v3::HealthStatus::UNKNOWN);
296
- lb_config.mutable_override_host_status ()->add_statuses (
297
- ::envoy::config::core::v3::HealthStatus::HEALTHY);
298
- lb_config.mutable_override_host_status ()->add_statuses (
299
- ::envoy::config::core::v3::HealthStatus::DEGRADED);
300
- EXPECT_EQ (HostUtility::createOverrideHostStatus (lb_config), 0b111u );
301
- }
302
- }
303
-
304
- TEST (HostUtilityTest, SelectOverrideHostTestRuntimeFlagFlase) {
305
- TestScopedRuntime scoped_runtime;
306
- scoped_runtime.mergeValues (
307
- {{" envoy.reloadable_features.validate_detailed_override_host_statuses" , " false" }});
308
-
309
- // Deprecated status that will be removed after runtime flag is removed.
310
- static constexpr HostUtility::HostStatusSet UnhealthyStatus =
311
- 1u << static_cast <size_t >(Host::Health::Unhealthy);
312
- static constexpr HostUtility::HostStatusSet DegradedStatus =
313
- 1u << static_cast <size_t >(Host::Health::Degraded);
314
- static constexpr HostUtility::HostStatusSet HealthyStatus =
315
- 1u << static_cast <size_t >(Host::Health::Healthy);
316
-
317
- NiceMock<Upstream::MockLoadBalancerContext> context;
318
-
319
- const HostUtility::HostStatusSet all_health_statuses =
320
- UnhealthyStatus | DegradedStatus | HealthyStatus;
321
-
322
- {
323
- // No valid host map.
324
- EXPECT_EQ (nullptr , HostUtility::selectOverrideHost (nullptr , all_health_statuses, &context));
325
- }
326
- {
327
- // No valid load balancer context.
328
- auto host_map = std::make_shared<HostMap>();
329
- EXPECT_EQ (nullptr ,
330
- HostUtility::selectOverrideHost (host_map.get (), all_health_statuses, nullptr ));
331
- }
332
- {
333
- // No valid expected host.
334
- EXPECT_CALL (context, overrideHostToSelect ()).WillOnce (Return (absl::nullopt));
335
- auto host_map = std::make_shared<HostMap>();
336
- EXPECT_EQ (nullptr ,
337
- HostUtility::selectOverrideHost (host_map.get (), all_health_statuses, &context));
338
- }
339
- {
340
- // The host map does not contain the expected host.
341
- LoadBalancerContext::OverrideHost override_host{" 1.2.3.4" };
342
- EXPECT_CALL (context, overrideHostToSelect ())
343
- .WillOnce (Return (absl::make_optional (override_host)));
344
- auto host_map = std::make_shared<HostMap>();
345
- EXPECT_EQ (nullptr , HostUtility::selectOverrideHost (host_map.get (), HealthyStatus, &context));
346
- }
347
- {
348
- // The status of host is not as expected.
349
- auto mock_host = std::make_shared<NiceMock<MockHost>>();
350
- EXPECT_CALL (*mock_host, coarseHealth ()).WillOnce (Return (Host::Health::Unhealthy));
351
-
352
- LoadBalancerContext::OverrideHost override_host{" 1.2.3.4" };
353
- EXPECT_CALL (context, overrideHostToSelect ())
354
- .WillOnce (Return (absl::make_optional (override_host)));
355
-
356
- auto host_map = std::make_shared<HostMap>();
357
- host_map->insert ({" 1.2.3.4" , mock_host});
358
- EXPECT_EQ (nullptr , HostUtility::selectOverrideHost (host_map.get (), HealthyStatus, &context));
359
- }
360
- {
361
- // Get expected host.
362
- auto mock_host = std::make_shared<NiceMock<MockHost>>();
363
- EXPECT_CALL (*mock_host, coarseHealth ()).WillOnce (Return (Host::Health::Degraded));
364
-
365
- LoadBalancerContext::OverrideHost override_host{" 1.2.3.4" };
366
- EXPECT_CALL (context, overrideHostToSelect ())
367
- .WillOnce (Return (absl::make_optional (override_host)));
368
-
369
- auto host_map = std::make_shared<HostMap>();
370
- host_map->insert ({" 1.2.3.4" , mock_host});
371
- EXPECT_EQ (mock_host, HostUtility::selectOverrideHost (host_map.get (),
372
- HealthyStatus | DegradedStatus, &context));
373
- }
374
- }
375
-
376
228
} // namespace
377
229
} // namespace Upstream
378
230
} // namespace Envoy
0 commit comments