| # Copyright 2025 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/sleuth", | |
| features = [ | |
| "layering_check", | |
| "parse_headers", | |
| ], | |
| visibility = "public", | |
| ) | |
| grpc_cc_library( | |
| name = "client", | |
| srcs = ["client.cc"], | |
| hdrs = ["client.h"], | |
| external_deps = [ | |
| "absl/status:statusor", | |
| ], | |
| deps = [ | |
| "//:grpc++", | |
| "//:grpcpp_latent_see_client", | |
| "//src/core:endpoint_transport", | |
| "//src/core:latent_see", | |
| "//src/proto/grpc/channelz/v2:latent_see_cc_grpc", | |
| "//src/proto/grpc/channelz/v2:service_cc_grpc", | |
| ], | |
| ) | |
| grpc_cc_test( | |
| name = "client_test", | |
| srcs = ["client_test.cc"], | |
| external_deps = [ | |
| "gtest", | |
| "gtest_main", | |
| "absl/strings", | |
| ], | |
| tags = ["no_windows"], | |
| deps = [ | |
| ":client", | |
| "//:grpc++", | |
| "//:grpc++_base", | |
| "//:grpcpp_channelz", | |
| "//src/proto/grpc/channelz/v2:channelz_cc_proto", | |
| "//test/core/test_util:grpc_test_util", | |
| ], | |
| ) | |
| grpc_cc_library( | |
| name = "tool_test", | |
| testonly = True, | |
| srcs = ["tool_test.cc"], | |
| hdrs = ["tool_test.h"], | |
| external_deps = [ | |
| "absl/status:statusor", | |
| "absl/strings", | |
| "absl/status", | |
| ], | |
| deps = [ | |
| ":tool", | |
| ], | |
| ) | |
| grpc_cc_test( | |
| name = "tool_test_test", | |
| srcs = ["tool_test_test.cc"], | |
| external_deps = [ | |
| "gtest", | |
| "gtest_main", | |
| "absl/status", | |
| ], | |
| tags = ["no_windows"], | |
| deps = [ | |
| ":tool", | |
| ":tool_test", | |
| ], | |
| ) | |
| grpc_cc_test( | |
| name = "channelz_tool_test", | |
| srcs = ["channelz_tool_test.cc"], | |
| external_deps = [ | |
| "absl/flags:flag", | |
| "absl/strings", | |
| "gtest", | |
| "gtest_main", | |
| ], | |
| tags = ["no_windows"], | |
| deps = [ | |
| ":channelz_tool", | |
| ":tool", | |
| ":tool_test", | |
| "//:grpc++_public_hdrs", | |
| "//:grpcpp_channelz", | |
| "//test/core/test_util:grpc_test_util", | |
| ], | |
| ) | |
| grpc_cc_test( | |
| name = "info_tool_test", | |
| srcs = ["info_tool_test.cc"], | |
| external_deps = [ | |
| "absl/strings", | |
| "gtest", | |
| "gtest_main", | |
| ], | |
| tags = ["no_windows"], | |
| deps = [ | |
| ":info_tool", | |
| ":tool_test", | |
| ":version", | |
| ], | |
| ) | |
| grpc_cc_test( | |
| name = "latent_see_tool_test", | |
| srcs = ["latent_see_tool_test.cc"], | |
| external_deps = [ | |
| "absl/flags:flag", | |
| "absl/strings", | |
| "gtest", | |
| "gtest_main", | |
| ], | |
| tags = ["no_windows"], | |
| deps = [ | |
| ":latent_see_tool", | |
| ":tool_test", | |
| "//:grpc++_public_hdrs", | |
| "//:grpcpp_latent_see_service", | |
| "//test/core/test_util:grpc_test_util", | |
| ], | |
| ) | |
| grpc_cc_library( | |
| name = "sleuth_lib", | |
| srcs = ["sleuth.cc"], | |
| hdrs = ["sleuth.h"], | |
| external_deps = [ | |
| "absl/log:check", | |
| "absl/flags:flag", | |
| "absl/status", | |
| "absl/functional:any_invocable", | |
| ], | |
| deps = [ | |
| ":channelz_tool", | |
| ":info_tool", | |
| ":latent_see_tool", | |
| ":tool", | |
| ":version", | |
| "//test/cpp/util:test_config", | |
| ], | |
| alwayslink = True, | |
| ) | |
| # Shared library for gRPC Sleuth Python extension. | |
| grpc_cc_binary( | |
| name = "sleuth.so", | |
| linkshared = True, | |
| target_compatible_with = select({ | |
| "@platforms//os:windows": ["@platforms//:incompatible"], | |
| "//conditions:default": [], | |
| }), | |
| deps = [ | |
| ":sleuth_lib", | |
| ], | |
| ) | |
| grpc_cc_binary( | |
| name = "sleuth", | |
| srcs = ["sleuth_main.cc"], | |
| external_deps = [ | |
| "absl/flags:parse", | |
| ], | |
| visibility = [ | |
| "//bazel:sleuth", | |
| ], | |
| deps = [ | |
| ":sleuth_lib", | |
| ], | |
| ) | |
| grpc_cc_library( | |
| name = "tool", | |
| srcs = ["tool.cc"], | |
| hdrs = ["tool.h"], | |
| external_deps = [ | |
| "absl/container:flat_hash_map", | |
| "absl/functional:any_invocable", | |
| "absl/log:check", | |
| "absl/status", | |
| "absl/status:statusor", | |
| "absl/strings", | |
| "absl/strings:string_view", | |
| "absl/types:span", | |
| ], | |
| deps = [ | |
| "//:gpr_platform", | |
| "//:grpc_base", | |
| ], | |
| ) | |
| grpc_cc_library( | |
| name = "version", | |
| hdrs = ["version.h"], | |
| ) | |
| grpc_cc_library( | |
| name = "channelz_tool", | |
| srcs = ["channelz_tool.cc"], | |
| external_deps = [ | |
| "absl/status:status", | |
| "absl/flags:flag", | |
| "absl/strings", | |
| "absl/status:statusor", | |
| ], | |
| deps = [ | |
| ":client", | |
| ":tool", | |
| ":tool_options", | |
| "//:grpc_base", | |
| "//src/core:zviz_entity", | |
| "//src/core:zviz_environment", | |
| "//src/core:zviz_format_entity_list", | |
| "//src/core:zviz_layout", | |
| "//src/core:zviz_layout_text", | |
| "//src/core:zviz_trace", | |
| "//test/cpp/util:grpc_cli_utils", | |
| ], | |
| alwayslink = True, | |
| ) | |
| grpc_cc_library( | |
| name = "info_tool", | |
| srcs = ["info_tool.cc"], | |
| external_deps = [ | |
| "absl/status", | |
| ], | |
| deps = [ | |
| ":tool", | |
| ":version", | |
| ], | |
| alwayslink = True, | |
| ) | |
| grpc_cc_library( | |
| name = "latent_see_tool", | |
| srcs = ["latent_see_tool.cc"], | |
| external_deps = [ | |
| "absl/flags:flag", | |
| "absl/status:status", | |
| "absl/strings", | |
| ], | |
| deps = [ | |
| ":client", | |
| ":tool", | |
| ":tool_options", | |
| "//:grpc_base", | |
| "//src/core:latent_see", | |
| ], | |
| alwayslink = True, | |
| ) | |
| grpc_cc_library( | |
| name = "tool_credentials", | |
| srcs = ["tool_credentials.cc"], | |
| hdrs = ["tool_credentials.h"], | |
| external_deps = [ | |
| "absl/status:status", | |
| ], | |
| deps = [ | |
| "//:grpc++", | |
| "//test/cpp/util:grpc_cli_utils", | |
| ], | |
| ) | |
| grpc_cc_library( | |
| name = "tool_options", | |
| srcs = ["tool_options.cc"], | |
| hdrs = ["tool_options.h"], | |
| external_deps = [ | |
| "absl/flags:flag", | |
| "absl/strings", | |
| ], | |
| deps = [ | |
| ":client", | |
| ":tool_credentials", | |
| "//src/core:chaotic_good", | |
| ], | |
| ) |