diff --git a/test/common/common/BUILD b/test/common/common/BUILD index 3f8a3fb0c839..8dbb40bca2f3 100644 --- a/test/common/common/BUILD +++ b/test/common/common/BUILD @@ -2,9 +2,10 @@ licenses(["notice"]) # Apache 2 load( "//bazel:envoy_build_system.bzl", + "envoy_benchmark_test", + "envoy_cc_benchmark_binary", "envoy_cc_fuzz_test", "envoy_cc_test", - "envoy_cc_test_binary", "envoy_package", ) @@ -209,7 +210,7 @@ envoy_cc_test( deps = ["//source/common/common:callback_impl_lib"], ) -envoy_cc_test_binary( +envoy_cc_benchmark_binary( name = "utility_speed_test", srcs = ["utility_speed_test.cc"], external_deps = [ @@ -222,6 +223,11 @@ envoy_cc_test_binary( ], ) +envoy_benchmark_test( + name = "utility_speed_test_benchmark_test", + benchmark_binary = "utility_speed_test", +) + envoy_cc_test( name = "lock_guard_test", srcs = ["lock_guard_test.cc"], diff --git a/test/common/common/utility_speed_test.cc b/test/common/common/utility_speed_test.cc index a59d8994c9ac..c95af89c3a3c 100644 --- a/test/common/common/utility_speed_test.cc +++ b/test/common/common/utility_speed_test.cc @@ -246,8 +246,8 @@ static void BM_IntervalSetInsert17(benchmark::State& state) { interval_set.insert(3, 6); interval_set.insert(3, 20); interval_set.insert(3, 22); - interval_set.insert(-2, 23); - interval_set.insert(-3, 24); + interval_set.insert(23, 9223372036854775806UL); + interval_set.insert(24, 9223372036854775805UL); } } BENCHMARK(BM_IntervalSetInsert17); @@ -275,12 +275,3 @@ static void BM_IntervalSet50ToVector(benchmark::State& state) { } BENCHMARK(BM_IntervalSet50ToVector); } // namespace Envoy - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -} diff --git a/test/common/http/BUILD b/test/common/http/BUILD index 593d22653e68..ca5e08a6d29d 100644 --- a/test/common/http/BUILD +++ b/test/common/http/BUILD @@ -2,9 +2,10 @@ licenses(["notice"]) # Apache 2 load( "//bazel:envoy_build_system.bzl", + "envoy_benchmark_test", + "envoy_cc_benchmark_binary", "envoy_cc_fuzz_test", "envoy_cc_test", - "envoy_cc_test_binary", "envoy_cc_test_library", "envoy_package", "envoy_proto_library", @@ -106,7 +107,7 @@ envoy_cc_test( ], ) -envoy_cc_test_binary( +envoy_cc_benchmark_binary( name = "codes_speed_test", srcs = ["codes_speed_test.cc"], external_deps = [ @@ -119,6 +120,11 @@ envoy_cc_test_binary( ], ) +envoy_benchmark_test( + name = "codes_speed_test_benchmark_test", + benchmark_binary = "codes_speed_test", +) + envoy_cc_test_library( name = "common_lib", srcs = ["common.cc"], @@ -259,7 +265,7 @@ envoy_cc_test( ], ) -envoy_cc_test_binary( +envoy_cc_benchmark_binary( name = "header_map_impl_speed_test", srcs = ["header_map_impl_speed_test.cc"], external_deps = [ @@ -270,6 +276,11 @@ envoy_cc_test_binary( ], ) +envoy_benchmark_test( + name = "header_map_impl_speed_test_benchmark_test", + benchmark_binary = "header_map_impl_speed_test", +) + envoy_proto_library( name = "header_map_impl_fuzz_proto", srcs = ["header_map_impl_fuzz.proto"], diff --git a/test/common/http/codes_speed_test.cc b/test/common/http/codes_speed_test.cc index b49b86cf0fdf..0aa91791a20f 100644 --- a/test/common/http/codes_speed_test.cc +++ b/test/common/http/codes_speed_test.cc @@ -111,13 +111,3 @@ static void BM_ResponseTimingRealSymtab(benchmark::State& state) { } } BENCHMARK(BM_ResponseTimingRealSymtab); - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -} diff --git a/test/common/http/header_map_impl_speed_test.cc b/test/common/http/header_map_impl_speed_test.cc index 79576558e93b..eb0f5e980a65 100644 --- a/test/common/http/header_map_impl_speed_test.cc +++ b/test/common/http/header_map_impl_speed_test.cc @@ -222,13 +222,3 @@ BENCHMARK(HeaderMapImplPopulate); } // namespace Http } // namespace Envoy - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -} diff --git a/test/common/network/BUILD b/test/common/network/BUILD index 16186b79e3b3..6996151729c5 100644 --- a/test/common/network/BUILD +++ b/test/common/network/BUILD @@ -2,6 +2,8 @@ licenses(["notice"]) # Apache 2 load( "//bazel:envoy_build_system.bzl", + "envoy_benchmark_test", + "envoy_cc_benchmark_binary", "envoy_cc_test", "envoy_cc_test_binary", "envoy_cc_test_library", @@ -42,7 +44,7 @@ envoy_cc_test( ], ) -envoy_cc_test_binary( +envoy_cc_benchmark_binary( name = "address_impl_speed_test", srcs = ["address_impl_speed_test.cc"], external_deps = [ @@ -53,6 +55,11 @@ envoy_cc_test_binary( ], ) +envoy_benchmark_test( + name = "address_impl_speed_test_benchmark_test", + benchmark_binary = "address_impl_speed_test", +) + envoy_cc_test( name = "cidr_range_test", srcs = ["cidr_range_test.cc"], diff --git a/test/common/network/address_impl_speed_test.cc b/test/common/network/address_impl_speed_test.cc index 8694b66fb44f..2d7f61af838b 100644 --- a/test/common/network/address_impl_speed_test.cc +++ b/test/common/network/address_impl_speed_test.cc @@ -36,13 +36,3 @@ BENCHMARK(Ipv6InstanceCreate); } // namespace Address } // namespace Network } // namespace Envoy - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -} diff --git a/test/extensions/extensions_build_system.bzl b/test/extensions/extensions_build_system.bzl index 5ea4c1cfb7e0..b92680fced5a 100644 --- a/test/extensions/extensions_build_system.bzl +++ b/test/extensions/extensions_build_system.bzl @@ -1,4 +1,4 @@ -load("//bazel:envoy_build_system.bzl", "envoy_cc_mock", "envoy_cc_test", "envoy_cc_test_binary", "envoy_cc_test_library") +load("//bazel:envoy_build_system.bzl", "envoy_benchmark_test", "envoy_cc_benchmark_binary", "envoy_cc_mock", "envoy_cc_test", "envoy_cc_test_binary", "envoy_cc_test_library") load("@envoy_build_config//:extensions_build_config.bzl", "EXTENSIONS") # All extension tests should use this version of envoy_cc_test(). It allows compiling out @@ -39,3 +39,21 @@ def envoy_extension_cc_test_binary( return envoy_cc_test_binary(name, **kwargs) + +def envoy_extension_cc_benchmark_binary( + name, + extension_name, + **kwargs): + if not extension_name in EXTENSIONS: + return + + envoy_cc_benchmark_binary(name, **kwargs) + +def envoy_extension_benchmark_test( + name, + extension_name, + **kwargs): + if not extension_name in EXTENSIONS: + return + + envoy_benchmark_test(name, **kwargs) diff --git a/test/extensions/filters/listener/tls_inspector/BUILD b/test/extensions/filters/listener/tls_inspector/BUILD index 5037554848a7..8e2b7360a5ad 100644 --- a/test/extensions/filters/listener/tls_inspector/BUILD +++ b/test/extensions/filters/listener/tls_inspector/BUILD @@ -4,9 +4,13 @@ load( "//bazel:envoy_build_system.bzl", "envoy_cc_library", "envoy_cc_test", - "envoy_cc_test_binary", "envoy_package", ) +load( + "//test/extensions:extensions_build_system.bzl", + "envoy_extension_benchmark_test", + "envoy_extension_cc_benchmark_binary", +) envoy_package() @@ -24,9 +28,10 @@ envoy_cc_test( ], ) -envoy_cc_test_binary( +envoy_extension_cc_benchmark_binary( name = "tls_inspector_benchmark", srcs = ["tls_inspector_benchmark.cc"], + extension_name = "envoy.filters.listener.tls_inspector", external_deps = [ "benchmark", ], @@ -41,6 +46,12 @@ envoy_cc_test_binary( ], ) +envoy_extension_benchmark_test( + name = "tls_inspector_benchmark_test", + benchmark_binary = "tls_inspector_benchmark", + extension_name = "envoy.filters.listener.tls_inspector", +) + envoy_cc_library( name = "tls_utility_lib", srcs = ["tls_utility.cc"], diff --git a/test/extensions/filters/listener/tls_inspector/tls_inspector_benchmark.cc b/test/extensions/filters/listener/tls_inspector/tls_inspector_benchmark.cc index a4f2b416e373..7cb0915a89d0 100644 --- a/test/extensions/filters/listener/tls_inspector/tls_inspector_benchmark.cc +++ b/test/extensions/filters/listener/tls_inspector/tls_inspector_benchmark.cc @@ -81,7 +81,7 @@ static void BM_TlsInspector(benchmark::State& state) { for (auto _ : state) { Filter filter(cfg); filter.onAccept(cb); - dispatcher.file_event_callback_(Event::FileReadyType::Read); + RELEASE_ASSERT(dispatcher.file_event_callback_ == nullptr, ""); RELEASE_ASSERT(socket.detectedTransportProtocol() == "tls", ""); RELEASE_ASSERT(socket.requestedServerName() == "example.com", ""); RELEASE_ASSERT(socket.requestedApplicationProtocols().size() == 2 && @@ -99,16 +99,3 @@ BENCHMARK(BM_TlsInspector)->Unit(benchmark::kMicrosecond); } // namespace ListenerFilters } // namespace Extensions } // namespace Envoy - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - Envoy::Thread::MutexBasicLockable lock; - Envoy::Logger::Context logging_context(spdlog::level::warn, - Envoy::Logger::Logger::DEFAULT_LOG_FORMAT, lock, false); - - benchmark::Initialize(&argc, argv); - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -} diff --git a/test/extensions/filters/network/redis_proxy/BUILD b/test/extensions/filters/network/redis_proxy/BUILD index 2fd797f13308..eb74d4d17bc8 100644 --- a/test/extensions/filters/network/redis_proxy/BUILD +++ b/test/extensions/filters/network/redis_proxy/BUILD @@ -7,8 +7,9 @@ load( ) load( "//test/extensions:extensions_build_system.bzl", + "envoy_extension_benchmark_test", + "envoy_extension_cc_benchmark_binary", "envoy_extension_cc_test", - "envoy_extension_cc_test_binary", ) envoy_package() @@ -102,7 +103,7 @@ envoy_extension_cc_test( ], ) -envoy_extension_cc_test_binary( +envoy_extension_cc_benchmark_binary( name = "command_lookup_speed_test", srcs = ["command_lookup_speed_test.cc"], extension_name = "envoy.filters.network.redis_proxy", @@ -119,6 +120,12 @@ envoy_extension_cc_test_binary( ], ) +envoy_extension_benchmark_test( + name = "command_lookup_speed_test_benchmark_test", + benchmark_binary = "command_lookup_speed_test", + extension_name = "envoy.filters.network.redis_proxy", +) + envoy_extension_cc_test( name = "router_impl_test", srcs = ["router_impl_test.cc"], @@ -144,7 +151,7 @@ envoy_extension_cc_test( ], ) -envoy_extension_cc_test_binary( +envoy_extension_cc_benchmark_binary( name = "command_split_speed_test", srcs = ["command_split_speed_test.cc"], extension_name = "envoy.filters.network.redis_proxy", @@ -161,3 +168,9 @@ envoy_extension_cc_test_binary( "//test/test_common:simulated_time_system_lib", ], ) + +envoy_extension_benchmark_test( + name = "command_split_speed_test_benchmark_test", + benchmark_binary = "command_split_speed_test", + extension_name = "envoy.filters.network.redis_proxy", +) diff --git a/test/extensions/filters/network/redis_proxy/command_lookup_speed_test.cc b/test/extensions/filters/network/redis_proxy/command_lookup_speed_test.cc index 173e5efc8c2a..a6ccc4f1b59d 100644 --- a/test/extensions/filters/network/redis_proxy/command_lookup_speed_test.cc +++ b/test/extensions/filters/network/redis_proxy/command_lookup_speed_test.cc @@ -85,13 +85,3 @@ static void BM_MakeRequests(benchmark::State& state) { } } BENCHMARK(BM_MakeRequests); - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -} diff --git a/test/extensions/filters/network/redis_proxy/command_split_speed_test.cc b/test/extensions/filters/network/redis_proxy/command_split_speed_test.cc index 1ee376e32c30..794b4b8b41b4 100644 --- a/test/extensions/filters/network/redis_proxy/command_split_speed_test.cc +++ b/test/extensions/filters/network/redis_proxy/command_split_speed_test.cc @@ -49,7 +49,7 @@ class CommandSplitSpeedTest { void createShared(Common::Redis::RespValueSharedPtr request) { for (uint64_t i = 1; i < request->asArray().size(); i += 2) { auto single_set = std::make_shared( - request, Common::Redis::Utility::SetRequest::instance(), i, i + 2); + request, Common::Redis::Utility::SetRequest::instance(), i, i + 1); } } @@ -130,13 +130,3 @@ static void BM_Split_CreateVariant(benchmark::State& state) { state.counters["use_count"] = request.use_count(); } BENCHMARK(BM_Split_CreateVariant)->Ranges({{1, 100}, {64, 8 << 14}}); - -// Boilerplate main(), which discovers benchmarks in the same file and runs them. -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - - if (benchmark::ReportUnrecognizedArguments(argc, argv)) { - return 1; - } - benchmark::RunSpecifiedBenchmarks(); -}