Skip to content

Commit 457a732

Browse files
authored
coverage: fix some misc coverage (envoyproxy#7033)
Signed-off-by: Matt Klein <[email protected]>
1 parent cab4ce6 commit 457a732

17 files changed

+42
-31
lines changed

source/exe/process_wide.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ ProcessWide::ProcessWide() : initialization_depth_(process_wide_initialized) {
2727
#endif
2828
ares_library_init(ARES_LIB_INIT_ALL);
2929
Event::Libevent::Global::initialize();
30-
RELEASE_ASSERT(Envoy::Server::validateProtoDescriptors(), "");
30+
Envoy::Server::validateProtoDescriptors();
3131
Http::Http2::initializeNghttp2Logging();
3232
}
3333
}

source/extensions/access_loggers/http_grpc/BUILD

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ envoy_cc_library(
3636
srcs = ["grpc_access_log_proto_descriptors.cc"],
3737
hdrs = ["grpc_access_log_proto_descriptors.h"],
3838
deps = [
39+
"//source/common/common:assert_lib",
3940
"//source/common/protobuf",
4041
"@envoy_api//envoy/service/accesslog/v2:als_cc",
4142
],

source/extensions/access_loggers/http_grpc/config.cc

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ AccessLog::InstanceSharedPtr
2626
HttpGrpcAccessLogFactory::createAccessLogInstance(const Protobuf::Message& config,
2727
AccessLog::FilterPtr&& filter,
2828
Server::Configuration::FactoryContext& context) {
29+
validateProtoDescriptors();
30+
2931
const auto& proto_config = MessageUtil::downcastAndValidate<
3032
const envoy::config::accesslog::v2::HttpGrpcAccessLogConfig&>(config);
3133
std::shared_ptr<GrpcAccessLogStreamer> grpc_access_log_streamer =

source/extensions/access_loggers/http_grpc/grpc_access_log_proto_descriptors.cc

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include "envoy/service/accesslog/v2/als.pb.h"
44

5+
#include "common/common/assert.h"
56
#include "common/common/fmt.h"
67
#include "common/protobuf/protobuf.h"
78

@@ -10,10 +11,11 @@ namespace Extensions {
1011
namespace AccessLoggers {
1112
namespace HttpGrpc {
1213

13-
bool validateProtoDescriptors() {
14+
void validateProtoDescriptors() {
1415
const auto method = "envoy.service.accesslog.v2.AccessLogService.StreamAccessLogs";
1516

16-
return Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) != nullptr;
17+
RELEASE_ASSERT(Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) != nullptr,
18+
"");
1719
};
1820
} // namespace HttpGrpc
1921
} // namespace AccessLoggers

source/extensions/access_loggers/http_grpc/grpc_access_log_proto_descriptors.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace HttpGrpc {
77

88
// This function validates that the method descriptors for gRPC services and type descriptors that
99
// are referenced in Any messages are available in the descriptor pool.
10-
bool validateProtoDescriptors();
10+
void validateProtoDescriptors();
1111
} // namespace HttpGrpc
1212
} // namespace AccessLoggers
1313
} // namespace Extensions

source/extensions/filters/network/ratelimit/config.cc

-8
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,6 @@ Network::FilterFactoryCb RateLimitConfigFactory::createFilterFactoryFromProtoTyp
3939
};
4040
}
4141

42-
Network::FilterFactoryCb
43-
RateLimitConfigFactory::createFilterFactory(const Json::Object& json_config,
44-
Server::Configuration::FactoryContext& context) {
45-
envoy::config::filter::network::rate_limit::v2::RateLimit proto_config;
46-
Envoy::Config::FilterJson::translateTcpRateLimitFilter(json_config, proto_config);
47-
return createFilterFactoryFromProtoTyped(proto_config, context);
48-
}
49-
5042
/**
5143
* Static registration for the rate limit filter. @see RegisterFactory.
5244
*/

source/extensions/filters/network/ratelimit/config.h

-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ class RateLimitConfigFactory
2020
public:
2121
RateLimitConfigFactory() : FactoryBase(NetworkFilterNames::get().RateLimit) {}
2222

