The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) https://grpc.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

444 lines
9.2 KiB

# 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.
load("//bazel:grpc_build_system.bzl", "grpc_cc_binary", "grpc_cc_library", "grpc_cc_test", "grpc_package")
licenses(["notice"])
grpc_package(
name = "test/cpp/util",
visibility = "public",
)
grpc_cc_library(
name = "test_config",
srcs = [
"test_config_cc.cc",
],
hdrs = [
"test_config.h",
],
external_deps = [
"absl/flags:parse",
],
deps = [
"//:gpr",
],
)
grpc_cc_library(
name = "grpc++_proto_reflection_desc_db",
srcs = [
"proto_reflection_descriptor_database.cc",
],
hdrs = [
"proto_reflection_descriptor_database.h",
],
deps = [
"//:grpc++",
"//:grpc++_config_proto",
"//src/proto/grpc/reflection/v1alpha:reflection_proto",
],
)
GRPCXX_TESTUTIL_SRCS = [
"byte_buffer_proto_helper.cc",
"string_ref_helper.cc",
"subprocess.cc",
]
GRPCXX_TESTUTIL_HDRS = [
"byte_buffer_proto_helper.h",
"string_ref_helper.h",
"subprocess.h",
]
grpc_cc_library(
name = "test_util",
srcs = GRPCXX_TESTUTIL_SRCS + [
"create_test_channel.cc",
"test_credentials_provider.cc",
],
hdrs = GRPCXX_TESTUTIL_HDRS + [
"create_test_channel.h",
"test_credentials_provider.h",
],
external_deps = [
"absl/flags:flag",
"protobuf",
],
deps = [
"//:grpc++",
"//:subprocess",
"//test/core/end2end:ssl_test_data",
"//test/core/util:grpc_test_util",
"//test/core/util:grpc_test_util_base",
],
)
grpc_cc_library(
name = "channel_trace_proto_helper",
testonly = 1,
srcs = [
"channel_trace_proto_helper.cc",
],
hdrs = [
"channel_trace_proto_helper.h",
],
external_deps = [
"gtest",
"protobuf",
],
deps = [
"//:grpc++",
"//src/proto/grpc/channelz:channelz_proto",
],
)
grpc_cc_library(
name = "test_util_unsecure",
srcs = GRPCXX_TESTUTIL_SRCS,
hdrs = GRPCXX_TESTUTIL_HDRS,
external_deps = [
"protobuf",
],
deps = [
"//:grpc++_unsecure",
"//:subprocess",
"//test/core/util:grpc_test_util_base",
"//test/core/util:grpc_test_util_unsecure",
],
)
grpc_cc_library(
name = "grpc_cli_utils",
srcs = [
"cli_call.cc",
"cli_credentials.cc",
"proto_file_parser.cc",
"service_describer.cc",
],
hdrs = [
"cli_call.h",
"cli_credentials.h",
"config_grpc_cli.h",
"proto_file_parser.h",
"service_describer.h",
],
external_deps = [
"absl/flags:flag",
"protobuf",
"protobuf_clib",
],
deps = [
":grpc++_proto_reflection_desc_db",
"//:grpc++",
"//src/proto/grpc/reflection/v1alpha:reflection_proto",
],
)
grpc_cc_library(
name = "grpc_cli_libs",
srcs = [
"grpc_tool.cc",
],
hdrs = [
"grpc_tool.h",
],
external_deps = [
"absl/flags:flag",
],
deps = [
":grpc_cli_utils",
],
)
grpc_cc_library(
name = "metrics_server_lib",
srcs = [
"metrics_server.cc",
],
hdrs = [
"metrics_server.h",
],
deps = [
"//:grpc++",
"//src/proto/grpc/testing:metrics_proto",
],
)
grpc_cc_test(
name = "grpc_tool_test",
srcs = [
"grpc_tool_test.cc",
],
data = [
"//src/core/tsi/test_creds:ca.pem",
"//src/core/tsi/test_creds:server1.key",
"//src/core/tsi/test_creds:server1.pem",
"//src/proto/grpc/testing:echo.proto",
"//src/proto/grpc/testing:echo_messages.proto",
"//src/proto/grpc/testing:simple_messages.proto",
"//src/proto/grpc/testing/xds/v3:orca_load_report.proto",
],
external_deps = [
"absl/flags:flag",
"gtest",
],
tags = [
"no_mac",
"no_test_ios",
"no_windows",
"nomsan", # death tests seem to be incompatible with msan
],
deps = [
":grpc_cli_libs",
":test_util",
"//:grpc++_reflection",
"//src/proto/grpc/testing:echo_messages_proto",
"//src/proto/grpc/testing:echo_proto",
"//src/proto/grpc/testing:simple_messages_proto",
"//src/proto/grpc/testing/xds/v3:orca_load_report_proto",
"//test/core/util:grpc_test_util",
"//test/cpp/util:test_config",
],
)
grpc_cc_test(
name = "byte_buffer_test",
srcs = [
"byte_buffer_test.cc",
],
external_deps = [
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
":test_util",
],
)
grpc_cc_test(
name = "slice_test",
srcs = [
"slice_test.cc",
],
external_deps = [
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
":test_util",
],
)
grpc_cc_test(
name = "string_ref_test",
srcs = [
"string_ref_test.cc",
],
external_deps = [
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:grpc++",
"//test/core/util:grpc_test_util",
],
)
grpc_cc_test(
name = "time_test",
srcs = [
"time_test.cc",
],
external_deps = [
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
":test_util",
],
)
grpc_cc_test(
name = "cli_call_test",
srcs = [
"cli_call_test.cc",
],
external_deps = [
"gtest",
],
deps = [
":grpc_cli_libs",
":test_util",
"//src/proto/grpc/testing:echo_proto",
"//test/core/util:grpc_test_util",
],
)
grpc_cc_test(
name = "error_details_test",
srcs = [
"error_details_test.cc",
],
external_deps = [
"gtest",
],
tags = ["no_test_ios"],
deps = [
"//:grpc++_error_details",
"//src/proto/grpc/status:status_proto",
"//src/proto/grpc/testing:echo_messages_proto",
"//test/core/util:grpc_test_util",
],
)
grpc_cc_binary(
name = "grpc_cli",
srcs = [
"grpc_cli.cc",
],
external_deps = [
"absl/flags:flag",
],
visibility = [
"@grpc:cli",
],
deps = [
":grpc++_proto_reflection_desc_db",
":grpc_cli_libs",
":test_config",
"//:grpc++",
"//src/proto/grpc/reflection/v1alpha:reflection_proto",
],
)
grpc_cc_binary(
name = "channelz_sampler",
srcs = ["channelz_sampler.cc"],
external_deps = [
"absl/flags:flag",
"absl/strings",
],
language = "c++",
tags = [
"no_windows", # unistd.h
],
deps = [
"//:gpr",
"//:grpc++",
"//:grpcpp_channelz",
"//src/proto/grpc/channelz:channelz_proto",
"//test/cpp/util:test_config",
"//test/cpp/util:test_util",
],
)
grpc_cc_test(
name = "channelz_sampler_test",
srcs = [
"channelz_sampler_test.cc",
],
data = [
":channelz_sampler",
],
external_deps = [
"gtest",
],
flaky = True,
tags = [
"no_mac", # cmake does not build channelz_sampler in Basic Tests C/C++ MacOS test
"no_test_android", # android_cc_test doesn't work with data dependency.
"no_test_ios",
"no_windows", # unistd.h
],
deps = [
"//:gpr",
"//:grpc",
"//:grpc++",
"//:grpcpp_channelz",
"//src/proto/grpc/channelz:channelz_proto",
"//src/proto/grpc/testing:test_proto",
"//test/core/util:grpc_test_util",
"//test/cpp/util:test_util",
],
)
grpc_cc_library(
name = "tls_test_utils",
srcs = [
"tls_test_utils.cc",
],
hdrs = [
"tls_test_utils.h",
],
deps = [
"//:gpr",
"//:grpc",
"//:grpc++",
"//test/core/util:grpc_test_util",
],
)
grpc_cc_test(
name = "proto_buffer_reader_test",
srcs = [
"proto_buffer_reader_test.cc",
],
external_deps = [
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
":test_util",
],
)
grpc_cc_test(
name = "proto_buffer_writer_test",
srcs = [
"proto_buffer_writer_test.cc",
],
external_deps = [
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
":test_util",
],
)
[EventEngine] PosixEventEngine DNS Resolver (#32701) This PR implements a c-ares based DNS resolver for EventEngine with the reference from the original [grpc_ares_wrapper.h](../blob/master/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h). The PosixEventEngine DNSResolver is implemented on top of that. Tests which use the client channel resolver API ([resolver.h](../blob/master/src/core/lib/resolver/resolver.h#L54)) are ported, namely the [resolver_component_test.cc](../blob/master/test/cpp/naming/resolver_component_test.cc) and the [cancel_ares_query_test.cc](../blob/master/test/cpp/naming/cancel_ares_query_test.cc). The WindowsEventEngine DNSResolver will use the same EventEngine's grpc_ares_wrapper and will be worked on next. The [resolve_address_test.cc](https://github.com/grpc/grpc/blob/master/test/core/iomgr/resolve_address_test.cc) which uses the iomgr [DNSResolver](../blob/master/src/core/lib/iomgr/resolve_address.h#L44) API has been ported to EventEngine's dns_test.cc. That leaves only 2 tests which use iomgr's API, notably the [dns_resolver_cooldown_test.cc](../blob/master/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc) and the [goaway_server_test.cc](../blob/master/test/core/end2end/goaway_server_test.cc) which probably need to be restructured to use EventEngine DNSResolver (for one thing they override the original grpc_ares_wrapper's free functions). I will try to tackle these in the next step. <!-- If you know who should review your pull request, please assign it to that person, otherwise the pull request would get assigned randomly. If your pull request is for a specific language, please add the appropriate lang label. -->
1 year ago
grpc_cc_library(
name = "get_grpc_test_runfile_dir",
srcs = [
"get_grpc_test_runfile_dir.cc",
],
hdrs = [
"get_grpc_test_runfile_dir.h",
],
external_deps = [
"absl/types:optional",
],
deps = [
"//src/core:env",
],
)