From d85c547424cbc10bd0a9bc23b0ce285e20de1e23 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Sun, 26 Jan 2025 20:09:42 -0800 Subject: [PATCH] x --- test/core/end2end/end2end_tests.h | 9 +- test/core/end2end/grpc_core_end2end_test.bzl | 134 ++++++++++--------- third_party/BUILD | 6 + 3 files changed, 83 insertions(+), 66 deletions(-) diff --git a/test/core/end2end/end2end_tests.h b/test/core/end2end/end2end_tests.h index e007fd6576415..b31ccf85b996c 100644 --- a/test/core/end2end/end2end_tests.h +++ b/test/core/end2end/end2end_tests.h @@ -671,9 +671,9 @@ DECLARE_SUITE(ProxyAuthTests); ::fuzztest::Arbitrary()); #endif -#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) || \ + defined(GRPC_END2END_TEST_NO_GTEST) #define CORE_END2END_TEST_P(suite, name) -#define CORE_END2END_INSTANTIATE_TEST_SUITE_P(suite) #else #define CORE_END2END_TEST_P(suite, name) \ TEST_P(suite, name) { \ @@ -683,6 +683,11 @@ DECLARE_SUITE(ProxyAuthTests); } \ CoreEnd2endTest_##suite##_##name(GetParam(), nullptr).RunTest(); \ } +#endif + +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +#define CORE_END2END_INSTANTIATE_TEST_SUITE_P(suite) +#else #define CORE_END2END_INSTANTIATE_TEST_SUITE_P(suite) \ INSTANTIATE_TEST_SUITE_P(, suite, \ ::testing::ValuesIn(suite::AllSuiteConfigs(false)), \ diff --git a/test/core/end2end/grpc_core_end2end_test.bzl b/test/core/end2end/grpc_core_end2end_test.bzl index 43ec2b1f27651..d8d47106a7468 100644 --- a/test/core/end2end/grpc_core_end2end_test.bzl +++ b/test/core/end2end/grpc_core_end2end_test.bzl @@ -17,20 +17,62 @@ Generate one e2e test & associated fuzzer """ load("//bazel:grpc_build_system.bzl", "grpc_cc_test") +load( + "//test/core/test_util:grpc_fuzzer.bzl", + "grpc_fuzz_test", +) -END2END_TEST_DATA = [ +_DATA = [ "//src/core/tsi/test_creds:ca.pem", "//src/core/tsi/test_creds:server1.key", "//src/core/tsi/test_creds:server1.pem", ] -def if_fuzztest_supported(true_value, false_value): - return select({ - "//:windows": false_value, - "//:windows_msvc": false_value, - "//:windows_clang": false_value, - "//conditions:default": true_value, - }) +_DEPS = [ + "cq_verifier", + "end2end_test_lib", + "http_proxy", + "proxy", + "//:channel_stack_builder", + "//:config", + "//:config_vars", + "//:debug_location", + "//:exec_ctx", + "//:gpr", + "//:grpc_authorization_provider", + "//:grpc_public_hdrs", + "//:grpc_security_base", + "//:grpc_trace", + "//:grpc_unsecure", + "//:orphanable", + "//:promise", + "//:ref_counted_ptr", + "//:stats", + "//src/core:arena_promise", + "//src/core:bitset", + "//src/core:channel_args", + "//src/core:channel_fwd", + "//src/core:channel_init", + "//src/core:channel_stack_type", + "//src/core:closure", + "//src/core:error", + "//src/core:experiments", + "//src/core:grpc_authorization_base", + "//src/core:grpc_fake_credentials", + "//src/core:iomgr_port", + "//src/core:json", + "//src/core:lb_policy", + "//src/core:lb_policy_factory", + "//src/core:no_destruct", + "//src/core:notification", + "//src/core:slice", + "//src/core:stats_data", + "//src/core:status_helper", + "//src/core:time", + "//test/core/test_util:fake_stats_plugin", + "//test/core/test_util:grpc_test_util", + "//test/core/test_util:test_lb_policies", +] def grpc_core_end2end_test(name, shard_count = 10, enable_fuzzing = True, tags = [], flaky = False): """Generate one core end2end test @@ -53,63 +95,27 @@ def grpc_core_end2end_test(name, shard_count = 10, enable_fuzzing = True, tags = external_deps = [ "absl/log:log", "gtest", + "gtest_main", ], - data = END2END_TEST_DATA, + deps = _DEPS, + data = _DATA, shard_count = shard_count, - defines = if_fuzztest_supported( - [] if enable_fuzzing else ["GRPC_END2END_TEST_NO_FUZZER"], - [], - ), - tags = tags + [ - "grpc-fuzzer", - "bazel_only", + defines = ["GRPC_END2END_TEST_NO_FUZZER"], + tags = tags, + ) + + grpc_fuzz_test( + name = name + "_fuzzer", + srcs = [ + "tests/%s.cc" % name, + ], + external_deps = [ + "absl/log:log", + "gtest", + "fuzztest", + "fuzztest_main", ], - deps = [ - "cq_verifier", - "end2end_test_lib", - "http_proxy", - "proxy", - "//:channel_stack_builder", - "//:config", - "//:config_vars", - "//:debug_location", - "//:exec_ctx", - "//:gpr", - "//:grpc_authorization_provider", - "//:grpc_public_hdrs", - "//:grpc_security_base", - "//:grpc_trace", - "//:grpc_unsecure", - "//:orphanable", - "//:promise", - "//:ref_counted_ptr", - "//:stats", - "//src/core:arena_promise", - "//src/core:bitset", - "//src/core:channel_args", - "//src/core:channel_fwd", - "//src/core:channel_init", - "//src/core:channel_stack_type", - "//src/core:closure", - "//src/core:error", - "//src/core:experiments", - "//src/core:grpc_authorization_base", - "//src/core:grpc_fake_credentials", - "//src/core:iomgr_port", - "//src/core:json", - "//src/core:lb_policy", - "//src/core:lb_policy_factory", - "//src/core:no_destruct", - "//src/core:notification", - "//src/core:slice", - "//src/core:stats_data", - "//src/core:status_helper", - "//src/core:time", - "//test/core/test_util:fake_stats_plugin", - "//test/core/test_util:grpc_test_util", - "//test/core/test_util:test_lb_policies", - ] + if_fuzztest_supported( - ["//third_party:fuzztest", "//third_party:fuzztest_main"], - [], - ), + deps = _DEPS, + data = _DATA, + defines = ["GRPC_END2END_TEST_NO_GTEST"], ) diff --git a/third_party/BUILD b/third_party/BUILD index 77cb52d0fc25d..9d0c08258746a 100644 --- a/third_party/BUILD +++ b/third_party/BUILD @@ -71,6 +71,12 @@ alias( tags = ["manual"], ) +alias( + name = "gtest_main", + actual = "@com_google_googletest//:gtest_main", + tags = ["manual"], +) + alias( name = "fuzztest", actual = "@com_google_fuzztest//fuzztest",