Refactor end2end tests to exercise each EventEngine (#29202)

* Refactor end2end tests to exercise each EventEngine

* fix incorrect bazel_only exclusions

* Automated change: Fix sanity tests

* microbenchmark fix

* sanitize, fix iOS flub

* Automated change: Fix sanity tests

* iOS fix

* reviewer feedback

* first pass at excluding EventEngine test expansion

Also caught a few cases where we should not test pollers, but should
test all engines. And two cases where we likely shouldn't be testing
either product.

* end2end fuzzers to be fuzzed differently via EventEngine.

* sanitize

* reviewer feedback

* remove misleading comment

* reviewer feedback: comments

* EE test_init needs to play with our build system

* fix golden file test runner

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
pull/29267/head
AJ Heller 3 years ago committed by GitHub
parent 114e83d875
commit 18a8f6aad9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 44
      CMakeLists.txt
  2. 207
      bazel/grpc_build_system.bzl
  3. 19
      build_autogenerated.yaml
  4. 2
      gRPC-Core.podspec
  5. 2
      grpc.gyp
  6. 6
      src/objective-c/tests/CronetTests/CoreCronetEnd2EndTests.mm
  7. 3
      src/objective-c/tests/CronetTests/CronetUnitTests.mm
  8. 1
      test/core/address_utils/BUILD
  9. 2
      test/core/address_utils/parse_address_test.cc
  10. 2
      test/core/address_utils/parse_address_with_named_scope_id_test.cc
  11. 2
      test/core/address_utils/sockaddr_utils_test.cc
  12. 2
      test/core/avl/BUILD
  13. 1
      test/core/backoff/BUILD
  14. 2
      test/core/backoff/backoff_test.cc
  15. 2
      test/core/bad_client/tests/bad_streaming_id.cc
  16. 2
      test/core/bad_client/tests/badreq.cc
  17. 2
      test/core/bad_client/tests/connection_prefix.cc
  18. 2
      test/core/bad_client/tests/duplicate_header.cc
  19. 2
      test/core/bad_client/tests/head_of_line_blocking.cc
  20. 2
      test/core/bad_client/tests/headers.cc
  21. 2
      test/core/bad_client/tests/initial_settings_frame.cc
  22. 2
      test/core/bad_client/tests/large_metadata.cc
  23. 2
      test/core/bad_client/tests/out_of_bounds.cc
  24. 2
      test/core/bad_client/tests/server_registered_method.cc
  25. 2
      test/core/bad_client/tests/simple_request.cc
  26. 2
      test/core/bad_client/tests/unknown_frame.cc
  27. 2
      test/core/bad_client/tests/window_overflow.cc
  28. 2
      test/core/bad_connection/close_fd_test.cc
  29. 5
      test/core/channel/BUILD
  30. 2
      test/core/channel/channel_args_test.cc
  31. 2
      test/core/channel/channel_stack_builder_test.cc
  32. 2
      test/core/channel/channel_stack_test.cc
  33. 2
      test/core/channel/channel_trace_test.cc
  34. 2
      test/core/channel/channelz_registry_test.cc
  35. 2
      test/core/channel/channelz_test.cc
  36. 2
      test/core/channel/minimal_stack_is_minimal_test.cc
  37. 1
      test/core/client_channel/BUILD
  38. 2
      test/core/client_channel/certificate_provider_registry_test.cc
  39. 2
      test/core/client_channel/resolvers/binder_resolver_test.cc
  40. 2
      test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc
  41. 2
      test/core/client_channel/resolvers/dns_resolver_test.cc
  42. 2
      test/core/client_channel/resolvers/fake_resolver_test.cc
  43. 2
      test/core/client_channel/resolvers/google_c2p_resolver_test.cc
  44. 2
      test/core/client_channel/resolvers/sockaddr_resolver_test.cc
  45. 2
      test/core/client_channel/retry_throttle_test.cc
  46. 2
      test/core/client_channel/rls_lb_config_parser_test.cc
  47. 2
      test/core/client_channel/service_config_test.cc
  48. 1
      test/core/client_idle/BUILD
  49. 1
      test/core/compiler_bugs/BUILD
  50. 6
      test/core/compression/BUILD
  51. 2
      test/core/compression/compression_test.cc
  52. 2
      test/core/compression/message_compress_test.cc
  53. 1
      test/core/config/BUILD
  54. 1
      test/core/debug/BUILD
  55. 2
      test/core/debug/stats_test.cc
  56. 1
      test/core/end2end/BUILD
  57. 2
      test/core/end2end/bad_server_response_test.cc
  58. 2
      test/core/end2end/connection_refused_test.cc
  59. 2
      test/core/end2end/dualstack_socket_test.cc
  60. 22
      test/core/end2end/end2end_test.sh
  61. 2
      test/core/end2end/fixtures/h2_census.cc
  62. 2
      test/core/end2end/fixtures/h2_compress.cc
  63. 2
      test/core/end2end/fixtures/h2_fakesec.cc
  64. 2
      test/core/end2end/fixtures/h2_fd.cc
  65. 2
      test/core/end2end/fixtures/h2_full+pipe.cc
  66. 2
      test/core/end2end/fixtures/h2_full+trace.cc
  67. 2
      test/core/end2end/fixtures/h2_full.cc
  68. 2
      test/core/end2end/fixtures/h2_http_proxy.cc
  69. 2
      test/core/end2end/fixtures/h2_insecure.cc
  70. 2
      test/core/end2end/fixtures/h2_local_abstract_uds_percent_encoded.cc
  71. 2
      test/core/end2end/fixtures/h2_local_ipv4.cc
  72. 2
      test/core/end2end/fixtures/h2_local_ipv6.cc
  73. 2
      test/core/end2end/fixtures/h2_local_uds.cc
  74. 2
      test/core/end2end/fixtures/h2_local_uds_percent_encoded.cc
  75. 2
      test/core/end2end/fixtures/h2_oauth2.cc
  76. 2
      test/core/end2end/fixtures/h2_proxy.cc
  77. 2
      test/core/end2end/fixtures/h2_sockpair+trace.cc
  78. 2
      test/core/end2end/fixtures/h2_sockpair.cc
  79. 2
      test/core/end2end/fixtures/h2_sockpair_1byte.cc
  80. 2
      test/core/end2end/fixtures/h2_ssl.cc
  81. 2
      test/core/end2end/fixtures/h2_ssl_cred_reload.cc
  82. 2
      test/core/end2end/fixtures/h2_ssl_proxy.cc
  83. 2
      test/core/end2end/fixtures/h2_tls.cc
  84. 2
      test/core/end2end/fixtures/h2_uds.cc
  85. 2
      test/core/end2end/fixtures/inproc.cc
  86. 3
      test/core/end2end/fuzzers/BUILD
  87. 51
      test/core/end2end/generate_tests.bzl
  88. 2
      test/core/end2end/goaway_server_test.cc
  89. 2
      test/core/end2end/h2_ssl_cert_test.cc
  90. 2
      test/core/end2end/h2_ssl_session_reuse_test.cc
  91. 2
      test/core/end2end/inproc_callback_test.cc
  92. 2
      test/core/end2end/invalid_call_argument_test.cc
  93. 2
      test/core/end2end/multiple_server_queues_test.cc
  94. 2
      test/core/end2end/no_server_test.cc
  95. 4
      test/core/end2end/run.sh
  96. 16
      test/core/event_engine/BUILD
  97. 2
      test/core/event_engine/smoke_test.cc
  98. 39
      test/core/event_engine/test_init.cc
  99. 29
      test/core/event_engine/test_init.h
  100. 1
      test/core/ext/filters/rbac/BUILD
  101. Some files were not shown because too many files have changed in this diff Show More

44
CMakeLists.txt generated

@ -905,9 +905,6 @@ if(gRPC_BUILD_TESTS)
add_dependencies(buildtests_cxx insecure_security_connector_test)
add_dependencies(buildtests_cxx interop_client)
add_dependencies(buildtests_cxx interop_server)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx interop_test)
endif()
add_dependencies(buildtests_cxx join_test)
add_dependencies(buildtests_cxx json_test)
add_dependencies(buildtests_cxx large_metadata_bad_client_test)
@ -2238,6 +2235,7 @@ endif()
if(gRPC_BUILD_TESTS)
add_library(grpc_test_util
test/core/event_engine/test_init.cc
test/core/util/build.cc
test/core/util/cmdline.cc
test/core/util/fuzzer_util.cc
@ -2306,6 +2304,7 @@ endif()
if(gRPC_BUILD_TESTS)
add_library(grpc_test_util_unsecure
test/core/event_engine/test_init.cc
test/core/util/build.cc
test/core/util/cmdline.cc
test/core/util/fuzzer_util.cc
@ -12205,44 +12204,6 @@ target_link_libraries(interop_server
)
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(interop_test
test/cpp/interop/interop_test.cc
third_party/googletest/googletest/src/gtest-all.cc
third_party/googletest/googlemock/src/gmock-all.cc
)
target_include_directories(interop_test
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/include
${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
${_gRPC_RE2_INCLUDE_DIR}
${_gRPC_SSL_INCLUDE_DIR}
${_gRPC_UPB_GENERATED_DIR}
${_gRPC_UPB_GRPC_GENERATED_DIR}
${_gRPC_UPB_INCLUDE_DIR}
${_gRPC_XXHASH_INCLUDE_DIR}
${_gRPC_ZLIB_INCLUDE_DIR}
third_party/googletest/googletest/include
third_party/googletest/googletest
third_party/googletest/googlemock/include
third_party/googletest/googlemock
${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(interop_test
${_gRPC_PROTOBUF_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
grpc++_test_config
grpc++_test_util
)
endif()
endif()
if(gRPC_BUILD_TESTS)
@ -16779,6 +16740,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h
test/core/event_engine/test_init.cc
test/core/util/build.cc
test/core/util/cmdline.cc
test/core/util/fuzzer_util.cc

@ -36,6 +36,9 @@ load("@build_bazel_rules_apple//apple/testing/default_runner:ios_test_runner.bzl
# The set of pollers to test against if a test exercises polling
POLLERS = ["epoll1", "poll"]
# The set of known EventEngines to test
EVENT_ENGINES = {"default": {"tags": []}}
def if_not_windows(a):
return select({
"//:windows": [],
@ -151,11 +154,9 @@ def grpc_cc_library(
if language.upper() == "C":
copts = copts + if_not_windows(["-std=c99"])
linkopts = if_not_windows(["-pthread"]) + if_windows(["-defaultlib:ws2_32.lib"])
if select_deps:
for select_deps_entry in select_deps:
deps += select(select_deps_entry)
native.cc_library(
name = name,
srcs = srcs,
@ -259,7 +260,76 @@ def ios_cc_test(
deps = ios_test_deps,
)
def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++", size = "medium", timeout = None, tags = [], exec_compatible_with = [], exec_properties = {}, shard_count = None, flaky = None, copts = [], linkstatic = None):
def expand_tests_for_each_poller_and_engine(name, srcs, deps, tags, args, exclude_pollers, uses_event_engine):
"""Common logic used to parameterize tests for every poller and EventEngine.
Args:
name: base name of the test
srcs: source files
deps: base deps
tags: base tags
args: base args
exclude_pollers: list of poller names to exclude for this set of tests.
uses_event_engine: set to False if the test is not sensitive to
EventEngine implementation differences
Returns:
A list of dictionaries containing modified values of name, srcs, deps, tags, and args.
"""
poller_config = []
# On linux we run the same test with the default EventEngine, once for each
# poller
for poller in POLLERS:
if poller in exclude_pollers:
continue
poller_config.append({
"name": name + "@poller=" + poller,
"srcs": srcs,
"deps": deps,
"tags": (tags + EVENT_ENGINES["default"]["tags"] + [
"no_windows",
"no_mac",
"bazel_only",
]),
"args": args + ["--poller=" + poller],
})
# Now generate one test for each subsequent EventEngine, all using the
# default poller. These tests will have `@engine=<name>` appended to the
# test target name. If a test target name has no `@engine=<name>` component,
# that indicates that the default EventEngine is being used.
if not uses_event_engine:
# The poller tests exercise the default engine on Linux. This test
# handles other platforms.
poller_config.append({
"name": name,
"srcs": srcs,
"deps": deps,
"tags": tags + ["no_linux"],
"args": args,
})
else:
for engine_name, engine in EVENT_ENGINES.items():
test_name = name + "@engine=" + engine_name
test_tags = tags + engine["tags"] + ["bazel_only"]
test_args = args + ["--engine=" + engine_name]
if engine_name == "default":
# The poller tests exercise the default engine on Linux.
# This test handles other platforms.
test_name = name
test_tags = tags + engine["tags"] + ["no_linux"]
test_args = args
poller_config.append({
"name": test_name,
"srcs": srcs,
"deps": deps,
"tags": test_tags,
"args": test_args,
})
return poller_config
def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++", size = "medium", timeout = None, tags = [], exec_compatible_with = [], exec_properties = {}, shard_count = None, flaky = None, copts = [], linkstatic = None, exclude_pollers = [], uses_event_engine = True):
"""A cc_test target for use in the gRPC repo.
Args:
@ -282,17 +352,18 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
flaky: Whether this test is flaky.
copts: Add these to the compiler invocation.
linkstatic: link the binary in static mode
exclude_pollers: list of poller names to exclude for this set of tests.
uses_event_engine: set to False if the test is not sensitive to
EventEngine implementation differences
"""
if language.upper() == "C":
copts = copts + if_not_windows(["-std=c99"])
# NOTE: these attributes won't be used for the poller-specific versions of a test
# automatically, you need to set them explicitly (if applicable)
args = {
"srcs": srcs,
"args": args,
core_deps = deps + _get_external_deps(external_deps)
# Test args for all tests
test_args = {
"data": data,
"deps": deps + _get_external_deps(external_deps),
"copts": GRPC_DEFAULT_COPTS + copts,
"linkopts": if_not_windows(["-pthread"]) + if_windows(["-defaultlib:ws2_32.lib"]),
"size": size,
@ -303,46 +374,36 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
"flaky": flaky,
"linkstatic": linkstatic,
}
if uses_polling:
# the vanilla version of the test should run on platforms that only
# support a single poller
native.cc_test(
name = name,
testonly = True,
tags = (tags + [
"no_linux", # linux supports multiple pollers
]),
**args
)
# on linux we run the same test multiple times, once for each poller
for poller in POLLERS:
native.sh_test(
name = name + "@poller=" + poller,
data = [name] + data,
srcs = [
"//test/core/util:run_with_poller_sh",
],
size = size,
timeout = timeout,
args = [
poller,
"$(location %s)" % name,
] + args["args"],
tags = (tags + ["no_windows", "no_mac"]),
exec_compatible_with = exec_compatible_with,
exec_properties = exec_properties,
shard_count = shard_count,
flaky = flaky,
)
else:
# the test behavior doesn't depend on polling, just generate the test
native.cc_test(name = name, tags = tags + ["no_uses_polling"], **args)
ios_cc_test(
name = name,
srcs = srcs,
tags = tags,
**args
deps = core_deps,
args = args,
**test_args
)
if not uses_polling:
# the test behavior doesn't depend on polling, just generate the test
native.cc_test(
name = name,
srcs = srcs,
tags = tags + ["no_uses_polling"],
deps = core_deps,
args = args,
**test_args
)
return
for poller_config in expand_tests_for_each_poller_and_engine(name, srcs, core_deps, tags, args, exclude_pollers, uses_event_engine):
native.cc_test(
name = poller_config["name"],
srcs = poller_config["srcs"],
deps = poller_config["deps"],
tags = poller_config["tags"],
args = poller_config["args"],
**test_args
)
def grpc_cc_binary(name, srcs = [], deps = [], external_deps = [], args = [], data = [], language = "C++", testonly = False, linkshared = False, linkopts = [], tags = [], features = []):
"""Generates a cc_binary for use in the gRPC repo.
@ -389,14 +450,56 @@ def grpc_generate_one_off_targets():
def grpc_generate_objc_one_off_targets():
pass
def grpc_sh_test(name, srcs, args = [], data = [], tags = []):
native.sh_test(
name = name,
srcs = srcs,
args = args,
data = data,
tags = tags,
)
def grpc_sh_test(name, srcs = [], args = [], data = [], uses_polling = True, size = "medium", timeout = None, tags = [], exec_compatible_with = [], exec_properties = {}, shard_count = None, flaky = None, exclude_pollers = [], uses_event_engine = True):
"""Execute an sh_test for every <poller> x <EventEngine> combination
Args:
name: The name of the test.
srcs: The source files.
args: The args to supply to the test binary.
data: Data dependencies.
uses_polling: Whether the test uses polling.
size: The size of the test.
timeout: The test timeout.
tags: The tags for the test.
exec_compatible_with: A list of constraint values that must be
satisifed for the platform.
exec_properties: A dictionary of strings that will be added to the
exec_properties of a platform selected for this target.
shard_count: The number of shards for this test.
flaky: Whether this test is flaky.
exclude_pollers: list of poller names to exclude for this set of tests.
uses_event_engine: set to False if the test is not sensitive to
EventEngine implementation differences
"""
test_args = {
"data": data,
"size": size,
"timeout": timeout,
"exec_compatible_with": exec_compatible_with,
"exec_properties": exec_properties,
"shard_count": shard_count,
"flaky": flaky,
}
if not uses_polling:
native.sh_test(
name = name,
srcs = srcs,
args = args,
tags = tags,
**test_args
)
return
for poller_config in expand_tests_for_each_poller_and_engine(name, srcs, [], tags, args, exclude_pollers, uses_event_engine):
native.sh_test(
name = poller_config["name"],
srcs = poller_config["srcs"],
deps = poller_config["deps"],
tags = poller_config["tags"],
args = poller_config["args"],
**test_args
)
def grpc_sh_binary(name, srcs, data = []):
native.sh_binary(

@ -1659,6 +1659,7 @@ libs:
language: c
public_headers: []
headers:
- test/core/event_engine/test_init.h
- test/core/util/build.h
- test/core/util/cmdline.h
- test/core/util/evaluate_args_test_util.h
@ -1681,6 +1682,7 @@ libs:
- test/core/util/tls_utils.h
- test/core/util/tracer_util.h
src:
- test/core/event_engine/test_init.cc
- test/core/util/build.cc
- test/core/util/cmdline.cc
- test/core/util/fuzzer_util.cc
@ -1712,6 +1714,7 @@ libs:
language: c
public_headers: []
headers:
- test/core/event_engine/test_init.h
- test/core/util/build.h
- test/core/util/cmdline.h
- test/core/util/evaluate_args_test_util.h
@ -1733,6 +1736,7 @@ libs:
- test/core/util/test_tcp_server.h
- test/core/util/tracer_util.h
src:
- test/core/event_engine/test_init.cc
- test/core/util/build.cc
- test/core/util/cmdline.cc
- test/core/util/fuzzer_util.cc
@ -6301,19 +6305,6 @@ targets:
deps:
- grpc++_test_config
- grpc++_test_util
- name: interop_test
build: test
language: c++
headers: []
src:
- test/cpp/interop/interop_test.cc
deps:
- grpc++_test_config
- grpc++_test_util
platforms:
- linux
- posix
- mac
- name: join_test
gtest: true
build: test
@ -8260,6 +8251,7 @@ targets:
build: test
language: c++
headers:
- test/core/event_engine/test_init.h
- test/core/util/build.h
- test/core/util/cmdline.h
- test/core/util/evaluate_args_test_util.h
@ -8284,6 +8276,7 @@ targets:
- src/proto/grpc/testing/echo.proto
- src/proto/grpc/testing/echo_messages.proto
- src/proto/grpc/testing/simple_messages.proto
- test/core/event_engine/test_init.cc
- test/core/util/build.cc
- test/core/util/cmdline.cc
- test/core/util/fuzzer_util.cc

2
gRPC-Core.podspec generated

@ -2545,6 +2545,8 @@ Pod::Spec.new do |s|
'test/core/end2end/tests/trailing_metadata.cc',
'test/core/end2end/tests/write_buffering.cc',
'test/core/end2end/tests/write_buffering_at_end.cc',
'test/core/event_engine/test_init.cc',
'test/core/event_engine/test_init.h',
'test/core/util/build.cc',
'test/core/util/build.h',
'test/core/util/cmdline.cc',

2
grpc.gyp generated

@ -1055,6 +1055,7 @@
'grpc',
],
'sources': [
'test/core/event_engine/test_init.cc',
'test/core/util/build.cc',
'test/core/util/cmdline.cc',
'test/core/util/fuzzer_util.cc',
@ -1088,6 +1089,7 @@
'grpc_unsecure',
],
'sources': [
'test/core/event_engine/test_init.cc',
'test/core/util/build.cc',
'test/core/util/cmdline.cc',
'test/core/util/fuzzer_util.cc',

@ -163,7 +163,8 @@ static char *roots_filename;
size_t roots_size = strlen(test_root_cert);
char *argv[] = {(char *)"CoreCronetEnd2EndTests"};
grpc_test_init(1, argv);
int argc = 1;
grpc_test_init(&argc, argv);
grpc_end2end_tests_pre_init();
/* Set the SSL roots env var. */
@ -192,9 +193,8 @@ static char *roots_filename;
- (void)testIndividualCase:(char *)test_case {
char *argv[] = {(char *)"h2_ssl", test_case};
for (int i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
grpc_end2end_tests(sizeof(argv) / sizeof(argv[0]), argv, configs[i]);
grpc_end2end_tests(2, argv, configs[i]);
}
}

@ -58,7 +58,8 @@ static void drain_cq(grpc_completion_queue *cq) {
[super setUp];
char *argv[] = {(char *)"CoreCronetEnd2EndTests"};
grpc_test_init(1, argv);
int argc = 1;
grpc_test_init(&argc, argv);
grpc_init();
configureCronet(/*enable_netlog=*/false);

@ -51,6 +51,7 @@ grpc_cc_test(
srcs = ["parse_address_with_named_scope_id_test.cc"],
language = "C++",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",

@ -129,7 +129,7 @@ static void test_grpc_parse_ipv6_invalid(const char* uri_text) {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
test_grpc_parse_unix("unix:/path/name", "/path/name");

@ -98,7 +98,7 @@ struct sockaddr_in6 resolve_with_gettaddrinfo(const char* uri_text) {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
char* arbitrary_interface_name = static_cast<char*>(gpr_zalloc(IF_NAMESIZE));
// Per RFC 3493, an interface index is a "small positive integer starts at 1".

@ -284,7 +284,7 @@ TEST(SockAddrUtilsTest, SockAddrMatchSubnet) {
} // namespace
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
int retval = RUN_ALL_TESTS();
return retval;

@ -24,6 +24,7 @@ grpc_cc_test(
srcs = ["avl_test.cc"],
external_deps = ["gtest"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:avl",
@ -38,6 +39,7 @@ grpc_proto_fuzzer(
language = "C++",
proto = "avl_fuzzer.proto",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:avl",

@ -30,6 +30,7 @@ grpc_cc_test(
"gtest",
],
language = "C++",
uses_event_engine = True, # uses EventEngine::Now()
uses_polling = False,
deps = [
"//:gpr",

@ -179,7 +179,7 @@ TEST(BackOffTest, JitterBackOff) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();

@ -124,7 +124,7 @@ TEST(BadStreamingId, ClosedStreamId) {
} // namespace
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int retval = RUN_ALL_TESTS();

@ -38,7 +38,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* invalid content type */

@ -29,7 +29,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "X", 0);

@ -121,7 +121,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* Verify that sending multiple headers doesn't segfault */

@ -108,7 +108,7 @@ static void addbuf(const void* data, size_t len) {
int main(int argc, char** argv) {
int i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
#define NUM_FRAMES 10

@ -33,7 +33,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* partial http2 header prefixes */

@ -32,7 +32,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* various partial prefixes */

@ -81,7 +81,7 @@ static void verifier_fails(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) {
int i;
grpc_init();
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
// Test sending more metadata than the server will accept.
std::vector<std::string> headers;

@ -104,7 +104,7 @@ TEST(OutOfBounds, WindowUpdate) {
} // namespace
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int retval = RUN_ALL_TESTS();

@ -75,7 +75,7 @@ static void verifier_fails(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* body generated with

@ -122,7 +122,7 @@ static void failure_verifier(grpc_server* server, grpc_completion_queue* cq,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* basic request: check that things are working */

@ -57,7 +57,7 @@ TEST(UnknownFrameType, Test) {
} // namespace
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int retval = RUN_ALL_TESTS();

@ -70,7 +70,7 @@ int main(int argc, char** argv) {
#define FRAME_SIZE (MESSAGES_PER_FRAME * 5)
#define SEND_SIZE (4 * 1024 * 1024)
#define NUM_FRAMES (SEND_SIZE / FRAME_SIZE + 1)
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
addbuf(PFX_STR, sizeof(PFX_STR) - 1);

@ -737,7 +737,7 @@ static void test_close_before_call_create() {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
/* Init grpc */
grpc_init();
int iterations = 10;

@ -23,6 +23,7 @@ grpc_cc_test(
srcs = ["channel_args_test.cc"],
external_deps = ["gtest"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",
@ -35,6 +36,7 @@ grpc_cc_test(
name = "channel_stack_test",
srcs = ["channel_stack_test.cc"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",
@ -61,6 +63,7 @@ grpc_cc_test(
name = "minimal_stack_is_minimal_test",
srcs = ["minimal_stack_is_minimal_test.cc"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",
@ -108,6 +111,7 @@ grpc_cc_test(
"gtest",
],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",
@ -124,6 +128,7 @@ grpc_cc_test(
"gtest",
],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:grpc",

@ -254,7 +254,7 @@ TEST(GrpcChannelArgsTest, TestServerCreateWithArgs) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
auto r = RUN_ALL_TESTS();
grpc_shutdown();

@ -135,7 +135,7 @@ TEST(ChannelStackBuilder, UnknownTarget) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_core::CoreConfiguration::RegisterBuilder(
[](grpc_core::CoreConfiguration::Builder* builder) {
builder->channel_init()->RegisterStage(

@ -151,7 +151,7 @@ static void test_create_channel_stack(void) {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
test_create_channel_stack();
grpc_shutdown();

@ -322,7 +322,7 @@ TEST(ChannelTracerTest, TestTotalEviction) {
} // namespace grpc_core
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
::testing::InitGoogleTest(&argc, argv);
int ret = RUN_ALL_TESTS();

@ -144,7 +144,7 @@ TEST_F(ChannelzRegistryTest, TestUnregistration) {
} // namespace grpc_core
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
int ret = RUN_ALL_TESTS();
return ret;

@ -563,7 +563,7 @@ INSTANTIATE_TEST_SUITE_P(ChannelzChannelTestSweep, ChannelzChannelTest,
} // namespace grpc_core
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
::testing::InitGoogleTest(&argc, argv);
int ret = RUN_ALL_TESTS();

@ -62,7 +62,7 @@ static int check_stack(const char* file, int line, const char* transport_name,
#define CHECK_STACK(...) check_stack(__FILE__, __LINE__, __VA_ARGS__)
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
int errors = 0;

@ -37,6 +37,7 @@ grpc_cc_test(
"gtest",
],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",

@ -84,7 +84,7 @@ TEST(CertificateProviderRegistryTest, Basic) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
auto result = RUN_ALL_TESTS();
return result;
}

@ -189,6 +189,6 @@ TEST_F(BinderResolverTest, ValidCases) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
return RUN_ALL_TESTS();
}

@ -335,7 +335,7 @@ static void test_cooldown() {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
auto work_serializer = std::make_shared<grpc_core::WorkSerializer>();

@ -75,7 +75,7 @@ static void test_fails(grpc_core::ResolverFactory* factory,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
auto work_serializer = std::make_shared<grpc_core::WorkSerializer>();

@ -202,7 +202,7 @@ static void test_fake_resolver() {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
test_fake_resolver();

@ -104,7 +104,7 @@ TEST(DestroyGoogleC2pChannelWithActiveConnectStressTest,
} // namespace
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
gpr_setenv("GRPC_EXPERIMENTAL_GOOGLE_C2P_RESOLVER", "true");
::testing::InitGoogleTest(&argc, argv);
grpc_init();

@ -79,7 +79,7 @@ static void test_fails(grpc_core::ResolverFactory* factory,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
auto work_serializer = std::make_shared<grpc_core::WorkSerializer>();

@ -133,7 +133,7 @@ TEST(ServerRetryThrottleMap, Replacement) {
} // namespace grpc_core
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

@ -573,6 +573,6 @@ TEST_F(RlsConfigParsingTest, DuplicateMethodNamesInDifferentKeyBuilders) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
return RUN_ALL_TESTS();
}

@ -1574,7 +1574,7 @@ TEST_F(MessageSizeParserTest, InvalidMaxResponseMessageBytes) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();

@ -25,6 +25,7 @@ grpc_cc_test(
"gtest",
],
language = "c++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:idle_filter_state",

@ -23,6 +23,7 @@ grpc_cc_test(
srcs = ["miscompile_with_no_unique_address_test.cc"],
external_deps = ["gtest"],
language = "c++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr_platform",

@ -37,6 +37,7 @@ grpc_cc_test(
name = "compression_test",
srcs = ["compression_test.cc"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
":args_utils",
@ -51,6 +52,8 @@ grpc_fuzzer(
srcs = ["message_compress_fuzzer.cc"],
corpus = "message_compress_corpus",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:grpc",
"//test/core/util:grpc_test_util",
@ -62,6 +65,8 @@ grpc_fuzzer(
srcs = ["message_decompress_fuzzer.cc"],
corpus = "message_decompress_corpus",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:grpc",
"//test/core/util:grpc_test_util",
@ -72,6 +77,7 @@ grpc_cc_test(
name = "message_compress_test",
srcs = ["message_compress_test.cc"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",

@ -307,7 +307,7 @@ static void test_channel_args_compression_algorithm_states(void) {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
test_compression_algorithm_parse();
test_compression_algorithm_name();

@ -311,7 +311,7 @@ int main(int argc, char** argv) {
GRPC_SLICE_SPLIT_IDENTITY,
GRPC_SLICE_SPLIT_ONE_BYTE};
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {

@ -23,6 +23,7 @@ grpc_cc_test(
srcs = ["core_configuration_test.cc"],
external_deps = ["gtest"],
language = "c++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:config",

@ -25,6 +25,7 @@ grpc_cc_test(
"gtest",
],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",

@ -149,7 +149,7 @@ int main(int argc, char** argv) {
* build.
*/
#if defined(GRPC_COLLECT_STATS) || !defined(NDEBUG)
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();

@ -137,6 +137,7 @@ grpc_cc_test(
name = "inproc_callback_test",
srcs = ["inproc_callback_test.cc"],
language = "C++",
uses_event_engine = False,
uses_polling = False,
deps = [
":end2end_tests",

@ -340,7 +340,7 @@ static void run_test(bool http2_response, bool send_settings,
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
/* status defined in hpack static table */
run_test(true, true, HTTP2_RESP(204), sizeof(HTTP2_RESP(204)) - 1,

@ -139,7 +139,7 @@ static void run_test(bool wait_for_ready, bool use_service_config) {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
run_test(false /* wait_for_ready */, false /* use_service_config */);
run_test(true /* wait_for_ready */, false /* use_service_config */);
run_test(true /* wait_for_ready */, true /* use_service_config */);

@ -307,7 +307,7 @@ int external_dns_works(const char* host) {
int main(int argc, char** argv) {
int do_ipv6 = 1;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
if (!grpc_ipv6_loopback_available()) {

@ -1,22 +0,0 @@
#!/bin/sh
# Test runner for end2end tests from bazel
# Copyright 2017 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if [ -n "$3" ]
then
export GRPC_POLL_STRATEGY=$3
fi
"$1" "$2"

@ -120,7 +120,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -125,7 +125,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -137,7 +137,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -108,7 +108,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -108,7 +108,7 @@ int main(int argc, char** argv) {
grpc_allow_specialized_wakeup_fd = 0;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -124,7 +124,7 @@ int main(int argc, char** argv) {
setvbuf(stderr, NULL, _IOLBF, 1024);
#endif
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -100,7 +100,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -124,7 +124,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -113,7 +113,7 @@ grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {

@ -60,7 +60,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {

@ -60,7 +60,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {

@ -60,7 +60,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {

@ -65,7 +65,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {

@ -65,7 +65,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {

@ -281,7 +281,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -124,7 +124,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -181,7 +181,7 @@ int main(int argc, char** argv) {
setvbuf(stderr, NULL, _IOLBF, 1024);
#endif
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -158,7 +158,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -172,7 +172,7 @@ int main(int argc, char** argv) {
g_fixture_slowdown_factor = 2;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -209,7 +209,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
GPR_GLOBAL_CONFIG_SET(grpc_default_ssl_roots_file_path, CA_CERT_PATH);

@ -238,7 +238,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
GPR_GLOBAL_CONFIG_SET(grpc_default_ssl_roots_file_path, CA_CERT_PATH);

@ -217,7 +217,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
GPR_GLOBAL_CONFIG_SET(grpc_default_ssl_roots_file_path, CA_CERT_PATH);

@ -397,7 +397,7 @@ static grpc_end2end_test_config configs[] = {
};
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
GPR_GLOBAL_CONFIG_SET(grpc_default_ssl_roots_file_path, CA_CERT_PATH);
grpc_init();

@ -135,7 +135,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -81,7 +81,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) {
size_t i;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_end2end_tests_pre_init();
grpc_init();

@ -27,6 +27,7 @@ grpc_proto_fuzzer(
language = "C++",
proto = "api_fuzzer.proto",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",
@ -42,6 +43,7 @@ grpc_fuzzer(
corpus = "client_fuzzer_corpus",
language = "C++",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",
@ -56,6 +58,7 @@ grpc_fuzzer(
corpus = "server_fuzzer_corpus",
language = "C++",
tags = ["no_windows"],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:gpr",

@ -14,9 +14,12 @@
# limitations under the License.
"""Generates the appropriate build.json data for all the end2end tests."""
load("//bazel:grpc_build_system.bzl", "grpc_cc_binary", "grpc_cc_library")
POLLERS = ["epoll1", "poll"]
load(
"//bazel:grpc_build_system.bzl",
"grpc_cc_binary",
"grpc_cc_library",
"grpc_sh_test",
)
def _fixture_options(
fullstack = True,
@ -67,6 +70,7 @@ END2END_FIXTURES = {
fullstack = False,
client_channel = False,
_platforms = ["linux", "mac", "posix"],
tags = ["no_test_ios"],
),
"h2_full": _fixture_options(),
"h2_full+pipe": _fixture_options(_platforms = ["linux"]),
@ -310,9 +314,7 @@ END2END_TESTS = {
"retry_throttled": _test_options(needs_client_channel = True),
"retry_too_many_attempts": _test_options(needs_client_channel = True),
"retry_transparent_goaway": _test_options(needs_client_channel = True),
"retry_transparent_not_sent_on_wire": _test_options(
needs_client_channel = True,
),
"retry_transparent_not_sent_on_wire": _test_options(needs_client_channel = True),
"retry_transparent_max_concurrent_streams": _test_options(
needs_client_channel = True,
proxyable = False,
@ -408,10 +410,10 @@ def grpc_end2end_tests():
"//test/core/compression:args_utils",
],
)
for f, fopt in END2END_FIXTURES.items():
bin_name = "%s_test" % f
grpc_cc_binary(
name = "%s_test" % f,
name = bin_name,
srcs = ["fixtures/%s.cc" % f],
language = "C++",
testonly = 1,
@ -429,37 +431,18 @@ def grpc_end2end_tests():
],
tags = _platform_support_tags(fopt) + fopt.tags,
)
for t, topt in END2END_TESTS.items():
#print(_compatible(fopt, topt), f, t, fopt, topt)
if not _compatible(fopt, topt):
continue
test_short_name = str(t) if not topt.short_name else topt.short_name
native.sh_test(
grpc_sh_test(
name = "%s_test@%s" % (f, test_short_name),
data = [":%s_test" % f],
srcs = ["end2end_test.sh"],
args = [
"$(location %s_test)" % f,
t,
srcs = ["run.sh"],
data = [":" + bin_name],
args = ["$(location %s)" % bin_name, t],
tags = _platform_support_tags(fopt) + fopt.tags + [
"no_test_ios",
],
tags = ["no_linux"] + _platform_support_tags(fopt) + fopt.tags,
flaky = t in fopt.flaky_tests,
exclude_pollers = topt.exclude_pollers,
)
for poller in POLLERS:
if poller in topt.exclude_pollers:
continue
native.sh_test(
name = "%s_test@%s@poller=%s" % (f, test_short_name, poller),
data = [":%s_test" % f],
srcs = ["end2end_test.sh"],
args = [
"$(location %s_test)" % f,
t,
poller,
],
tags = ["no_mac", "no_windows"] + fopt.tags,
flaky = t in fopt.flaky_tests,
)

@ -161,7 +161,7 @@ int main(int argc, char** argv) {
grpc_op ops[6];
grpc_op* op;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
gpr_mu_init(&g_mu);
grpc_init();

@ -376,7 +376,7 @@ int main(int argc, char** argv) {
size_t roots_size = strlen(test_root_cert);
char* roots_filename;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
/* Set the SSL roots env var. */
roots_file =
gpr_tmpfile("chttp2_simple_ssl_cert_fullstack_test", &roots_filename);

@ -285,7 +285,7 @@ TEST(H2SessionReuseTest, SingleReuse) {
} // namespace grpc
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
GPR_GLOBAL_CONFIG_SET(grpc_default_ssl_roots_file_path, CA_CERT_PATH);
grpc_init();

@ -487,7 +487,7 @@ static grpc_end2end_test_config configs[] = {
};
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
simple_request_pre_init();

@ -637,7 +637,7 @@ static void test_multiple_ops_in_a_single_batch() {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
test_invalid_initial_metadata_reserved_key();
test_non_null_reserved_on_start_batch();

@ -29,7 +29,7 @@ int main(int argc, char** argv) {
grpc_server* server;
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
attr.version = 1;

@ -110,7 +110,7 @@ void run_test(bool wait_for_ready) {
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
run_test(true /* wait_for_ready */);
run_test(false /* wait_for_ready */);
return 0;

@ -1,4 +1,5 @@
#!/bin/sh
# Arbitrary shell script runner
# Copyright 2017 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@ -12,8 +13,5 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -ex
export GRPC_POLL_STRATEGY=$1
shift
"$@"

@ -12,11 +12,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_package")
load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package")
licenses(["notice"])
grpc_package(name = "test/core/event_engine")
grpc_package(
name = "test/core/event_engine",
visibility = "tests",
)
grpc_cc_test(
name = "endpoint_config_test",
@ -39,3 +42,12 @@ grpc_cc_test(
"//test/core/util:grpc_test_util",
],
)
grpc_cc_library(
name = "test_init",
srcs = ["test_init.cc"],
hdrs = ["test_init.h"],
deps = [
"//:grpc_base",
],
)

@ -42,7 +42,7 @@ TEST_F(EventEngineSmokeTest, SetDefaultEventEngineFactoryLinks) {
int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
auto result = RUN_ALL_TESTS();
grpc_shutdown();

@ -0,0 +1,39 @@
// Copyright 2022 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#include "test/core/event_engine/test_init.h"
#include "absl/strings/str_cat.h"
#include <grpc/support/log.h>
namespace grpc_event_engine {
namespace experimental {
/// Sets the default EventEngine factory, used for testing.
/// Valid engines are:
/// * 'default' or 'libuv': the LibuvEventEngine
absl::Status InitializeTestingEventEngineFactory(absl::string_view engine) {
if (engine == "default" || engine == "libuv") {
// TODO(hork): SetDefaultEventEngineFactory(LibuvEventEngineFactory)
gpr_log(GPR_DEBUG, "Libuv EventEngine initialized.");
return absl::OkStatus();
}
return absl::InvalidArgumentError(
absl::StrCat("Unknown EventEngine implementation: ", engine));
}
} // namespace experimental
} // namespace grpc_event_engine

@ -0,0 +1,29 @@
// Copyright 2022 The gRPC Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpc/support/port_platform.h>
#ifndef GRPC_TEST_CORE_EVENT_ENGINE_TEST_INIT_H
#define GRPC_TEST_CORE_EVENT_ENGINE_TEST_INIT_H
#include <grpc/event_engine/event_engine.h>
namespace grpc_event_engine {
namespace experimental {
absl::Status InitializeTestingEventEngineFactory(absl::string_view engine);
} // namespace experimental
} // namespace grpc_event_engine
#endif // GRPC_TEST_CORE_EVENT_ENGINE_TEST_INIT_H

@ -25,6 +25,7 @@ grpc_cc_test(
"gtest",
],
language = "c++",
uses_event_engine = False,
uses_polling = False,
deps = [
"//:grpc_rbac_filter",

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save