23-
// NamedNetworkFilterConfigFactory
24-
Network::FilterFactoryCb
25-
createFilterFactory(const Json::Object& json_config,
26-
Server::Configuration::FactoryContext& context) override;
27-
2823
private:
2924
Network::FilterFactoryCb createFilterFactoryFromProtoTyped(
3025
const envoy::config::filter::network::rate_limit::v2::RateLimit& proto_config,

source/extensions/stat_sinks/metrics_service/BUILD

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ envoy_cc_library(
3030
srcs = ["grpc_metrics_proto_descriptors.cc"],
3131
hdrs = ["grpc_metrics_proto_descriptors.h"],
3232
deps = [
33+
"//source/common/common:assert_lib",
3334
"//source/common/protobuf",
3435
"@envoy_api//envoy/service/metrics/v2:metrics_service_cc",
3536
],

source/extensions/stat_sinks/metrics_service/config.cc

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ namespace MetricsService {
1919

2020
Stats::SinkPtr MetricsServiceSinkFactory::createStatsSink(const Protobuf::Message& config,
2121
Server::Instance& server) {
22+
validateProtoDescriptors();
23+
2224
const auto& sink_config =
2325
MessageUtil::downcastAndValidate<const envoy::config::metrics::v2::MetricsServiceConfig&>(
2426
config);

source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include "envoy/service/metrics/v2/metrics_service.pb.h"
44

5+
#include "common/common/assert.h"
56
#include "common/common/fmt.h"
67
#include "common/protobuf/protobuf.h"
78

@@ -10,10 +11,11 @@ namespace Extensions {
1011
namespace StatSinks {
1112
namespace MetricsService {
1213

13-
bool validateProtoDescriptors() {
14+
void validateProtoDescriptors() {
1415
const auto method = "envoy.service.metrics.v2.MetricsService.StreamMetrics";
1516

16-
return Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) != nullptr;
17+
RELEASE_ASSERT(Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) != nullptr,
18+
"");
1719
};
1820
} // namespace MetricsService
1921
} // namespace StatSinks

source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace MetricsService {
77

88
// This function validates that the method descriptors for gRPC services and type descriptors that
99
// are referenced in Any messages are available in the descriptor pool.
10-
bool validateProtoDescriptors();
10+
void validateProtoDescriptors();
1111
} // namespace MetricsService
1212
} // namespace StatSinks
1313
} // namespace Extensions

source/server/BUILD

+1
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ envoy_cc_library(
285285
srcs = ["proto_descriptors.cc"],
286286
hdrs = ["proto_descriptors.h"],
287287
deps = [
288+
"//source/common/common:assert_lib",
288289
"//source/common/config:protobuf_link_hacks",
289290
"//source/common/protobuf",
290291
"@envoy_api//envoy/api/v2:cds_cc",

source/server/proto_descriptors.cc

+6-8
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
#include "envoy/service/discovery/v2/hds.pb.h"
99
#include "envoy/service/ratelimit/v2/rls.pb.h"
1010

11+
#include "common/common/assert.h"
1112
#include "common/common/fmt.h"
1213
#include "common/config/protobuf_link_hacks.h"
1314
#include "common/protobuf/protobuf.h"
1415

1516
namespace Envoy {
1617
namespace Server {
1718

18-
bool validateProtoDescriptors() {
19+
void validateProtoDescriptors() {
1920
const auto methods = {
2021
"envoy.api.v2.ClusterDiscoveryService.FetchClusters",
2122
"envoy.api.v2.ClusterDiscoveryService.StreamClusters",
@@ -32,9 +33,8 @@ bool validateProtoDescriptors() {
3233
};
3334

3435
for (const auto& method : methods) {
35-
if (Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) == nullptr) {
36-
return false;
37-
}
36+
RELEASE_ASSERT(Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) != nullptr,
37+
"");
3838
}
3939

4040
const auto types = {
@@ -45,11 +45,9 @@ bool validateProtoDescriptors() {
4545
};
4646

4747
for (const auto& type : types) {
48-
if (Protobuf::DescriptorPool::generated_pool()->FindMessageTypeByName(type) == nullptr) {
49-
return false;
50-
}
48+
RELEASE_ASSERT(
49+
Protobuf::DescriptorPool::generated_pool()->FindMessageTypeByName(type) != nullptr, "");
5150
}
52-
return true;
5351
};
5452
} // namespace Server
5553
} // namespace Envoy

source/server/proto_descriptors.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ namespace Server {
55

66
// This function validates that the method descriptors for gRPC services and type descriptors that
77
// are referenced in Any messages are available in the descriptor pool.
8-
bool validateProtoDescriptors();
8+
void validateProtoDescriptors();
99
} // namespace Server
1010
} // namespace Envoy

test/extensions/filters/http/header_to_metadata/header_to_metadata_filter_test.cc

+10
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ TEST_F(HeaderToMetadataTest, BasicRequestTest) {
7979
EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(req_info_));
8080
EXPECT_CALL(req_info_, setDynamicMetadata("envoy.lb", MapEq(expected)));
8181
EXPECT_EQ(Http::FilterHeadersStatus::Continue, filter_->decodeHeaders(incoming_headers, false));
82+
Buffer::OwnedImpl data("data");
83+
EXPECT_EQ(Http::FilterDataStatus::Continue, filter_->decodeData(data, false));
84+
EXPECT_EQ(Http::FilterTrailersStatus::Continue, filter_->decodeTrailers(incoming_headers));
85+
filter_->onDestroy();
8286
}
8387

8488
/**
@@ -114,10 +118,16 @@ TEST_F(HeaderToMetadataTest, HeaderRemovedTest) {
114118
EXPECT_CALL(encoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(req_info_));
115119
EXPECT_CALL(req_info_,
116120
setDynamicMetadata("envoy.filters.http.header_to_metadata", MapEq(expected)));
121+
Http::TestHeaderMapImpl continue_response{{":status", "100"}};
122+
EXPECT_EQ(Http::FilterHeadersStatus::Continue,
123+
filter_->encode100ContinueHeaders(continue_response));
117124
EXPECT_EQ(Http::FilterHeadersStatus::Continue, filter_->encodeHeaders(incoming_headers, false));
118125
EXPECT_EQ(empty_headers, incoming_headers);
119126
Http::MetadataMap metadata_map{{"metadata", "metadata"}};
120127
EXPECT_EQ(Http::FilterMetadataStatus::Continue, filter_->encodeMetadata(metadata_map));
128+
Buffer::OwnedImpl data("data");
129+
EXPECT_EQ(Http::FilterDataStatus::Continue, filter_->encodeData(data, false));
130+
EXPECT_EQ(Http::FilterTrailersStatus::Continue, filter_->encodeTrailers(incoming_headers));
121131
}
122132

123133
/**

test/extensions/filters/http/health_check/health_check_test.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,9 @@ TEST_F(HealthCheckFilterPassThroughTest, OkWithContinue) {
261261

262262
// Goodness only knows why there would be a 100-Continue response in health
263263
// checks but we can still verify Envoy handles it.
264-
Http::TestHeaderMapImpl continue_respnose{{":status", "100"}};
264+
Http::TestHeaderMapImpl continue_response{{":status", "100"}};
265265
EXPECT_EQ(Http::FilterHeadersStatus::Continue,
266-
filter_->encode100ContinueHeaders(continue_respnose));
266+
filter_->encode100ContinueHeaders(continue_response));
267267
Http::MetadataMap metadata_map{{"metadata", "metadata"}};
268268
EXPECT_EQ(Http::FilterMetadataStatus::Continue, filter_->encodeMetadata(metadata_map));
269269
Http::TestHeaderMapImpl service_hc_respnose{{":status", "200"}};

test/server/options_impl_test.cc

+5
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,11 @@ TEST_F(OptionsImplTest, SetBothConcurrencyAndCpuset) {
303303
createOptionsImpl("envoy -c hello --concurrency 42 --cpuset-threads"));
304304
}
305305

306+
TEST_F(OptionsImplTest, SetCpusetOnly) {
307+
std::unique_ptr<OptionsImpl> options = createOptionsImpl("envoy -c hello --cpuset-threads");
308+
EXPECT_NE(options->concurrency(), 0);
309+
}
310+
306311
#if defined(__linux__)
307312

308313
using testing::DoAll;

0 commit comments

Comments
 (0)