Skip to content

Commit 98c2a8e

Browse files
committed
basic test coverage
Signed-off-by: jukie <10012479+Jukie@users.noreply.github.com>
1 parent e39d962 commit 98c2a8e

3 files changed

Lines changed: 70 additions & 1 deletion

File tree

  • source/extensions/load_balancing_policies/load_aware_locality
  • test/extensions/load_balancing_policies/load_aware_locality

source/extensions/load_balancing_policies/load_aware_locality/config.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Upstream::ThreadAwareLoadBalancerPtr Factory::create(OptRef<const Upstream::Load
1010
const Upstream::PrioritySet&, Runtime::Loader&,
1111
Envoy::Random::RandomGenerator&, TimeSource&) {
1212
// TODO(jukie): Implement load-aware locality load balancer.
13-
PANIC("not yet implemented");
13+
return nullptr;
1414
}
1515

1616
absl::StatusOr<Upstream::LoadBalancerConfigPtr>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
load(
2+
"//bazel:envoy_build_system.bzl",
3+
"envoy_package",
4+
)
5+
load(
6+
"//test/extensions:extensions_build_system.bzl",
7+
"envoy_extension_cc_test",
8+
)
9+
10+
licenses(["notice"]) # Apache 2
11+
12+
envoy_package()
13+
14+
envoy_extension_cc_test(
15+
name = "config_test",
16+
srcs = ["config_test.cc"],
17+
extension_names = ["envoy.load_balancing_policies.load_aware_locality"],
18+
rbe_pool = "6gig",
19+
deps = [
20+
"//source/extensions/load_balancing_policies/load_aware_locality:config",
21+
"//test/mocks/server:factory_context_mocks",
22+
"//test/mocks/upstream:cluster_info_mocks",
23+
"//test/mocks/upstream:priority_set_mocks",
24+
"@envoy_api//envoy/config/core/v3:pkg_cc_proto",
25+
],
26+
)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include "envoy/config/core/v3/extension.pb.h"
2+
3+
#include "source/extensions/load_balancing_policies/load_aware_locality/config.h"
4+
5+
#include "test/mocks/server/factory_context.h"
6+
#include "test/mocks/upstream/cluster_info.h"
7+
#include "test/mocks/upstream/priority_set.h"
8+
9+
namespace Envoy {
10+
namespace Extensions {
11+
namespace LoadBalancingPolicies {
12+
namespace LoadAwareLocality {
13+
namespace {
14+
15+
TEST(LoadAwareLocalityConfigTest, CreateFactory) {
16+
NiceMock<Server::Configuration::MockServerFactoryContext> context;
17+
NiceMock<Upstream::MockClusterInfo> cluster_info;
18+
NiceMock<Upstream::MockPrioritySet> main_thread_priority_set;
19+
20+
envoy::config::core::v3::TypedExtensionConfig config;
21+
config.set_name("envoy.load_balancing_policies.load_aware_locality");
22+
LoadAwareLocalityProto config_msg;
23+
config.mutable_typed_config()->PackFrom(config_msg);
24+
25+
auto& factory = Config::Utility::getAndCheckFactory<Upstream::TypedLoadBalancerFactory>(config);
26+
EXPECT_EQ("envoy.load_balancing_policies.load_aware_locality", factory.name());
27+
28+
// loadConfig is stubbed to return nullptr for now.
29+
auto lb_config = factory.loadConfig(context, *factory.createEmptyConfigProto());
30+
EXPECT_TRUE(lb_config.ok());
31+
32+
// create is stubbed to return nullptr for now.
33+
auto thread_aware_lb =
34+
factory.create({}, cluster_info, main_thread_priority_set, context.runtime_loader_,
35+
context.api_.random_, context.time_system_);
36+
EXPECT_EQ(nullptr, thread_aware_lb);
37+
}
38+
39+
} // namespace
40+
} // namespace LoadAwareLocality
41+
} // namespace LoadBalancingPolicies
42+
} // namespace Extensions
43+
} // namespace Envoy

0 commit comments

Comments
 (0)