# GRPC global cmake file
# This currently builds C and C++ code.
# This file has been automatically generated from a template file.
# Please look at the templates directory instead.
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
#
# Copyright 2015 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.




cmake_minimum_required(VERSION 3.8)

set(PACKAGE_NAME          "grpc")
set(PACKAGE_VERSION       "1.61.0-dev")
set(gRPC_CORE_VERSION     "37.0.0")
set(gRPC_CORE_SOVERSION   "37")
set(gRPC_CPP_VERSION      "1.61.0-dev")
set(gRPC_CPP_SOVERSION    "1.61")
set(PACKAGE_STRING        "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_TARNAME       "${PACKAGE_NAME}-${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT     "https://github.com/grpc/grpc/issues/")
project(${PACKAGE_NAME} LANGUAGES C CXX)

set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables")
set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries")
set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers")
set(gRPC_INSTALL_CMAKEDIR "lib/cmake/${PACKAGE_NAME}" CACHE STRING "Installation directory for cmake config files")
set(gRPC_INSTALL_SHAREDIR "share/grpc" CACHE STRING "Installation directory for root certificates")
set(gRPC_BUILD_MSVC_MP_COUNT 0 CACHE STRING "The maximum number of processes for MSVC /MP option")

# Options
option(gRPC_BUILD_TESTS "Build tests" OFF)
option(gRPC_BUILD_CODEGEN "Build codegen" ON)
option(gRPC_BACKWARDS_COMPATIBILITY_MODE "Build libraries that are binary compatible across a larger number of OS and libc versions" OFF)

set(gRPC_INSTALL_default ON)
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
  # Disable gRPC_INSTALL by default if building as a submodule
  set(gRPC_INSTALL_default OFF)
endif()
set(gRPC_INSTALL ${gRPC_INSTALL_default} CACHE BOOL
    "Generate installation target")

# We can install dependencies from submodules if we're running
# CMake v3.13 or newer.
if(CMAKE_VERSION VERSION_LESS 3.13)
  set(_gRPC_INSTALL_SUPPORTED_FROM_MODULE OFF)
else()
  set(_gRPC_INSTALL_SUPPORTED_FROM_MODULE ON)
endif()

# Providers for third-party dependencies (gRPC_*_PROVIDER properties):
# "module": build the dependency using sources from git submodule (under third_party)
# "package": use cmake's find_package functionality to locate a pre-installed dependency

set(gRPC_ZLIB_PROVIDER "module" CACHE STRING "Provider of zlib library")
set_property(CACHE gRPC_ZLIB_PROVIDER PROPERTY STRINGS "module" "package")

set(gRPC_CARES_PROVIDER "module" CACHE STRING "Provider of c-ares library")
set_property(CACHE gRPC_CARES_PROVIDER PROPERTY STRINGS "module" "package")

set(gRPC_RE2_PROVIDER "module" CACHE STRING "Provider of re2 library")
set_property(CACHE gRPC_RE2_PROVIDER PROPERTY STRINGS "module" "package")

set(gRPC_SSL_PROVIDER "module" CACHE STRING "Provider of ssl library")
set_property(CACHE gRPC_SSL_PROVIDER PROPERTY STRINGS "module" "package")

set(gRPC_PROTOBUF_PROVIDER "module" CACHE STRING "Provider of protobuf library")
set_property(CACHE gRPC_PROTOBUF_PROVIDER PROPERTY STRINGS "module" "package")

if(gRPC_BUILD_TESTS)
  set(gRPC_BENCHMARK_PROVIDER "module" CACHE STRING "Provider of benchmark library")
  set_property(CACHE gRPC_BENCHMARK_PROVIDER PROPERTY STRINGS "module" "package")
else()
  set(gRPC_BENCHMARK_PROVIDER "none")
endif()

set(gRPC_ABSL_PROVIDER "module" CACHE STRING "Provider of absl library")
set_property(CACHE gRPC_ABSL_PROVIDER PROPERTY STRINGS "module" "package")

set(gRPC_ABSL_USED_TARGETS
  absl_algorithm
  absl_algorithm_container
  absl_any_invocable
  absl_atomic_hook
  absl_bad_optional_access
  absl_bad_variant_access
  absl_base
  absl_base_internal
  absl_bind_front
  absl_bits
  absl_city
  absl_civil_time
  absl_cleanup
  absl_cleanup_internal
  absl_common_policy_traits
  absl_compressed_tuple
  absl_config
  absl_container_common
  absl_container_memory
  absl_cord
  absl_cord_internal
  absl_cordz_functions
  absl_cordz_handle
  absl_cordz_info
  absl_cordz_statistics
  absl_cordz_update_scope
  absl_cordz_update_tracker
  absl_core_headers
  absl_crc32c
  absl_crc_cord_state
  absl_crc_cpu_detect
  absl_crc_internal
  absl_debugging_internal
  absl_demangle_internal
  absl_dynamic_annotations
  absl_endian
  absl_errno_saver
  absl_exponential_biased
  absl_fast_type_id
  absl_fixed_array
  absl_flags
  absl_flags_commandlineflag
  absl_flags_commandlineflag_internal
  absl_flags_config
  absl_flags_internal
  absl_flags_marshalling
  absl_flags_path_util
  absl_flags_private_handle_accessor
  absl_flags_program_name
  absl_flags_reflection
  absl_flat_hash_map
  absl_flat_hash_set
  absl_function_ref
  absl_graphcycles_internal
  absl_hash
  absl_hash_function_defaults
  absl_hash_policy_traits
  absl_hashtable_debug_hooks
  absl_hashtablez_sampler
  absl_inlined_vector
  absl_inlined_vector_internal
  absl_int128
  absl_kernel_timeout_internal
  absl_layout
  absl_log_severity
  absl_low_level_hash
  absl_malloc_internal
  absl_memory
  absl_non_temporal_arm_intrinsics
  absl_non_temporal_memcpy
  absl_numeric_representation
  absl_optional
  absl_prefetch
  absl_random_bit_gen_ref
  absl_random_distributions
  absl_random_internal_distribution_caller
  absl_random_internal_fast_uniform_bits
  absl_random_internal_fastmath
  absl_random_internal_generate_real
  absl_random_internal_iostream_state_saver
  absl_random_internal_nonsecure_base
  absl_random_internal_pcg_engine
  absl_random_internal_platform
  absl_random_internal_pool_urbg
  absl_random_internal_randen
  absl_random_internal_randen_engine
  absl_random_internal_randen_hwaes
  absl_random_internal_randen_hwaes_impl
  absl_random_internal_randen_slow
  absl_random_internal_salted_seed_seq
  absl_random_internal_seed_material
  absl_random_internal_traits
  absl_random_internal_uniform_helper
  absl_random_internal_wide_multiply
  absl_random_random
  absl_random_seed_gen_exception
  absl_random_seed_sequences
  absl_raw_hash_map
  absl_raw_hash_set
  absl_raw_logging_internal
  absl_sample_recorder
  absl_span
  absl_spinlock_wait
  absl_stacktrace
  absl_status
  absl_statusor
  absl_str_format
  absl_str_format_internal
  absl_strerror
  absl_string_view
  absl_strings
  absl_strings_internal
  absl_symbolize
  absl_synchronization
  absl_throw_delegate
  absl_time
  absl_time_zone
  absl_type_traits
  absl_utility
  absl_variant
  absl_meta
)

set(gRPC_USE_PROTO_LITE OFF CACHE BOOL "Use the protobuf-lite library")

if(UNIX)
  if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    set(_gRPC_PLATFORM_LINUX ON)
  elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    set(_gRPC_PLATFORM_MAC ON)
  elseif(${CMAKE_SYSTEM_NAME} MATCHES "iOS")
    set(_gRPC_PLATFORM_IOS ON)
  elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android")
    set(_gRPC_PLATFORM_ANDROID ON)
  else()
    set(_gRPC_PLATFORM_POSIX ON)
  endif()
endif()
if(WIN32)
  set(_gRPC_PLATFORM_WINDOWS ON)
endif()

if (APPLE AND NOT DEFINED CMAKE_CXX_STANDARD)
  # AppleClang defaults to C++98, so we bump it to C++14.
  message("CMAKE_CXX_STANDARD was undefined, defaulting to C++14.")
  set(CMAKE_CXX_STANDARD 14)
endif ()

if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
  set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")

if(MSVC)
  include(cmake/msvc_static_runtime.cmake)
  add_definitions(-D_WIN32_WINNT=0x600 -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS)
  # Set /MP option
  if (gRPC_BUILD_MSVC_MP_COUNT GREATER 0)
    set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /MP${gRPC_BUILD_MSVC_MP_COUNT}")
  elseif (gRPC_BUILD_MSVC_MP_COUNT LESS 0)
    set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /MP")
  endif()
  # needed to compile protobuf
  set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4065 /wd4506")
  # TODO(jtattermusch): revisit warnings that were silenced as part of upgrade to protobuf3.6.0
  set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4200 /wd4291 /wd4244")
  # TODO(jtattermusch): revisit C4267 occurrences throughout the code
  set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4267")
  # TODO(jtattermusch): needed to build boringssl with VS2017, revisit later
  set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4987 /wd4774 /wd4819 /wd4996 /wd4619")
  # Silences thousands of trucation warnings
  set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4503")
  # Tell MSVC to build grpc using utf-8
  set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /utf-8")
endif()
if (MINGW)
  add_definitions(-D_WIN32_WINNT=0x600)
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_gRPC_C_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_gRPC_C_CXX_FLAGS}")

if(gRPC_USE_PROTO_LITE)
  set(_gRPC_PROTOBUF_LIBRARY_NAME "libprotobuf-lite")
  add_definitions("-DGRPC_USE_PROTO_LITE")
else()
  set(_gRPC_PROTOBUF_LIBRARY_NAME "libprotobuf")
endif()

if(gRPC_BACKWARDS_COMPATIBILITY_MODE)
  add_definitions(-DGPR_BACKWARDS_COMPATIBILITY_MODE)
  if(_gRPC_PLATFORM_MAC)
    # some C++11 constructs not supported before OS X 10.10
    set(CMAKE_OSX_DEPLOYMENT_TARGET 10.10)
  endif()
endif()

if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_IOS)
  set(_gRPC_CORE_NOSTDCXX_FLAGS -fno-exceptions -fno-rtti)
else()
  set(_gRPC_CORE_NOSTDCXX_FLAGS "")
endif()

if(UNIX AND NOT HAIKU)
  # -pthread does more than -lpthread
  set(THREADS_PREFER_PTHREAD_FLAG ON)
  find_package(Threads)
  set(_gRPC_ALLTARGETS_LIBRARIES ${CMAKE_DL_LIBS} m Threads::Threads)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    find_library(LIBRT rt)
    if(LIBRT)
      set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} rt)
    endif()
  endif()
endif()

include(CheckCXXSourceCompiles)

if(UNIX OR APPLE)
  # Some systems require the __STDC_FORMAT_MACROS macro to be defined
  # to get the fixed-width integer type formatter macros.
  check_cxx_source_compiles("#include <inttypes.h>
  #include <cstdio>
  int main()
  {
    int64_t i64{};
    std::printf(\"%\" PRId64, i64);
  }"
  HAVE_STDC_FORMAT_MACROS)
  if(NOT HAVE_STDC_FORMAT_MACROS)
    add_definitions(-D__STDC_FORMAT_MACROS)
  endif()
endif()

# configure ccache if requested
include(cmake/ccache.cmake)

include(cmake/abseil-cpp.cmake)
include(cmake/address_sorting.cmake)
include(cmake/benchmark.cmake)
include(cmake/cares.cmake)
include(cmake/protobuf.cmake)
include(cmake/re2.cmake)
include(cmake/ssl.cmake)
include(cmake/upb.cmake)
include(cmake/xxhash.cmake)
include(cmake/zlib.cmake)
include(cmake/download_archive.cmake)

if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
  include(cmake/systemd.cmake)
  set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} ${_gRPC_SYSTEMD_LIBRARIES})
endif()

# Setup external proto library at third_party/envoy-api with 2 download URLs
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/envoy-api.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api
    https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/9d6ffa70677c4dbf23f6ed569676206c4e2edff4.tar.gz
    fff067a5d6d776fc88549b5dd4773a6f8f0187b26a859de8b29bd4226a28ee63
    data-plane-api-9d6ffa70677c4dbf23f6ed569676206c4e2edff4
  )
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/envoy-api.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api
    https://github.com/envoyproxy/data-plane-api/archive/9d6ffa70677c4dbf23f6ed569676206c4e2edff4.tar.gz
    fff067a5d6d776fc88549b5dd4773a6f8f0187b26a859de8b29bd4226a28ee63
    data-plane-api-9d6ffa70677c4dbf23f6ed569676206c4e2edff4
  )
endif()
# Setup external proto library at third_party/googleapis with 2 download URLs
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googleapis)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/googleapis.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googleapis
    https://storage.googleapis.com/grpc-bazel-mirror/github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz
    5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0
    googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92
  )
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googleapis)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/googleapis.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googleapis
    https://github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz
    5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0
    googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92
  )
endif()
# Setup external proto library at third_party/opencensus-proto/src with 2 download URLs
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/opencensus-proto/src)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/opencensus-proto/src.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/opencensus-proto/src
    https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz
    b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0
    opencensus-proto-0.3.0/src
  )
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/opencensus-proto/src)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/opencensus-proto/src.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/opencensus-proto/src
    https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz
    b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0
    opencensus-proto-0.3.0/src
  )
endif()
# Setup external proto library at third_party/xds with 2 download URLs
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/xds.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds
    https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7.tar.gz
    0d33b83f8c6368954e72e7785539f0d272a8aba2f6e2e336ed15fd1514bc9899
    xds-e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7
  )
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds)
  # Download the archive via HTTP, validate the checksum, and extract to third_party/xds.
  download_archive(
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds
    https://github.com/cncf/xds/archive/e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7.tar.gz
    0d33b83f8c6368954e72e7785539f0d272a8aba2f6e2e336ed15fd1514bc9899
    xds-e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7
  )
endif()

if(WIN32)
  set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} ws2_32 crypt32)
  set(_gRPC_STATIC_WIN32 STATIC)
endif()

if(BUILD_SHARED_LIBS AND WIN32)

# Currently for shared lib on Windows (i.e. a DLL) certain bits of source code
# are generated from protobuf definitions by upbc. This source code does not include
# annotations needed to export these functions from gprc.lib so we have to
# re-include a small subset of these.
#
# This is not an ideal situation because these functions will be unavailable
# to clients of grpc and the libraries that need this (e.g. grpc++) will
# include redundant duplicate code. Hence, the duplication is only activated
# for DLL builds - and should be completely removed when source files are
# generated with the necessary __declspec annotations.
set(gRPC_UPB_GEN_DUPL_SRC
  src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c
)
set(gRPC_ADDITIONAL_DLL_SRC
  src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc
  src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc
)

endif() # BUILD_SHARED_LIBS AND WIN32

# Create directory for proto source files
set(_gRPC_PROTO_SRCS_DIR ${CMAKE_BINARY_DIR}/protos)
file(MAKE_DIRECTORY ${_gRPC_PROTO_SRCS_DIR})
# Create directory for generated .proto files
set(_gRPC_PROTO_GENS_DIR ${CMAKE_BINARY_DIR}/gens)
file(MAKE_DIRECTORY ${_gRPC_PROTO_GENS_DIR})

#  protobuf_generate_grpc_cpp
#  --------------------------
#
#   This method is no longer used by gRPC's CMake build process. However, it
#   is used by many open source dependencies, that we might want to keep
#   backward compatibility here.
#
#   Add custom commands to process ``.proto`` files to C++ using protoc and
#   GRPC plugin::
#
#     protobuf_generate_grpc_cpp [<ARGN>...]
#
#   ``ARGN``
#     ``.proto`` files
#
function(protobuf_generate_grpc_cpp)
  if(NOT ARGN)
    message(SEND_ERROR "Error: PROTOBUF_GENERATE_GRPC_CPP() called without any proto files")
    return()
  endif()

  foreach(FIL ${ARGN})
    protobuf_generate_grpc_cpp_with_import_path_correction(${FIL} ${FIL})
  endforeach()
endfunction()

#  protobuf_generate_grpc_cpp_with_import_path_correction
#  --------------------------
#
#   Add custom commands to process ``.proto`` files to C++ using protoc and
#   GRPC plugin::
#
#     protobuf_generate_grpc_cpp_with_import_path_correction <FILE_LOCATION> <IMPORT_PATH>
#
#   ``FILE_LOCATION``
#     The relative path of the ``.proto`` file to the project root
#   ``IMPORT_PATH``
#     The proto import path that itself expected to be placed in. For
#     example, a "bar.proto" file wants to be imported as
#     `import "foo/bar.proto"`. Then we should place it under
#     "<ProtoBuf_Include_Path>/foo/bar.proto" instead of
#     "<ProtoBuf_Include_Path>/third_party/foo/bar.proto". This ensures
#     correct symbol being generated and C++ include path being correct.
#     More info can be found at https://github.com/grpc/grpc/pull/25272.
#
function(protobuf_generate_grpc_cpp_with_import_path_correction FILE_LOCATION IMPORT_PATH)
  if(NOT FILE_LOCATION)
    message(SEND_ERROR "Error: PROTOBUF_GENERATE_GRPC_CPP() called without any proto files")
    return()
  endif()

  # Sets the include path for ProtoBuf files
  set(_protobuf_include_path -I . -I ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR})
  # The absolute path of the expected place for the input proto file
  # For example, health proto has package name grpc.health.v1, it's expected to be:
  #   ${_gRPC_PROTO_SRCS_DIR}/grpc/health/v1/health.proto
  get_filename_component(ABS_FIL ${_gRPC_PROTO_SRCS_DIR}/${IMPORT_PATH} ABSOLUTE)
  # Get the name of the file, which used to generate output file names for
  # this command.
  # Example: "health" for "health.proto"
  get_filename_component(FIL_WE ${_gRPC_PROTO_SRCS_DIR}/${IMPORT_PATH} NAME_WE)
  # Get the relative path between the expected place for the proto and the
  # working directory. In normal cases, it would be equal IMPORT_PATH, but
  # it's better to be agnostic to all the global folder locations (like the
  # centralized location ${_gRPC_PROTO_SRCS_DIR}).
  # Example: grpc/health/v1/health.proto
  file(RELATIVE_PATH REL_FIL ${_gRPC_PROTO_SRCS_DIR} ${ABS_FIL})
  # Get the directory of the relative path.
  # Example: grpc/health/v1
  get_filename_component(REL_DIR ${REL_FIL} DIRECTORY)
  # Get the directory and name for output filenames generation.
  # Example: "grpc/health/v1/health", the file name extension is omitted.
  set(RELFIL_WE "${REL_DIR}/${FIL_WE}")
  # Copy the proto file to a centralized location, with the correct import
  # path. For example, health proto has package name grpc.health.v1, the bash
  # equivalent would be:
  #   cp src/proto/grpc/health/v1/health.proto ${_gRPC_PROTO_SRCS_DIR}/grpc/health/v1
  file(MAKE_DIRECTORY ${_gRPC_PROTO_SRCS_DIR}/${REL_DIR})
  file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/${FILE_LOCATION} DESTINATION ${_gRPC_PROTO_SRCS_DIR}/${REL_DIR})

  #if cross-compiling, find host plugin
  if(CMAKE_CROSSCOMPILING)
    find_program(_gRPC_CPP_PLUGIN grpc_cpp_plugin)
  else()
    set(_gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
  endif()

  add_custom_command(
    OUTPUT "${_gRPC_PROTO_GENS_DIR}/${RELFIL_WE}.grpc.pb.cc"
           "${_gRPC_PROTO_GENS_DIR}/${RELFIL_WE}.grpc.pb.h"
           "${_gRPC_PROTO_GENS_DIR}/${RELFIL_WE}_mock.grpc.pb.h"
           "${_gRPC_PROTO_GENS_DIR}/${RELFIL_WE}.pb.cc"
           "${_gRPC_PROTO_GENS_DIR}/${RELFIL_WE}.pb.h"
    COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}
    ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}
         --cpp_out=${_gRPC_PROTO_GENS_DIR}
         --plugin=protoc-gen-grpc=${_gRPC_CPP_PLUGIN}
         ${_protobuf_include_path}
         ${REL_FIL}
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE_LOCATION} ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} ${_gRPC_CPP_PLUGIN}
    WORKING_DIRECTORY ${_gRPC_PROTO_SRCS_DIR}
    COMMENT "Running gRPC C++ protocol buffer compiler for ${IMPORT_PATH}"
    VERBATIM)
endfunction()

# These options allow users to enable or disable the building of the various
# protoc plugins. For example, running CMake with
# -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF will disable building the C# plugin.
set(_gRPC_PLUGIN_LIST)
option(gRPC_BUILD_GRPC_CPP_PLUGIN "Build grpc_cpp_plugin" ON)
if (gRPC_BUILD_GRPC_CPP_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_cpp_plugin)
endif ()
option(gRPC_BUILD_GRPC_CSHARP_PLUGIN "Build grpc_csharp_plugin" ON)
if (gRPC_BUILD_GRPC_CSHARP_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_csharp_plugin)
endif ()
option(gRPC_BUILD_GRPC_NODE_PLUGIN "Build grpc_node_plugin" ON)
if (gRPC_BUILD_GRPC_NODE_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_node_plugin)
endif ()
option(gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN "Build grpc_objective_c_plugin" ON)
if (gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_objective_c_plugin)
endif ()
option(gRPC_BUILD_GRPC_PHP_PLUGIN "Build grpc_php_plugin" ON)
if (gRPC_BUILD_GRPC_PHP_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_php_plugin)
endif ()
option(gRPC_BUILD_GRPC_PYTHON_PLUGIN "Build grpc_python_plugin" ON)
if (gRPC_BUILD_GRPC_PYTHON_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_python_plugin)
endif ()
option(gRPC_BUILD_GRPC_RUBY_PLUGIN "Build grpc_ruby_plugin" ON)
if (gRPC_BUILD_GRPC_RUBY_PLUGIN)
  list(APPEND _gRPC_PLUGIN_LIST grpc_ruby_plugin)
endif ()

add_custom_target(plugins
  DEPENDS ${_gRPC_PLUGIN_LIST}
)

add_custom_target(tools_c
  DEPENDS
)

add_custom_target(tools_cxx
  DEPENDS
)

add_custom_target(tools
  DEPENDS tools_c tools_cxx)

protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/channelz/channelz.proto src/proto/grpc/channelz/channelz.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/health/v1/health.proto src/proto/grpc/health/v1/health.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/lb/v1/load_balancer.proto src/proto/grpc/lb/v1/load_balancer.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/lookup/v1/rls.proto src/proto/grpc/lookup/v1/rls.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/lookup/v1/rls_config.proto src/proto/grpc/lookup/v1/rls_config.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/reflection/v1/reflection.proto src/proto/grpc/reflection/v1/reflection.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/reflection/v1alpha/reflection.proto src/proto/grpc/reflection/v1alpha/reflection.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/status/status.proto src/proto/grpc/status/status.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/benchmark_service.proto src/proto/grpc/testing/benchmark_service.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/control.proto src/proto/grpc/testing/control.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/duplicate/echo_duplicate.proto src/proto/grpc/testing/duplicate/echo_duplicate.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/echo.proto src/proto/grpc/testing/echo.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/echo_messages.proto src/proto/grpc/testing/echo_messages.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/empty.proto src/proto/grpc/testing/empty.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/istio_echo.proto src/proto/grpc/testing/istio_echo.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/messages.proto src/proto/grpc/testing/messages.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/payloads.proto src/proto/grpc/testing/payloads.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/report_qps_scenario_service.proto src/proto/grpc/testing/report_qps_scenario_service.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/simple_messages.proto src/proto/grpc/testing/simple_messages.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/stats.proto src/proto/grpc/testing/stats.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/test.proto src/proto/grpc/testing/test.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/worker_service.proto src/proto/grpc/testing/worker_service.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/address.proto src/proto/grpc/testing/xds/v3/address.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/ads.proto src/proto/grpc/testing/xds/v3/ads.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/aggregate_cluster.proto src/proto/grpc/testing/xds/v3/aggregate_cluster.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/audit_logger_stream.proto src/proto/grpc/testing/xds/v3/audit_logger_stream.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/base.proto src/proto/grpc/testing/xds/v3/base.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.proto src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/cluster.proto src/proto/grpc/testing/xds/v3/cluster.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/config_dump.proto src/proto/grpc/testing/xds/v3/config_dump.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/config_source.proto src/proto/grpc/testing/xds/v3/config_source.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/cookie.proto src/proto/grpc/testing/xds/v3/cookie.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/csds.proto src/proto/grpc/testing/xds/v3/csds.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/discovery.proto src/proto/grpc/testing/xds/v3/discovery.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/endpoint.proto src/proto/grpc/testing/xds/v3/endpoint.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/expr.proto src/proto/grpc/testing/xds/v3/expr.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/extension.proto src/proto/grpc/testing/xds/v3/extension.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/fault.proto src/proto/grpc/testing/xds/v3/fault.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/fault_common.proto src/proto/grpc/testing/xds/v3/fault_common.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/health_check.proto src/proto/grpc/testing/xds/v3/health_check.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/http_connection_manager.proto src/proto/grpc/testing/xds/v3/http_connection_manager.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/http_filter_rbac.proto src/proto/grpc/testing/xds/v3/http_filter_rbac.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/listener.proto src/proto/grpc/testing/xds/v3/listener.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/load_report.proto src/proto/grpc/testing/xds/v3/load_report.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/lrs.proto src/proto/grpc/testing/xds/v3/lrs.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/metadata.proto src/proto/grpc/testing/xds/v3/metadata.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/orca_load_report.proto src/proto/grpc/testing/xds/v3/orca_load_report.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/orca_service.proto src/proto/grpc/testing/xds/v3/orca_service.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/outlier_detection.proto src/proto/grpc/testing/xds/v3/outlier_detection.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/path.proto src/proto/grpc/testing/xds/v3/path.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/percent.proto src/proto/grpc/testing/xds/v3/percent.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/pick_first.proto src/proto/grpc/testing/xds/v3/pick_first.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/protocol.proto src/proto/grpc/testing/xds/v3/protocol.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/range.proto src/proto/grpc/testing/xds/v3/range.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/rbac.proto src/proto/grpc/testing/xds/v3/rbac.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/regex.proto src/proto/grpc/testing/xds/v3/regex.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/ring_hash.proto src/proto/grpc/testing/xds/v3/ring_hash.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/round_robin.proto src/proto/grpc/testing/xds/v3/round_robin.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/route.proto src/proto/grpc/testing/xds/v3/route.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/router.proto src/proto/grpc/testing/xds/v3/router.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/stateful_session.proto src/proto/grpc/testing/xds/v3/stateful_session.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/stateful_session_cookie.proto src/proto/grpc/testing/xds/v3/stateful_session_cookie.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/string.proto src/proto/grpc/testing/xds/v3/string.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/tls.proto src/proto/grpc/testing/xds/v3/tls.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/typed_struct.proto src/proto/grpc/testing/xds/v3/typed_struct.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/udpa_typed_struct.proto src/proto/grpc/testing/xds/v3/udpa_typed_struct.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  src/proto/grpc/testing/xds/v3/wrr_locality.proto src/proto/grpc/testing/xds/v3/wrr_locality.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  test/core/tsi/alts/fake_handshaker/handshaker.proto test/core/tsi/alts/fake_handshaker/handshaker.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  test/core/tsi/alts/fake_handshaker/transport_security_common.proto test/core/tsi/alts/fake_handshaker/transport_security_common.proto
)
protobuf_generate_grpc_cpp_with_import_path_correction(
  test/core/util/fuzz_config_vars.proto test/core/util/fuzz_config_vars.proto
)

if(gRPC_BUILD_TESTS)
  add_custom_target(buildtests_c)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_c fd_conservation_posix_test)
  endif()
  add_dependencies(buildtests_c multiple_server_queues_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)
    add_dependencies(buildtests_c pollset_windows_starvation_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_c static_stride_scheduler_benchmark)
  endif()
  add_dependencies(buildtests_c test_core_iomgr_timer_list_test)

  add_custom_target(buildtests_cxx)
  add_dependencies(buildtests_cxx activity_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx address_sorting_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx address_sorting_test_unsecure)
  endif()
  add_dependencies(buildtests_cxx admin_services_end2end_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx alarm_test)
  endif()
  add_dependencies(buildtests_cxx alloc_test)
  add_dependencies(buildtests_cxx alpn_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx alts_concurrent_connectivity_test)
  endif()
  add_dependencies(buildtests_cxx alts_counter_test)
  add_dependencies(buildtests_cxx alts_crypt_test)
  add_dependencies(buildtests_cxx alts_crypter_test)
  add_dependencies(buildtests_cxx alts_frame_protector_test)
  add_dependencies(buildtests_cxx alts_grpc_record_protocol_test)
  add_dependencies(buildtests_cxx alts_handshaker_client_test)
  add_dependencies(buildtests_cxx alts_iovec_record_protocol_test)
  add_dependencies(buildtests_cxx alts_security_connector_test)
  add_dependencies(buildtests_cxx alts_tsi_handshaker_test)
  add_dependencies(buildtests_cxx alts_tsi_utils_test)
  add_dependencies(buildtests_cxx alts_util_test)
  add_dependencies(buildtests_cxx alts_zero_copy_grpc_protector_test)
  add_dependencies(buildtests_cxx arena_promise_test)
  add_dependencies(buildtests_cxx arena_test)
  add_dependencies(buildtests_cxx async_end2end_test)
  add_dependencies(buildtests_cxx auth_context_test)
  add_dependencies(buildtests_cxx auth_property_iterator_test)
  add_dependencies(buildtests_cxx authorization_matchers_test)
  add_dependencies(buildtests_cxx authorization_policy_provider_test)
  add_dependencies(buildtests_cxx avl_test)
  add_dependencies(buildtests_cxx aws_request_signer_test)
  add_dependencies(buildtests_cxx b64_test)
  add_dependencies(buildtests_cxx backoff_test)
  add_dependencies(buildtests_cxx bad_ping_test)
  add_dependencies(buildtests_cxx bad_server_response_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx bad_ssl_alpn_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx bad_ssl_cert_test)
  endif()
  add_dependencies(buildtests_cxx bad_streaming_id_bad_client_test)
  add_dependencies(buildtests_cxx badreq_bad_client_test)
  add_dependencies(buildtests_cxx basic_work_queue_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx bdp_estimator_test)
  endif()
  add_dependencies(buildtests_cxx bin_decoder_test)
  add_dependencies(buildtests_cxx bin_encoder_test)
  add_dependencies(buildtests_cxx binary_metadata_test)
  add_dependencies(buildtests_cxx binder_resolver_test)
  add_dependencies(buildtests_cxx binder_server_test)
  add_dependencies(buildtests_cxx binder_transport_test)
  add_dependencies(buildtests_cxx bitset_test)
  add_dependencies(buildtests_cxx buffer_list_test)
  add_dependencies(buildtests_cxx byte_buffer_test)
  add_dependencies(buildtests_cxx c_slice_buffer_test)
  add_dependencies(buildtests_cxx call_creds_test)
  add_dependencies(buildtests_cxx call_finalization_test)
  add_dependencies(buildtests_cxx call_host_override_test)
  add_dependencies(buildtests_cxx call_tracer_test)
  add_dependencies(buildtests_cxx cancel_after_accept_test)
  add_dependencies(buildtests_cxx cancel_after_client_done_test)
  add_dependencies(buildtests_cxx cancel_after_invoke_test)
  add_dependencies(buildtests_cxx cancel_after_round_trip_test)
  add_dependencies(buildtests_cxx cancel_ares_query_test)
  add_dependencies(buildtests_cxx cancel_before_invoke_test)
  add_dependencies(buildtests_cxx cancel_callback_test)
  add_dependencies(buildtests_cxx cancel_in_a_vacuum_test)
  add_dependencies(buildtests_cxx cancel_with_status_test)
  add_dependencies(buildtests_cxx cel_authorization_engine_test)
  add_dependencies(buildtests_cxx certificate_provider_registry_test)
  add_dependencies(buildtests_cxx certificate_provider_store_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx cf_engine_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx cf_event_engine_test)
  endif()
  add_dependencies(buildtests_cxx cfstream_test)
  add_dependencies(buildtests_cxx channel_args_test)
  add_dependencies(buildtests_cxx channel_arguments_test)
  add_dependencies(buildtests_cxx channel_creds_registry_test)
  add_dependencies(buildtests_cxx channel_init_test)
  add_dependencies(buildtests_cxx channel_stack_builder_test)
  add_dependencies(buildtests_cxx channel_stack_test)
  add_dependencies(buildtests_cxx channel_trace_test)
  add_dependencies(buildtests_cxx channelz_registry_test)
  add_dependencies(buildtests_cxx channelz_service_test)
  add_dependencies(buildtests_cxx check_gcp_environment_linux_test)
  add_dependencies(buildtests_cxx check_gcp_environment_windows_test)
  add_dependencies(buildtests_cxx chunked_vector_test)
  add_dependencies(buildtests_cxx cli_call_test)
  add_dependencies(buildtests_cxx client_auth_filter_test)
  add_dependencies(buildtests_cxx client_authority_filter_test)
  add_dependencies(buildtests_cxx client_callback_end2end_test)
  add_dependencies(buildtests_cxx client_channel_service_config_test)
  add_dependencies(buildtests_cxx client_channel_test)
  add_dependencies(buildtests_cxx client_context_test_peer_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx client_fork_test)
  endif()
  add_dependencies(buildtests_cxx client_interceptors_end2end_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx client_lb_end2end_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx client_ssl_test)
  endif()
  add_dependencies(buildtests_cxx client_streaming_test)
  add_dependencies(buildtests_cxx client_transport_error_test)
  add_dependencies(buildtests_cxx client_transport_test)
  add_dependencies(buildtests_cxx cmdline_test)
  add_dependencies(buildtests_cxx codegen_test_full)
  add_dependencies(buildtests_cxx codegen_test_minimal)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx combiner_test)
  endif()
  add_dependencies(buildtests_cxx common_closures_test)
  add_dependencies(buildtests_cxx completion_queue_threading_test)
  add_dependencies(buildtests_cxx compressed_payload_test)
  add_dependencies(buildtests_cxx compression_test)
  add_dependencies(buildtests_cxx concurrent_connectivity_test)
  add_dependencies(buildtests_cxx connection_prefix_bad_client_test)
  add_dependencies(buildtests_cxx connection_refused_test)
  add_dependencies(buildtests_cxx connectivity_state_test)
  add_dependencies(buildtests_cxx connectivity_test)
  add_dependencies(buildtests_cxx context_allocator_end2end_test)
  add_dependencies(buildtests_cxx context_test)
  add_dependencies(buildtests_cxx core_configuration_test)
  add_dependencies(buildtests_cxx cpp_impl_of_test)
  add_dependencies(buildtests_cxx cpu_test)
  add_dependencies(buildtests_cxx crl_provider_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx crl_ssl_transport_security_test)
  endif()
  add_dependencies(buildtests_cxx default_engine_methods_test)
  add_dependencies(buildtests_cxx default_host_test)
  add_dependencies(buildtests_cxx delegating_channel_test)
  add_dependencies(buildtests_cxx destroy_grpclb_channel_with_active_connect_stress_test)
  add_dependencies(buildtests_cxx directory_reader_test)
  add_dependencies(buildtests_cxx disappearing_server_test)
  add_dependencies(buildtests_cxx dns_resolver_cooldown_test)
  add_dependencies(buildtests_cxx dns_resolver_test)
  add_dependencies(buildtests_cxx dual_ref_counted_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx dualstack_socket_test)
  endif()
  add_dependencies(buildtests_cxx duplicate_header_bad_client_test)
  add_dependencies(buildtests_cxx empty_batch_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx end2end_binder_transport_test)
  endif()
  add_dependencies(buildtests_cxx end2end_test)
  add_dependencies(buildtests_cxx endpoint_addresses_test)
  add_dependencies(buildtests_cxx endpoint_binder_pool_test)
  add_dependencies(buildtests_cxx endpoint_config_test)
  add_dependencies(buildtests_cxx endpoint_pair_test)
  add_dependencies(buildtests_cxx env_test)
  add_dependencies(buildtests_cxx error_details_test)
  add_dependencies(buildtests_cxx error_test)
  add_dependencies(buildtests_cxx error_utils_test)
  add_dependencies(buildtests_cxx evaluate_args_test)
  add_dependencies(buildtests_cxx event_engine_wakeup_scheduler_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx event_poller_posix_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx examine_stack_test)
  endif()
  add_dependencies(buildtests_cxx exception_test)
  add_dependencies(buildtests_cxx exec_ctx_wakeup_scheduler_test)
  add_dependencies(buildtests_cxx experiments_tag_test)
  add_dependencies(buildtests_cxx experiments_test)
  add_dependencies(buildtests_cxx factory_test)
  add_dependencies(buildtests_cxx fake_binder_test)
  add_dependencies(buildtests_cxx fake_resolver_test)
  add_dependencies(buildtests_cxx fake_transport_security_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx fd_posix_test)
  endif()
  add_dependencies(buildtests_cxx file_watcher_certificate_provider_factory_test)
  add_dependencies(buildtests_cxx filter_causes_close_test)
  add_dependencies(buildtests_cxx filter_context_test)
  add_dependencies(buildtests_cxx filter_init_fails_test)
  add_dependencies(buildtests_cxx filter_test_test)
  add_dependencies(buildtests_cxx filtered_metadata_test)
  add_dependencies(buildtests_cxx flaky_network_test)
  add_dependencies(buildtests_cxx flow_control_test)
  add_dependencies(buildtests_cxx for_each_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx fork_test)
  endif()
  add_dependencies(buildtests_cxx forkable_test)
  add_dependencies(buildtests_cxx format_request_test)
  add_dependencies(buildtests_cxx frame_handler_test)
  add_dependencies(buildtests_cxx frame_header_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx fuzzing_event_engine_test)
  endif()
  add_dependencies(buildtests_cxx fuzzing_event_engine_unittest)
  add_dependencies(buildtests_cxx generic_end2end_test)
  add_dependencies(buildtests_cxx goaway_server_test)
  add_dependencies(buildtests_cxx google_c2p_resolver_test)
  add_dependencies(buildtests_cxx graceful_server_shutdown_test)
  add_dependencies(buildtests_cxx graceful_shutdown_test)
  add_dependencies(buildtests_cxx grpc_alts_credentials_options_test)
  add_dependencies(buildtests_cxx grpc_audit_logging_test)
  add_dependencies(buildtests_cxx grpc_authorization_engine_test)
  add_dependencies(buildtests_cxx grpc_authorization_policy_provider_test)
  add_dependencies(buildtests_cxx grpc_authz_end2end_test)
  add_dependencies(buildtests_cxx grpc_authz_test)
  add_dependencies(buildtests_cxx grpc_byte_buffer_reader_test)
  add_dependencies(buildtests_cxx grpc_cli)
  add_dependencies(buildtests_cxx grpc_completion_queue_test)
  add_dependencies(buildtests_cxx grpc_ipv6_loopback_available_test)
  add_dependencies(buildtests_cxx grpc_tls_certificate_distributor_test)
  add_dependencies(buildtests_cxx grpc_tls_certificate_provider_test)
  add_dependencies(buildtests_cxx grpc_tls_certificate_verifier_test)
  add_dependencies(buildtests_cxx grpc_tls_credentials_options_comparator_test)
  add_dependencies(buildtests_cxx grpc_tls_credentials_options_test)
  add_dependencies(buildtests_cxx grpc_tls_crl_provider_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx grpc_tool_test)
  endif()
  add_dependencies(buildtests_cxx grpclb_api_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx grpclb_end2end_test)
  endif()
  add_dependencies(buildtests_cxx h2_ssl_cert_test)
  add_dependencies(buildtests_cxx h2_ssl_session_reuse_test)
  add_dependencies(buildtests_cxx h2_tls_peer_property_external_verifier_test)
  add_dependencies(buildtests_cxx handle_tests)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx handshake_server_with_readahead_handshaker_test)
  endif()
  add_dependencies(buildtests_cxx head_of_line_blocking_bad_client_test)
  add_dependencies(buildtests_cxx headers_bad_client_test)
  add_dependencies(buildtests_cxx health_service_end2end_test)
  add_dependencies(buildtests_cxx high_initial_seqno_test)
  add_dependencies(buildtests_cxx histogram_test)
  add_dependencies(buildtests_cxx host_port_test)
  add_dependencies(buildtests_cxx hpack_encoder_test)
  add_dependencies(buildtests_cxx hpack_parser_table_test)
  add_dependencies(buildtests_cxx hpack_parser_test)
  add_dependencies(buildtests_cxx hpack_size_test)
  add_dependencies(buildtests_cxx http2_client)
  add_dependencies(buildtests_cxx http2_stats_test)
  add_dependencies(buildtests_cxx http_proxy_mapper_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx httpcli_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx httpscli_test)
  endif()
  add_dependencies(buildtests_cxx hybrid_end2end_test)
  add_dependencies(buildtests_cxx idle_filter_state_test)
  add_dependencies(buildtests_cxx if_list_test)
  add_dependencies(buildtests_cxx if_test)
  add_dependencies(buildtests_cxx init_test)
  add_dependencies(buildtests_cxx initial_settings_frame_bad_client_test)
  add_dependencies(buildtests_cxx insecure_security_connector_test)
  add_dependencies(buildtests_cxx inter_activity_latch_test)
  add_dependencies(buildtests_cxx inter_activity_pipe_test)
  add_dependencies(buildtests_cxx interceptor_list_test)
  add_dependencies(buildtests_cxx interop_client)
  add_dependencies(buildtests_cxx interop_server)
  add_dependencies(buildtests_cxx invalid_call_argument_test)
  add_dependencies(buildtests_cxx invoke_large_request_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)
    add_dependencies(buildtests_cxx iocp_test)
  endif()
  add_dependencies(buildtests_cxx istio_echo_server_test)
  add_dependencies(buildtests_cxx join_test)
  add_dependencies(buildtests_cxx json_object_loader_test)
  add_dependencies(buildtests_cxx json_test)
  add_dependencies(buildtests_cxx json_token_test)
  add_dependencies(buildtests_cxx jwt_verifier_test)
  add_dependencies(buildtests_cxx keepalive_timeout_test)
  add_dependencies(buildtests_cxx lame_client_test)
  add_dependencies(buildtests_cxx large_metadata_test)
  add_dependencies(buildtests_cxx latch_test)
  add_dependencies(buildtests_cxx lb_get_cpu_stats_test)
  add_dependencies(buildtests_cxx lb_load_data_store_test)
  add_dependencies(buildtests_cxx load_config_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx lock_free_event_test)
  endif()
  add_dependencies(buildtests_cxx log_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx log_too_many_open_files_test)
  endif()
  add_dependencies(buildtests_cxx loop_test)
  add_dependencies(buildtests_cxx map_pipe_test)
  add_dependencies(buildtests_cxx match_test)
  add_dependencies(buildtests_cxx matchers_test)
  add_dependencies(buildtests_cxx max_concurrent_streams_policy_test)
  add_dependencies(buildtests_cxx max_concurrent_streams_test)
  add_dependencies(buildtests_cxx max_connection_age_test)
  add_dependencies(buildtests_cxx max_connection_idle_test)
  add_dependencies(buildtests_cxx max_message_length_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx memory_quota_stress_test)
  endif()
  add_dependencies(buildtests_cxx memory_quota_test)
  add_dependencies(buildtests_cxx message_allocator_end2end_test)
  add_dependencies(buildtests_cxx message_compress_test)
  add_dependencies(buildtests_cxx message_size_service_config_test)
  add_dependencies(buildtests_cxx metadata_map_test)
  add_dependencies(buildtests_cxx minimal_stack_is_minimal_test)
  add_dependencies(buildtests_cxx miscompile_with_no_unique_address_test)
  add_dependencies(buildtests_cxx mock_stream_test)
  add_dependencies(buildtests_cxx mock_test)
  add_dependencies(buildtests_cxx mpsc_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx mpscq_test)
  endif()
  add_dependencies(buildtests_cxx negative_deadline_test)
  add_dependencies(buildtests_cxx no_destruct_test)
  add_dependencies(buildtests_cxx no_logging_test)
  add_dependencies(buildtests_cxx no_op_test)
  add_dependencies(buildtests_cxx no_server_test)
  add_dependencies(buildtests_cxx nonblocking_test)
  add_dependencies(buildtests_cxx notification_test)
  add_dependencies(buildtests_cxx num_external_connectivity_watchers_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx oracle_event_engine_posix_test)
  endif()
  add_dependencies(buildtests_cxx orca_service_end2end_test)
  add_dependencies(buildtests_cxx orphanable_test)
  add_dependencies(buildtests_cxx osa_distance_test)
  add_dependencies(buildtests_cxx out_of_bounds_bad_client_test)
  add_dependencies(buildtests_cxx outlier_detection_lb_config_parser_test)
  add_dependencies(buildtests_cxx outlier_detection_test)
  add_dependencies(buildtests_cxx overload_test)
  add_dependencies(buildtests_cxx parse_address_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx parse_address_with_named_scope_id_test)
  endif()
  add_dependencies(buildtests_cxx parsed_metadata_test)
  add_dependencies(buildtests_cxx parser_test)
  add_dependencies(buildtests_cxx party_test)
  add_dependencies(buildtests_cxx payload_test)
  add_dependencies(buildtests_cxx percent_encoding_test)
  add_dependencies(buildtests_cxx periodic_update_test)
  add_dependencies(buildtests_cxx pick_first_test)
  add_dependencies(buildtests_cxx pid_controller_test)
  add_dependencies(buildtests_cxx ping_abuse_policy_test)
  add_dependencies(buildtests_cxx ping_callbacks_test)
  add_dependencies(buildtests_cxx ping_configuration_test)
  add_dependencies(buildtests_cxx ping_pong_streaming_test)
  add_dependencies(buildtests_cxx ping_rate_policy_test)
  add_dependencies(buildtests_cxx ping_test)
  add_dependencies(buildtests_cxx pipe_test)
  add_dependencies(buildtests_cxx poll_test)
  add_dependencies(buildtests_cxx port_sharing_end2end_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx posix_endpoint_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx posix_engine_listener_utils_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx posix_event_engine_connect_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx posix_event_engine_test)
  endif()
  add_dependencies(buildtests_cxx pre_stop_hook_server_test)
  add_dependencies(buildtests_cxx prioritized_race_test)
  add_dependencies(buildtests_cxx promise_endpoint_test)
  add_dependencies(buildtests_cxx promise_factory_test)
  add_dependencies(buildtests_cxx promise_map_test)
  add_dependencies(buildtests_cxx promise_mutex_test)
  add_dependencies(buildtests_cxx promise_test)
  add_dependencies(buildtests_cxx proto_buffer_reader_test)
  add_dependencies(buildtests_cxx proto_buffer_writer_test)
  add_dependencies(buildtests_cxx proto_server_reflection_test)
  add_dependencies(buildtests_cxx proto_utils_test)
  add_dependencies(buildtests_cxx proxy_auth_test)
  add_dependencies(buildtests_cxx qps_json_driver)
  add_dependencies(buildtests_cxx qps_worker)
  add_dependencies(buildtests_cxx race_test)
  add_dependencies(buildtests_cxx random_early_detection_test)
  add_dependencies(buildtests_cxx raw_end2end_test)
  add_dependencies(buildtests_cxx rbac_service_config_parser_test)
  add_dependencies(buildtests_cxx rbac_translator_test)
  add_dependencies(buildtests_cxx ref_counted_ptr_test)
  add_dependencies(buildtests_cxx ref_counted_test)
  add_dependencies(buildtests_cxx registered_call_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx remove_stream_from_stalled_lists_test)
  endif()
  add_dependencies(buildtests_cxx request_with_flags_test)
  add_dependencies(buildtests_cxx request_with_payload_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx resolve_address_using_ares_resolver_posix_test)
  endif()
  add_dependencies(buildtests_cxx resolve_address_using_ares_resolver_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx resolve_address_using_native_resolver_posix_test)
  endif()
  add_dependencies(buildtests_cxx resolve_address_using_native_resolver_test)
  add_dependencies(buildtests_cxx resource_quota_end2end_stress_test)
  add_dependencies(buildtests_cxx resource_quota_server_test)
  add_dependencies(buildtests_cxx resource_quota_test)
  add_dependencies(buildtests_cxx retry_cancel_after_first_attempt_starts_test)
  add_dependencies(buildtests_cxx retry_cancel_during_delay_test)
  add_dependencies(buildtests_cxx retry_cancel_with_multiple_send_batches_test)
  add_dependencies(buildtests_cxx retry_cancellation_test)
  add_dependencies(buildtests_cxx retry_disabled_test)
  add_dependencies(buildtests_cxx retry_exceeds_buffer_size_in_delay_test)
  add_dependencies(buildtests_cxx retry_exceeds_buffer_size_in_initial_batch_test)
  add_dependencies(buildtests_cxx retry_exceeds_buffer_size_in_subsequent_batch_test)
  add_dependencies(buildtests_cxx retry_lb_drop_test)
  add_dependencies(buildtests_cxx retry_lb_fail_test)
  add_dependencies(buildtests_cxx retry_non_retriable_status_before_trailers_test)
  add_dependencies(buildtests_cxx retry_non_retriable_status_test)
  add_dependencies(buildtests_cxx retry_per_attempt_recv_timeout_on_last_attempt_test)
  add_dependencies(buildtests_cxx retry_per_attempt_recv_timeout_test)
  add_dependencies(buildtests_cxx retry_recv_initial_metadata_test)
  add_dependencies(buildtests_cxx retry_recv_message_replay_test)
  add_dependencies(buildtests_cxx retry_recv_message_test)
  add_dependencies(buildtests_cxx retry_recv_trailing_metadata_error_test)
  add_dependencies(buildtests_cxx retry_send_initial_metadata_refs_test)
  add_dependencies(buildtests_cxx retry_send_op_fails_test)
  add_dependencies(buildtests_cxx retry_send_recv_batch_test)
  add_dependencies(buildtests_cxx retry_server_pushback_delay_test)
  add_dependencies(buildtests_cxx retry_server_pushback_disabled_test)
  add_dependencies(buildtests_cxx retry_service_config_test)
  add_dependencies(buildtests_cxx retry_streaming_after_commit_test)
  add_dependencies(buildtests_cxx retry_streaming_succeeds_before_replay_finished_test)
  add_dependencies(buildtests_cxx retry_streaming_test)
  add_dependencies(buildtests_cxx retry_test)
  add_dependencies(buildtests_cxx retry_throttle_test)
  add_dependencies(buildtests_cxx retry_throttled_test)
  add_dependencies(buildtests_cxx retry_too_many_attempts_test)
  add_dependencies(buildtests_cxx retry_transparent_goaway_test)
  add_dependencies(buildtests_cxx retry_transparent_max_concurrent_streams_test)
  add_dependencies(buildtests_cxx retry_transparent_not_sent_on_wire_test)
  add_dependencies(buildtests_cxx retry_unref_before_finish_test)
  add_dependencies(buildtests_cxx retry_unref_before_recv_test)
  add_dependencies(buildtests_cxx ring_hash_test)
  add_dependencies(buildtests_cxx rls_end2end_test)
  add_dependencies(buildtests_cxx rls_lb_config_parser_test)
  add_dependencies(buildtests_cxx round_robin_test)
  add_dependencies(buildtests_cxx secure_auth_context_test)
  add_dependencies(buildtests_cxx secure_channel_create_test)
  add_dependencies(buildtests_cxx secure_endpoint_test)
  add_dependencies(buildtests_cxx security_connector_test)
  add_dependencies(buildtests_cxx seq_test)
  add_dependencies(buildtests_cxx sequential_connectivity_test)
  add_dependencies(buildtests_cxx server_builder_plugin_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx server_builder_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx server_builder_with_socket_mutator_test)
  endif()
  add_dependencies(buildtests_cxx server_call_tracer_factory_test)
  add_dependencies(buildtests_cxx server_chttp2_test)
  add_dependencies(buildtests_cxx server_config_selector_test)
  add_dependencies(buildtests_cxx server_context_test_spouse_test)
  add_dependencies(buildtests_cxx server_early_return_test)
  add_dependencies(buildtests_cxx server_finishes_request_test)
  add_dependencies(buildtests_cxx server_interceptors_end2end_test)
  add_dependencies(buildtests_cxx server_registered_method_bad_client_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx server_request_call_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx server_ssl_test)
  endif()
  add_dependencies(buildtests_cxx server_streaming_test)
  add_dependencies(buildtests_cxx server_test)
  add_dependencies(buildtests_cxx service_config_end2end_test)
  add_dependencies(buildtests_cxx service_config_test)
  add_dependencies(buildtests_cxx settings_timeout_test)
  add_dependencies(buildtests_cxx shutdown_finishes_calls_test)
  add_dependencies(buildtests_cxx shutdown_finishes_tags_test)
  add_dependencies(buildtests_cxx shutdown_test)
  add_dependencies(buildtests_cxx simple_delayed_request_test)
  add_dependencies(buildtests_cxx simple_metadata_test)
  add_dependencies(buildtests_cxx simple_request_bad_client_test)
  add_dependencies(buildtests_cxx simple_request_test)
  add_dependencies(buildtests_cxx single_set_ptr_test)
  add_dependencies(buildtests_cxx sleep_test)
  add_dependencies(buildtests_cxx slice_string_helpers_test)
  add_dependencies(buildtests_cxx smoke_test)
  add_dependencies(buildtests_cxx sockaddr_resolver_test)
  add_dependencies(buildtests_cxx sockaddr_utils_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx socket_utils_test)
  endif()
  add_dependencies(buildtests_cxx sorted_pack_test)
  add_dependencies(buildtests_cxx spinlock_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx ssl_transport_security_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx ssl_transport_security_utils_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx stack_tracer_test)
  endif()
  add_dependencies(buildtests_cxx stat_test)
  add_dependencies(buildtests_cxx static_stride_scheduler_test)
  add_dependencies(buildtests_cxx stats_test)
  add_dependencies(buildtests_cxx status_conversion_test)
  add_dependencies(buildtests_cxx status_flag_test)
  add_dependencies(buildtests_cxx status_helper_test)
  add_dependencies(buildtests_cxx status_util_test)
  add_dependencies(buildtests_cxx stream_leak_with_queued_flow_control_update_test)
  add_dependencies(buildtests_cxx streaming_error_response_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx streaming_throughput_test)
  endif()
  add_dependencies(buildtests_cxx streams_not_seen_test)
  add_dependencies(buildtests_cxx string_ref_test)
  add_dependencies(buildtests_cxx string_test)
  add_dependencies(buildtests_cxx sync_test)
  add_dependencies(buildtests_cxx system_roots_test)
  add_dependencies(buildtests_cxx table_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx tcp_client_posix_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx tcp_posix_socket_utils_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx tcp_posix_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx tcp_server_posix_test)
  endif()
  add_dependencies(buildtests_cxx tcp_socket_utils_test)
  add_dependencies(buildtests_cxx test_core_channel_channelz_test)
  add_dependencies(buildtests_cxx test_core_end2end_channelz_test)
  add_dependencies(buildtests_cxx test_core_event_engine_posix_timer_heap_test)
  add_dependencies(buildtests_cxx test_core_event_engine_posix_timer_list_test)
  add_dependencies(buildtests_cxx test_core_event_engine_slice_buffer_test)
  add_dependencies(buildtests_cxx test_core_gpr_time_test)
  add_dependencies(buildtests_cxx test_core_gprpp_load_file_test)
  add_dependencies(buildtests_cxx test_core_gprpp_time_test)
  add_dependencies(buildtests_cxx test_core_iomgr_load_file_test)
  add_dependencies(buildtests_cxx test_core_iomgr_timer_heap_test)
  add_dependencies(buildtests_cxx test_core_security_credentials_test)
  add_dependencies(buildtests_cxx test_core_security_ssl_credentials_test)
  add_dependencies(buildtests_cxx test_core_slice_slice_buffer_test)
  add_dependencies(buildtests_cxx test_core_slice_slice_test)
  add_dependencies(buildtests_cxx test_core_transport_chaotic_good_frame_test)
  add_dependencies(buildtests_cxx test_core_transport_chttp2_frame_test)
  add_dependencies(buildtests_cxx test_cpp_client_credentials_test)
  add_dependencies(buildtests_cxx test_cpp_end2end_ssl_credentials_test)
  add_dependencies(buildtests_cxx test_cpp_server_credentials_test)
  add_dependencies(buildtests_cxx test_cpp_util_slice_test)
  add_dependencies(buildtests_cxx test_cpp_util_time_test)
  add_dependencies(buildtests_cxx thd_test)
  add_dependencies(buildtests_cxx thread_manager_test)
  add_dependencies(buildtests_cxx thread_pool_test)
  add_dependencies(buildtests_cxx thread_quota_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx thread_stress_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx thready_posix_event_engine_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx time_jump_test)
  endif()
  add_dependencies(buildtests_cxx time_util_test)
  add_dependencies(buildtests_cxx timeout_before_request_call_test)
  add_dependencies(buildtests_cxx timeout_encoding_test)
  add_dependencies(buildtests_cxx timer_manager_test)
  add_dependencies(buildtests_cxx timer_test)
  add_dependencies(buildtests_cxx tls_certificate_verifier_test)
  add_dependencies(buildtests_cxx tls_credentials_test)
  add_dependencies(buildtests_cxx tls_key_export_test)
  add_dependencies(buildtests_cxx tls_security_connector_test)
  add_dependencies(buildtests_cxx too_many_pings_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx traced_buffer_list_test)
  endif()
  add_dependencies(buildtests_cxx trailing_metadata_test)
  add_dependencies(buildtests_cxx transport_security_common_api_test)
  add_dependencies(buildtests_cxx transport_security_test)
  add_dependencies(buildtests_cxx transport_stream_receiver_test)
  add_dependencies(buildtests_cxx try_join_test)
  add_dependencies(buildtests_cxx try_seq_metadata_test)
  add_dependencies(buildtests_cxx try_seq_test)
  add_dependencies(buildtests_cxx unique_type_name_test)
  add_dependencies(buildtests_cxx unknown_frame_bad_client_test)
  add_dependencies(buildtests_cxx uri_parser_test)
  add_dependencies(buildtests_cxx useful_test)
  add_dependencies(buildtests_cxx uuid_v4_test)
  add_dependencies(buildtests_cxx validation_errors_test)
  add_dependencies(buildtests_cxx varint_test)
  add_dependencies(buildtests_cxx wait_for_callback_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx wakeup_fd_posix_test)
  endif()
  add_dependencies(buildtests_cxx weighted_round_robin_config_test)
  add_dependencies(buildtests_cxx weighted_round_robin_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)
    add_dependencies(buildtests_cxx win_socket_test)
  endif()
  add_dependencies(buildtests_cxx window_overflow_bad_client_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)
    add_dependencies(buildtests_cxx windows_endpoint_test)
  endif()
  add_dependencies(buildtests_cxx wire_reader_test)
  add_dependencies(buildtests_cxx wire_writer_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx work_serializer_test)
  endif()
  add_dependencies(buildtests_cxx write_buffering_at_end_test)
  add_dependencies(buildtests_cxx write_buffering_test)
  add_dependencies(buildtests_cxx write_size_policy_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx writes_per_rpc_test)
  endif()
  add_dependencies(buildtests_cxx xds_audit_logger_registry_test)
  add_dependencies(buildtests_cxx xds_bootstrap_test)
  add_dependencies(buildtests_cxx xds_certificate_provider_test)
  add_dependencies(buildtests_cxx xds_client_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_cluster_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_cluster_resource_type_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_cluster_type_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_common_types_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_core_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_credentials_end2end_test)
  add_dependencies(buildtests_cxx xds_credentials_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_csds_end2end_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_endpoint_resource_type_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_fault_injection_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_http_filters_test)
  add_dependencies(buildtests_cxx xds_lb_policy_registry_test)
  add_dependencies(buildtests_cxx xds_listener_resource_type_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_outlier_detection_end2end_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_override_host_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_override_host_lb_config_parser_test)
  add_dependencies(buildtests_cxx xds_override_host_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_pick_first_end2end_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_ring_hash_end2end_test)
  endif()
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_rls_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_route_config_resource_type_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_routing_end2end_test)
  endif()
  add_dependencies(buildtests_cxx xds_stats_watcher_test)
  if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
    add_dependencies(buildtests_cxx xds_wrr_end2end_test)
  endif()

  add_custom_target(buildtests
    DEPENDS buildtests_c buildtests_cxx)
endif()



add_library(address_sorting
  third_party/address_sorting/address_sorting.c
  third_party/address_sorting/address_sorting_posix.c
  third_party/address_sorting/address_sorting_windows.c
)

target_compile_features(address_sorting PUBLIC cxx_std_14)

set_target_properties(address_sorting PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(address_sorting PROPERTIES COMPILE_PDB_NAME "address_sorting"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/address_sorting.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(address_sorting
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(address_sorting
  ${_gRPC_ALLTARGETS_LIBRARIES}
)



if(gRPC_INSTALL)
  install(TARGETS address_sorting EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(gpr
  src/core/lib/config/config_vars.cc
  src/core/lib/config/config_vars_non_generated.cc
  src/core/lib/config/load_config.cc
  src/core/lib/event_engine/thread_local.cc
  src/core/lib/gpr/alloc.cc
  src/core/lib/gpr/android/log.cc
  src/core/lib/gpr/atm.cc
  src/core/lib/gpr/iphone/cpu.cc
  src/core/lib/gpr/linux/cpu.cc
  src/core/lib/gpr/linux/log.cc
  src/core/lib/gpr/log.cc
  src/core/lib/gpr/msys/tmpfile.cc
  src/core/lib/gpr/posix/cpu.cc
  src/core/lib/gpr/posix/log.cc
  src/core/lib/gpr/posix/string.cc
  src/core/lib/gpr/posix/sync.cc
  src/core/lib/gpr/posix/time.cc
  src/core/lib/gpr/posix/tmpfile.cc
  src/core/lib/gpr/string.cc
  src/core/lib/gpr/sync.cc
  src/core/lib/gpr/sync_abseil.cc
  src/core/lib/gpr/time.cc
  src/core/lib/gpr/time_precise.cc
  src/core/lib/gpr/windows/cpu.cc
  src/core/lib/gpr/windows/log.cc
  src/core/lib/gpr/windows/string.cc
  src/core/lib/gpr/windows/string_util.cc
  src/core/lib/gpr/windows/sync.cc
  src/core/lib/gpr/windows/time.cc
  src/core/lib/gpr/windows/tmpfile.cc
  src/core/lib/gpr/wrap_memcpy.cc
  src/core/lib/gprpp/crash.cc
  src/core/lib/gprpp/examine_stack.cc
  src/core/lib/gprpp/fork.cc
  src/core/lib/gprpp/host_port.cc
  src/core/lib/gprpp/linux/env.cc
  src/core/lib/gprpp/mpscq.cc
  src/core/lib/gprpp/posix/env.cc
  src/core/lib/gprpp/posix/stat.cc
  src/core/lib/gprpp/posix/thd.cc
  src/core/lib/gprpp/strerror.cc
  src/core/lib/gprpp/tchar.cc
  src/core/lib/gprpp/time_util.cc
  src/core/lib/gprpp/windows/env.cc
  src/core/lib/gprpp/windows/stat.cc
  src/core/lib/gprpp/windows/thd.cc
)

target_compile_features(gpr PUBLIC cxx_std_14)

set_target_properties(gpr PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(gpr PROPERTIES COMPILE_PDB_NAME "gpr"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  set_target_properties(gpr PROPERTIES DEFINE_SYMBOL "GPR_DLL_EXPORTS")
  if(BUILD_SHARED_LIBS)
    target_compile_definitions(gpr INTERFACE GPR_DLL_IMPORTS)
  endif()
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gpr.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(gpr
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(gpr
  ${_gRPC_ALLTARGETS_LIBRARIES}
  absl::base
  absl::core_headers
  absl::flags
  absl::flags_marshalling
  absl::any_invocable
  absl::memory
  absl::random_random
  absl::status
  absl::cord
  absl::str_format
  absl::strings
  absl::synchronization
  absl::time
  absl::optional
  absl::variant
)
if(_gRPC_PLATFORM_ANDROID)
  target_link_libraries(gpr
    android
    log
  )
endif()

foreach(_hdr
  include/grpc/impl/codegen/atm.h
  include/grpc/impl/codegen/atm_gcc_atomic.h
  include/grpc/impl/codegen/atm_gcc_sync.h
  include/grpc/impl/codegen/atm_windows.h
  include/grpc/impl/codegen/fork.h
  include/grpc/impl/codegen/gpr_types.h
  include/grpc/impl/codegen/log.h
  include/grpc/impl/codegen/port_platform.h
  include/grpc/impl/codegen/sync.h
  include/grpc/impl/codegen/sync_abseil.h
  include/grpc/impl/codegen/sync_custom.h
  include/grpc/impl/codegen/sync_generic.h
  include/grpc/impl/codegen/sync_posix.h
  include/grpc/impl/codegen/sync_windows.h
  include/grpc/support/alloc.h
  include/grpc/support/atm.h
  include/grpc/support/atm_gcc_atomic.h
  include/grpc/support/atm_gcc_sync.h
  include/grpc/support/atm_windows.h
  include/grpc/support/cpu.h
  include/grpc/support/json.h
  include/grpc/support/log.h
  include/grpc/support/log_windows.h
  include/grpc/support/port_platform.h
  include/grpc/support/string_util.h
  include/grpc/support/sync.h
  include/grpc/support/sync_abseil.h
  include/grpc/support/sync_custom.h
  include/grpc/support/sync_generic.h
  include/grpc/support/sync_posix.h
  include/grpc/support/sync_windows.h
  include/grpc/support/thd_id.h
  include/grpc/support/time.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS gpr EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(grpc
  src/core/ext/filters/backend_metrics/backend_metric_filter.cc
  src/core/ext/filters/census/grpc_context.cc
  src/core/ext/filters/channel_idle/channel_idle_filter.cc
  src/core/ext/filters/channel_idle/idle_filter_state.cc
  src/core/ext/filters/client_channel/backend_metric.cc
  src/core/ext/filters/client_channel/backup_poller.cc
  src/core/ext/filters/client_channel/channel_connectivity.cc
  src/core/ext/filters/client_channel/client_channel.cc
  src/core/ext/filters/client_channel/client_channel_channelz.cc
  src/core/ext/filters/client_channel/client_channel_factory.cc
  src/core/ext/filters/client_channel/client_channel_plugin.cc
  src/core/ext/filters/client_channel/client_channel_service_config.cc
  src/core/ext/filters/client_channel/config_selector.cc
  src/core/ext/filters/client_channel/dynamic_filters.cc
  src/core/ext/filters/client_channel/global_subchannel_pool.cc
  src/core/ext/filters/client_channel/http_proxy_mapper.cc
  src/core/ext/filters/client_channel/lb_policy/address_filtering.cc
  src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc
  src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc
  src/core/ext/filters/client_channel/lb_policy/health_check_client.cc
  src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc
  src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc
  src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc
  src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
  src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc
  src/core/ext/filters/client_channel/lb_policy/rls/rls.cc
  src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc
  src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc
  src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc
  src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
  src/core/ext/filters/client_channel/lb_policy/xds/cds.cc
  src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc
  src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc
  src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc
  src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc
  src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc
  src/core/ext/filters/client_channel/local_subchannel_pool.cc
  src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
  src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc
  src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc
  src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc
  src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc
  src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc
  src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc
  src/core/ext/filters/client_channel/resolver/polling_resolver.cc
  src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
  src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc
  src/core/ext/filters/client_channel/retry_filter.cc
  src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc
  src/core/ext/filters/client_channel/retry_service_config.cc
  src/core/ext/filters/client_channel/retry_throttle.cc
  src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
  src/core/ext/filters/client_channel/subchannel.cc
  src/core/ext/filters/client_channel/subchannel_pool_interface.cc
  src/core/ext/filters/client_channel/subchannel_stream_client.cc
  src/core/ext/filters/deadline/deadline_filter.cc
  src/core/ext/filters/fault_injection/fault_injection_filter.cc
  src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc
  src/core/ext/filters/http/client/http_client_filter.cc
  src/core/ext/filters/http/client_authority_filter.cc
  src/core/ext/filters/http/http_filters_plugin.cc
  src/core/ext/filters/http/message_compress/compression_filter.cc
  src/core/ext/filters/http/server/http_server_filter.cc
  src/core/ext/filters/message_size/message_size_filter.cc
  src/core/ext/filters/rbac/rbac_filter.cc
  src/core/ext/filters/rbac/rbac_service_config_parser.cc
  src/core/ext/filters/server_config_selector/server_config_selector_filter.cc
  src/core/ext/filters/stateful_session/stateful_session_filter.cc
  src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc
  src/core/ext/gcp/metadata_query.cc
  src/core/ext/transport/chttp2/alpn/alpn.cc
  src/core/ext/transport/chttp2/client/chttp2_connector.cc
  src/core/ext/transport/chttp2/server/chttp2_server.cc
  src/core/ext/transport/chttp2/transport/bin_decoder.cc
  src/core/ext/transport/chttp2/transport/bin_encoder.cc
  src/core/ext/transport/chttp2/transport/chttp2_transport.cc
  src/core/ext/transport/chttp2/transport/decode_huff.cc
  src/core/ext/transport/chttp2/transport/flow_control.cc
  src/core/ext/transport/chttp2/transport/frame_data.cc
  src/core/ext/transport/chttp2/transport/frame_goaway.cc
  src/core/ext/transport/chttp2/transport/frame_ping.cc
  src/core/ext/transport/chttp2/transport/frame_rst_stream.cc
  src/core/ext/transport/chttp2/transport/frame_settings.cc
  src/core/ext/transport/chttp2/transport/frame_window_update.cc
  src/core/ext/transport/chttp2/transport/hpack_encoder.cc
  src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc
  src/core/ext/transport/chttp2/transport/hpack_parse_result.cc
  src/core/ext/transport/chttp2/transport/hpack_parser.cc
  src/core/ext/transport/chttp2/transport/hpack_parser_table.cc
  src/core/ext/transport/chttp2/transport/http2_settings.cc
  src/core/ext/transport/chttp2/transport/http_trace.cc
  src/core/ext/transport/chttp2/transport/huffsyms.cc
  src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc
  src/core/ext/transport/chttp2/transport/parsing.cc
  src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc
  src/core/ext/transport/chttp2/transport/ping_callbacks.cc
  src/core/ext/transport/chttp2/transport/ping_rate_policy.cc
  src/core/ext/transport/chttp2/transport/stream_lists.cc
  src/core/ext/transport/chttp2/transport/varint.cc
  src/core/ext/transport/chttp2/transport/write_size_policy.cc
  src/core/ext/transport/chttp2/transport/writing.cc
  src/core/ext/transport/inproc/inproc_plugin.cc
  src/core/ext/transport/inproc/inproc_transport.cc
  src/core/ext/transport/inproc/legacy_inproc_transport.cc
  src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c
  src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c
  src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c
  src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c
  src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c
  src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c
  src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c
  src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c
  src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c
  src/core/ext/upb-gen/google/api/annotations.upb_minitable.c
  src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c
  src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c
  src/core/ext/upb-gen/google/api/http.upb_minitable.c
  src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c
  src/core/ext/upb-gen/validate/validate.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c
  src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c
  src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c
  src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c
  src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c
  src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c
  src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c
  src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c
  src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c
  src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c
  src/core/ext/upbdefs-gen/google/api/http.upbdefs.c
  src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c
  src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c
  src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c
  src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c
  src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c
  src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c
  src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c
  src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c
  src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c
  src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c
  src/core/ext/upbdefs-gen/validate/validate.upbdefs.c
  src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c
  src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c
  src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c
  src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c
  src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c
  src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c
  src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c
  src/core/ext/xds/certificate_provider_store.cc
  src/core/ext/xds/file_watcher_certificate_provider_factory.cc
  src/core/ext/xds/xds_api.cc
  src/core/ext/xds/xds_audit_logger_registry.cc
  src/core/ext/xds/xds_bootstrap.cc
  src/core/ext/xds/xds_bootstrap_grpc.cc
  src/core/ext/xds/xds_certificate_provider.cc
  src/core/ext/xds/xds_channel_stack_modifier.cc
  src/core/ext/xds/xds_client.cc
  src/core/ext/xds/xds_client_grpc.cc
  src/core/ext/xds/xds_client_stats.cc
  src/core/ext/xds/xds_cluster.cc
  src/core/ext/xds/xds_cluster_specifier_plugin.cc
  src/core/ext/xds/xds_common_types.cc
  src/core/ext/xds/xds_endpoint.cc
  src/core/ext/xds/xds_health_status.cc
  src/core/ext/xds/xds_http_fault_filter.cc
  src/core/ext/xds/xds_http_filters.cc
  src/core/ext/xds/xds_http_rbac_filter.cc
  src/core/ext/xds/xds_http_stateful_session_filter.cc
  src/core/ext/xds/xds_lb_policy_registry.cc
  src/core/ext/xds/xds_listener.cc
  src/core/ext/xds/xds_route_config.cc
  src/core/ext/xds/xds_routing.cc
  src/core/ext/xds/xds_server_config_fetcher.cc
  src/core/ext/xds/xds_transport_grpc.cc
  src/core/lib/address_utils/parse_address.cc
  src/core/lib/address_utils/sockaddr_utils.cc
  src/core/lib/backoff/backoff.cc
  src/core/lib/backoff/random_early_detection.cc
  src/core/lib/channel/call_tracer.cc
  src/core/lib/channel/channel_args.cc
  src/core/lib/channel/channel_args_preconditioning.cc
  src/core/lib/channel/channel_stack.cc
  src/core/lib/channel/channel_stack_builder.cc
  src/core/lib/channel/channel_stack_builder_impl.cc
  src/core/lib/channel/channel_stack_trace.cc
  src/core/lib/channel/channel_trace.cc
  src/core/lib/channel/channelz.cc
  src/core/lib/channel/channelz_registry.cc
  src/core/lib/channel/connected_channel.cc
  src/core/lib/channel/promise_based_filter.cc
  src/core/lib/channel/server_call_tracer_filter.cc
  src/core/lib/channel/status_util.cc
  src/core/lib/compression/compression.cc
  src/core/lib/compression/compression_internal.cc
  src/core/lib/compression/message_compress.cc
  src/core/lib/config/core_configuration.cc
  src/core/lib/debug/event_log.cc
  src/core/lib/debug/histogram_view.cc
  src/core/lib/debug/stats.cc
  src/core/lib/debug/stats_data.cc
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/ares_resolver.cc
  src/core/lib/event_engine/cf_engine/cf_engine.cc
  src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc
  src/core/lib/event_engine/cf_engine/dns_service_resolver.cc
  src/core/lib/event_engine/channel_args_endpoint_config.cc
  src/core/lib/event_engine/default_event_engine.cc
  src/core/lib/event_engine/default_event_engine_factory.cc
  src/core/lib/event_engine/event_engine.cc
  src/core/lib/event_engine/forkable.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
  src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
  src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc
  src/core/lib/event_engine/posix_engine/internal_errqueue.cc
  src/core/lib/event_engine/posix_engine/lockfree_event.cc
  src/core/lib/event_engine/posix_engine/posix_endpoint.cc
  src/core/lib/event_engine/posix_engine/posix_engine.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc
  src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/posix_engine/timer.cc
  src/core/lib/event_engine/posix_engine/timer_heap.cc
  src/core/lib/event_engine/posix_engine/timer_manager.cc
  src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc
  src/core/lib/event_engine/resolved_address.cc
  src/core/lib/event_engine/shim.cc
  src/core/lib/event_engine/slice.cc
  src/core/lib/event_engine/slice_buffer.cc
  src/core/lib/event_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/thread_pool/thread_count.cc
  src/core/lib/event_engine/thread_pool/thread_pool_factory.cc
  src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc
  src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc
  src/core/lib/event_engine/time_util.cc
  src/core/lib/event_engine/trace.cc
  src/core/lib/event_engine/utils.cc
  src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
  src/core/lib/event_engine/windows/iocp.cc
  src/core/lib/event_engine/windows/win_socket.cc
  src/core/lib/event_engine/windows/windows_endpoint.cc
  src/core/lib/event_engine/windows/windows_engine.cc
  src/core/lib/event_engine/windows/windows_listener.cc
  src/core/lib/event_engine/work_queue/basic_work_queue.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/load_file.cc
  src/core/lib/gprpp/per_cpu.cc
  src/core/lib/gprpp/posix/directory_reader.cc
  src/core/lib/gprpp/ref_counted_string.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/gprpp/time_averaged_stats.cc
  src/core/lib/gprpp/validation_errors.cc
  src/core/lib/gprpp/windows/directory_reader.cc
  src/core/lib/gprpp/work_serializer.cc
  src/core/lib/handshaker/proxy_mapper_registry.cc
  src/core/lib/http/format_request.cc
  src/core/lib/http/httpcli.cc
  src/core/lib/http/httpcli_security_connector.cc
  src/core/lib/http/parser.cc
  src/core/lib/iomgr/buffer_list.cc
  src/core/lib/iomgr/call_combiner.cc
  src/core/lib/iomgr/cfstream_handle.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/dualstack_socket_posix.cc
  src/core/lib/iomgr/endpoint.cc
  src/core/lib/iomgr/endpoint_cfstream.cc
  src/core/lib/iomgr/endpoint_pair_posix.cc
  src/core/lib/iomgr/endpoint_pair_windows.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/error_cfstream.cc
  src/core/lib/iomgr/ev_apple.cc
  src/core/lib/iomgr/ev_epoll1_linux.cc
  src/core/lib/iomgr/ev_poll_posix.cc
  src/core/lib/iomgr/ev_posix.cc
  src/core/lib/iomgr/ev_windows.cc
  src/core/lib/iomgr/event_engine_shims/closure.cc
  src/core/lib/iomgr/event_engine_shims/endpoint.cc
  src/core/lib/iomgr/event_engine_shims/tcp_client.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/fork_posix.cc
  src/core/lib/iomgr/fork_windows.cc
  src/core/lib/iomgr/gethostname_fallback.cc
  src/core/lib/iomgr/gethostname_host_name_max.cc
  src/core/lib/iomgr/gethostname_sysconf.cc
  src/core/lib/iomgr/grpc_if_nametoindex_posix.cc
  src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc
  src/core/lib/iomgr/internal_errqueue.cc
  src/core/lib/iomgr/iocp_windows.cc
  src/core/lib/iomgr/iomgr.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/iomgr/iomgr_posix.cc
  src/core/lib/iomgr/iomgr_posix_cfstream.cc
  src/core/lib/iomgr/iomgr_windows.cc
  src/core/lib/iomgr/load_file.cc
  src/core/lib/iomgr/lockfree_event.cc
  src/core/lib/iomgr/polling_entity.cc
  src/core/lib/iomgr/pollset.cc
  src/core/lib/iomgr/pollset_set.cc
  src/core/lib/iomgr/pollset_set_windows.cc
  src/core/lib/iomgr/pollset_windows.cc
  src/core/lib/iomgr/resolve_address.cc
  src/core/lib/iomgr/resolve_address_posix.cc
  src/core/lib/iomgr/resolve_address_windows.cc
  src/core/lib/iomgr/sockaddr_utils_posix.cc
  src/core/lib/iomgr/socket_factory_posix.cc
  src/core/lib/iomgr/socket_mutator.cc
  src/core/lib/iomgr/socket_utils_common_posix.cc
  src/core/lib/iomgr/socket_utils_linux.cc
  src/core/lib/iomgr/socket_utils_posix.cc
  src/core/lib/iomgr/socket_utils_windows.cc
  src/core/lib/iomgr/socket_windows.cc
  src/core/lib/iomgr/systemd_utils.cc
  src/core/lib/iomgr/tcp_client.cc
  src/core/lib/iomgr/tcp_client_cfstream.cc
  src/core/lib/iomgr/tcp_client_posix.cc
  src/core/lib/iomgr/tcp_client_windows.cc
  src/core/lib/iomgr/tcp_posix.cc
  src/core/lib/iomgr/tcp_server.cc
  src/core/lib/iomgr/tcp_server_posix.cc
  src/core/lib/iomgr/tcp_server_utils_posix_common.cc
  src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
  src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc
  src/core/lib/iomgr/tcp_server_windows.cc
  src/core/lib/iomgr/tcp_windows.cc
  src/core/lib/iomgr/timer.cc
  src/core/lib/iomgr/timer_generic.cc
  src/core/lib/iomgr/timer_heap.cc
  src/core/lib/iomgr/timer_manager.cc
  src/core/lib/iomgr/unix_sockets_posix.cc
  src/core/lib/iomgr/unix_sockets_posix_noop.cc
  src/core/lib/iomgr/vsock.cc
  src/core/lib/iomgr/wakeup_fd_eventfd.cc
  src/core/lib/iomgr/wakeup_fd_nospecial.cc
  src/core/lib/iomgr/wakeup_fd_pipe.cc
  src/core/lib/iomgr/wakeup_fd_posix.cc
  src/core/lib/json/json_object_loader.cc
  src/core/lib/json/json_reader.cc
  src/core/lib/json/json_util.cc
  src/core/lib/json/json_writer.cc
  src/core/lib/load_balancing/lb_policy.cc
  src/core/lib/load_balancing/lb_policy_registry.cc
  src/core/lib/matchers/matchers.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/party.cc
  src/core/lib/promise/sleep.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resolver/endpoint_addresses.cc
  src/core/lib/resolver/resolver.cc
  src/core/lib/resolver/resolver_registry.cc
  src/core/lib/resource_quota/api.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/security/authorization/audit_logging.cc
  src/core/lib/security/authorization/authorization_policy_provider_vtable.cc
  src/core/lib/security/authorization/evaluate_args.cc
  src/core/lib/security/authorization/grpc_authorization_engine.cc
  src/core/lib/security/authorization/grpc_server_authz_filter.cc
  src/core/lib/security/authorization/matchers.cc
  src/core/lib/security/authorization/rbac_policy.cc
  src/core/lib/security/authorization/stdout_logger.cc
  src/core/lib/security/certificate_provider/certificate_provider_registry.cc
  src/core/lib/security/context/security_context.cc
  src/core/lib/security/credentials/alts/alts_credentials.cc
  src/core/lib/security/credentials/alts/check_gcp_environment.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
  src/core/lib/security/credentials/call_creds_util.cc
  src/core/lib/security/credentials/channel_creds_registry_init.cc
  src/core/lib/security/credentials/composite/composite_credentials.cc
  src/core/lib/security/credentials/credentials.cc
  src/core/lib/security/credentials/external/aws_external_account_credentials.cc
  src/core/lib/security/credentials/external/aws_request_signer.cc
  src/core/lib/security/credentials/external/external_account_credentials.cc
  src/core/lib/security/credentials/external/file_external_account_credentials.cc
  src/core/lib/security/credentials/external/url_external_account_credentials.cc
  src/core/lib/security/credentials/fake/fake_credentials.cc
  src/core/lib/security/credentials/google_default/credentials_generic.cc
  src/core/lib/security/credentials/google_default/google_default_credentials.cc
  src/core/lib/security/credentials/iam/iam_credentials.cc
  src/core/lib/security/credentials/insecure/insecure_credentials.cc
  src/core/lib/security/credentials/jwt/json_token.cc
  src/core/lib/security/credentials/jwt/jwt_credentials.cc
  src/core/lib/security/credentials/jwt/jwt_verifier.cc
  src/core/lib/security/credentials/local/local_credentials.cc
  src/core/lib/security/credentials/oauth2/oauth2_credentials.cc
  src/core/lib/security/credentials/plugin/plugin_credentials.cc
  src/core/lib/security/credentials/ssl/ssl_credentials.cc
  src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc
  src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc
  src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc
  src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc
  src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc
  src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc
  src/core/lib/security/credentials/tls/tls_credentials.cc
  src/core/lib/security/credentials/tls/tls_utils.cc
  src/core/lib/security/credentials/xds/xds_credentials.cc
  src/core/lib/security/security_connector/alts/alts_security_connector.cc
  src/core/lib/security/security_connector/fake/fake_security_connector.cc
  src/core/lib/security/security_connector/insecure/insecure_security_connector.cc
  src/core/lib/security/security_connector/load_system_roots_fallback.cc
  src/core/lib/security/security_connector/load_system_roots_supported.cc
  src/core/lib/security/security_connector/local/local_security_connector.cc
  src/core/lib/security/security_connector/security_connector.cc
  src/core/lib/security/security_connector/ssl/ssl_security_connector.cc
  src/core/lib/security/security_connector/ssl_utils.cc
  src/core/lib/security/security_connector/tls/tls_security_connector.cc
  src/core/lib/security/transport/client_auth_filter.cc
  src/core/lib/security/transport/secure_endpoint.cc
  src/core/lib/security/transport/security_handshaker.cc
  src/core/lib/security/transport/server_auth_filter.cc
  src/core/lib/security/transport/tsi_error.cc
  src/core/lib/security/util/json_util.cc
  src/core/lib/service_config/service_config_impl.cc
  src/core/lib/service_config/service_config_parser.cc
  src/core/lib/slice/b64.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_buffer.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  src/core/lib/surface/api_trace.cc
  src/core/lib/surface/builtins.cc
  src/core/lib/surface/byte_buffer.cc
  src/core/lib/surface/byte_buffer_reader.cc
  src/core/lib/surface/call.cc
  src/core/lib/surface/call_details.cc
  src/core/lib/surface/call_log_batch.cc
  src/core/lib/surface/call_trace.cc
  src/core/lib/surface/channel.cc
  src/core/lib/surface/channel_init.cc
  src/core/lib/surface/channel_ping.cc
  src/core/lib/surface/channel_stack_type.cc
  src/core/lib/surface/completion_queue.cc
  src/core/lib/surface/completion_queue_factory.cc
  src/core/lib/surface/event_string.cc
  src/core/lib/surface/init.cc
  src/core/lib/surface/init_internally.cc
  src/core/lib/surface/lame_client.cc
  src/core/lib/surface/metadata_array.cc
  src/core/lib/surface/server.cc
  src/core/lib/surface/validate_metadata.cc
  src/core/lib/surface/version.cc
  src/core/lib/transport/batch_builder.cc
  src/core/lib/transport/bdp_estimator.cc
  src/core/lib/transport/connectivity_state.cc
  src/core/lib/transport/error_utils.cc
  src/core/lib/transport/handshaker.cc
  src/core/lib/transport/handshaker_registry.cc
  src/core/lib/transport/http_connect_handshaker.cc
  src/core/lib/transport/metadata_batch.cc
  src/core/lib/transport/parsed_metadata.cc
  src/core/lib/transport/pid_controller.cc
  src/core/lib/transport/status_conversion.cc
  src/core/lib/transport/tcp_connect_handshaker.cc
  src/core/lib/transport/timeout_encoding.cc
  src/core/lib/transport/transport.cc
  src/core/lib/transport/transport_op_string.cc
  src/core/lib/uri/uri_parser.cc
  src/core/plugin_registry/grpc_plugin_registry.cc
  src/core/plugin_registry/grpc_plugin_registry_extra.cc
  src/core/tsi/alts/crypt/aes_gcm.cc
  src/core/tsi/alts/crypt/gsec.cc
  src/core/tsi/alts/frame_protector/alts_counter.cc
  src/core/tsi/alts/frame_protector/alts_crypter.cc
  src/core/tsi/alts/frame_protector/alts_frame_protector.cc
  src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc
  src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc
  src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc
  src/core/tsi/alts/frame_protector/frame_handler.cc
  src/core/tsi/alts/handshaker/alts_handshaker_client.cc
  src/core/tsi/alts/handshaker/alts_shared_resource.cc
  src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc
  src/core/tsi/alts/handshaker/alts_tsi_utils.cc
  src/core/tsi/alts/handshaker/transport_security_common_api.cc
  src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc
  src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc
  src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc
  src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc
  src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc
  src/core/tsi/fake_transport_security.cc
  src/core/tsi/local_transport_security.cc
  src/core/tsi/ssl/key_logging/ssl_key_logging.cc
  src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc
  src/core/tsi/ssl/session_cache/ssl_session_cache.cc
  src/core/tsi/ssl/session_cache/ssl_session_openssl.cc
  src/core/tsi/ssl_transport_security.cc
  src/core/tsi/ssl_transport_security_utils.cc
  src/core/tsi/transport_security.cc
  src/core/tsi/transport_security_grpc.cc
)

target_compile_features(grpc PUBLIC cxx_std_14)

set_target_properties(grpc PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc PROPERTIES COMPILE_PDB_NAME "grpc"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  set_target_properties(grpc PROPERTIES DEFINE_SYMBOL "GRPC_DLL_EXPORTS")
  if(BUILD_SHARED_LIBS)
    target_compile_definitions(grpc INTERFACE GRPC_DLL_IMPORTS)
  endif()
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(grpc
  ${_gRPC_ALLTARGETS_LIBRARIES}
  upb_collections_lib
  upb_json_lib
  upb_textformat_lib
  upb
  ${_gRPC_RE2_LIBRARIES}
  ${_gRPC_ZLIB_LIBRARIES}
  absl::algorithm_container
  absl::cleanup
  absl::flat_hash_map
  absl::flat_hash_set
  absl::inlined_vector
  absl::bind_front
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::random_bit_gen_ref
  absl::random_distributions
  absl::statusor
  absl::span
  absl::utility
  ${_gRPC_CARES_LIBRARIES}
  gpr
  ${_gRPC_SSL_LIBRARIES}
  ${_gRPC_ADDRESS_SORTING_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
  target_link_libraries(grpc "-framework CoreFoundation")
endif()

foreach(_hdr
  include/grpc/byte_buffer.h
  include/grpc/byte_buffer_reader.h
  include/grpc/census.h
  include/grpc/compression.h
  include/grpc/event_engine/endpoint_config.h
  include/grpc/event_engine/event_engine.h
  include/grpc/event_engine/internal/memory_allocator_impl.h
  include/grpc/event_engine/internal/slice_cast.h
  include/grpc/event_engine/memory_allocator.h
  include/grpc/event_engine/memory_request.h
  include/grpc/event_engine/port.h
  include/grpc/event_engine/slice.h
  include/grpc/event_engine/slice_buffer.h
  include/grpc/fork.h
  include/grpc/grpc.h
  include/grpc/grpc_audit_logging.h
  include/grpc/grpc_crl_provider.h
  include/grpc/grpc_posix.h
  include/grpc/grpc_security.h
  include/grpc/grpc_security_constants.h
  include/grpc/impl/channel_arg_names.h
  include/grpc/impl/codegen/atm.h
  include/grpc/impl/codegen/atm_gcc_atomic.h
  include/grpc/impl/codegen/atm_gcc_sync.h
  include/grpc/impl/codegen/atm_windows.h
  include/grpc/impl/codegen/byte_buffer.h
  include/grpc/impl/codegen/byte_buffer_reader.h
  include/grpc/impl/codegen/compression_types.h
  include/grpc/impl/codegen/connectivity_state.h
  include/grpc/impl/codegen/fork.h
  include/grpc/impl/codegen/gpr_types.h
  include/grpc/impl/codegen/grpc_types.h
  include/grpc/impl/codegen/log.h
  include/grpc/impl/codegen/port_platform.h
  include/grpc/impl/codegen/propagation_bits.h
  include/grpc/impl/codegen/slice.h
  include/grpc/impl/codegen/status.h
  include/grpc/impl/codegen/sync.h
  include/grpc/impl/codegen/sync_abseil.h
  include/grpc/impl/codegen/sync_custom.h
  include/grpc/impl/codegen/sync_generic.h
  include/grpc/impl/codegen/sync_posix.h
  include/grpc/impl/codegen/sync_windows.h
  include/grpc/impl/compression_types.h
  include/grpc/impl/connectivity_state.h
  include/grpc/impl/grpc_types.h
  include/grpc/impl/propagation_bits.h
  include/grpc/impl/slice_type.h
  include/grpc/load_reporting.h
  include/grpc/slice.h
  include/grpc/slice_buffer.h
  include/grpc/status.h
  include/grpc/support/alloc.h
  include/grpc/support/atm_gcc_atomic.h
  include/grpc/support/atm_gcc_sync.h
  include/grpc/support/atm_windows.h
  include/grpc/support/cpu.h
  include/grpc/support/json.h
  include/grpc/support/log.h
  include/grpc/support/log_windows.h
  include/grpc/support/port_platform.h
  include/grpc/support/string_util.h
  include/grpc/support/sync.h
  include/grpc/support/sync_abseil.h
  include/grpc/support/sync_custom.h
  include/grpc/support/sync_generic.h
  include/grpc/support/sync_posix.h
  include/grpc/support/sync_windows.h
  include/grpc/support/thd_id.h
  include/grpc/support/time.h
  include/grpc/support/workaround_list.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
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/port.cc
  test/core/util/port_isolated_runtime_environment.cc
  test/core/util/port_server_client.cc
  test/core/util/reconnect_server.cc
  test/core/util/stack_tracer.cc
  test/core/util/test_config.cc
  test/core/util/test_tcp_server.cc
  test/core/util/tls_utils.cc
)

target_compile_features(grpc_test_util PUBLIC cxx_std_14)

set_target_properties(grpc_test_util PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc_test_util PROPERTIES COMPILE_PDB_NAME "grpc_test_util"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_test_util.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc_test_util
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(grpc_test_util
  ${_gRPC_ALLTARGETS_LIBRARIES}
  absl::failure_signal_handler
  absl::stacktrace
  absl::symbolize
  grpc
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
  target_link_libraries(grpc_test_util "-framework CoreFoundation")
endif()


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/port.cc
  test/core/util/port_isolated_runtime_environment.cc
  test/core/util/port_server_client.cc
  test/core/util/reconnect_server.cc
  test/core/util/stack_tracer.cc
  test/core/util/test_config.cc
  test/core/util/test_tcp_server.cc
)

target_compile_features(grpc_test_util_unsecure PUBLIC cxx_std_14)

set_target_properties(grpc_test_util_unsecure PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc_test_util_unsecure PROPERTIES COMPILE_PDB_NAME "grpc_test_util_unsecure"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_test_util_unsecure.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc_test_util_unsecure
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(grpc_test_util_unsecure
  ${_gRPC_ALLTARGETS_LIBRARIES}
  absl::failure_signal_handler
  absl::stacktrace
  absl::symbolize
  grpc_unsecure
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
  target_link_libraries(grpc_test_util_unsecure "-framework CoreFoundation")
endif()


endif()


add_library(grpc_unsecure
  src/core/ext/filters/backend_metrics/backend_metric_filter.cc
  src/core/ext/filters/census/grpc_context.cc
  src/core/ext/filters/channel_idle/channel_idle_filter.cc
  src/core/ext/filters/channel_idle/idle_filter_state.cc
  src/core/ext/filters/client_channel/backend_metric.cc
  src/core/ext/filters/client_channel/backup_poller.cc
  src/core/ext/filters/client_channel/channel_connectivity.cc
  src/core/ext/filters/client_channel/client_channel.cc
  src/core/ext/filters/client_channel/client_channel_channelz.cc
  src/core/ext/filters/client_channel/client_channel_factory.cc
  src/core/ext/filters/client_channel/client_channel_plugin.cc
  src/core/ext/filters/client_channel/client_channel_service_config.cc
  src/core/ext/filters/client_channel/config_selector.cc
  src/core/ext/filters/client_channel/dynamic_filters.cc
  src/core/ext/filters/client_channel/global_subchannel_pool.cc
  src/core/ext/filters/client_channel/http_proxy_mapper.cc
  src/core/ext/filters/client_channel/lb_policy/address_filtering.cc
  src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc
  src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc
  src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc
  src/core/ext/filters/client_channel/lb_policy/health_check_client.cc
  src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc
  src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc
  src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc
  src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
  src/core/ext/filters/client_channel/lb_policy/rls/rls.cc
  src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc
  src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc
  src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc
  src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
  src/core/ext/filters/client_channel/local_subchannel_pool.cc
  src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
  src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
  src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc
  src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc
  src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc
  src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc
  src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc
  src/core/ext/filters/client_channel/resolver/polling_resolver.cc
  src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
  src/core/ext/filters/client_channel/retry_filter.cc
  src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc
  src/core/ext/filters/client_channel/retry_service_config.cc
  src/core/ext/filters/client_channel/retry_throttle.cc
  src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
  src/core/ext/filters/client_channel/subchannel.cc
  src/core/ext/filters/client_channel/subchannel_pool_interface.cc
  src/core/ext/filters/client_channel/subchannel_stream_client.cc
  src/core/ext/filters/deadline/deadline_filter.cc
  src/core/ext/filters/fault_injection/fault_injection_filter.cc
  src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc
  src/core/ext/filters/http/client/http_client_filter.cc
  src/core/ext/filters/http/client_authority_filter.cc
  src/core/ext/filters/http/http_filters_plugin.cc
  src/core/ext/filters/http/message_compress/compression_filter.cc
  src/core/ext/filters/http/server/http_server_filter.cc
  src/core/ext/filters/message_size/message_size_filter.cc
  src/core/ext/transport/chttp2/client/chttp2_connector.cc
  src/core/ext/transport/chttp2/server/chttp2_server.cc
  src/core/ext/transport/chttp2/transport/bin_decoder.cc
  src/core/ext/transport/chttp2/transport/bin_encoder.cc
  src/core/ext/transport/chttp2/transport/chttp2_transport.cc
  src/core/ext/transport/chttp2/transport/decode_huff.cc
  src/core/ext/transport/chttp2/transport/flow_control.cc
  src/core/ext/transport/chttp2/transport/frame_data.cc
  src/core/ext/transport/chttp2/transport/frame_goaway.cc
  src/core/ext/transport/chttp2/transport/frame_ping.cc
  src/core/ext/transport/chttp2/transport/frame_rst_stream.cc
  src/core/ext/transport/chttp2/transport/frame_settings.cc
  src/core/ext/transport/chttp2/transport/frame_window_update.cc
  src/core/ext/transport/chttp2/transport/hpack_encoder.cc
  src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc
  src/core/ext/transport/chttp2/transport/hpack_parse_result.cc
  src/core/ext/transport/chttp2/transport/hpack_parser.cc
  src/core/ext/transport/chttp2/transport/hpack_parser_table.cc
  src/core/ext/transport/chttp2/transport/http2_settings.cc
  src/core/ext/transport/chttp2/transport/http_trace.cc
  src/core/ext/transport/chttp2/transport/huffsyms.cc
  src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc
  src/core/ext/transport/chttp2/transport/parsing.cc
  src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc
  src/core/ext/transport/chttp2/transport/ping_callbacks.cc
  src/core/ext/transport/chttp2/transport/ping_rate_policy.cc
  src/core/ext/transport/chttp2/transport/stream_lists.cc
  src/core/ext/transport/chttp2/transport/varint.cc
  src/core/ext/transport/chttp2/transport/write_size_policy.cc
  src/core/ext/transport/chttp2/transport/writing.cc
  src/core/ext/transport/inproc/inproc_plugin.cc
  src/core/ext/transport/inproc/inproc_transport.cc
  src/core/ext/transport/inproc/legacy_inproc_transport.cc
  src/core/ext/upb-gen/google/api/annotations.upb_minitable.c
  src/core/ext/upb-gen/google/api/http.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c
  src/core/ext/upb-gen/validate/validate.upb_minitable.c
  src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c
  src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c
  src/core/lib/address_utils/parse_address.cc
  src/core/lib/address_utils/sockaddr_utils.cc
  src/core/lib/backoff/backoff.cc
  src/core/lib/backoff/random_early_detection.cc
  src/core/lib/channel/call_tracer.cc
  src/core/lib/channel/channel_args.cc
  src/core/lib/channel/channel_args_preconditioning.cc
  src/core/lib/channel/channel_stack.cc
  src/core/lib/channel/channel_stack_builder.cc
  src/core/lib/channel/channel_stack_builder_impl.cc
  src/core/lib/channel/channel_stack_trace.cc
  src/core/lib/channel/channel_trace.cc
  src/core/lib/channel/channelz.cc
  src/core/lib/channel/channelz_registry.cc
  src/core/lib/channel/connected_channel.cc
  src/core/lib/channel/promise_based_filter.cc
  src/core/lib/channel/server_call_tracer_filter.cc
  src/core/lib/channel/status_util.cc
  src/core/lib/compression/compression.cc
  src/core/lib/compression/compression_internal.cc
  src/core/lib/compression/message_compress.cc
  src/core/lib/config/core_configuration.cc
  src/core/lib/debug/event_log.cc
  src/core/lib/debug/histogram_view.cc
  src/core/lib/debug/stats.cc
  src/core/lib/debug/stats_data.cc
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/ares_resolver.cc
  src/core/lib/event_engine/cf_engine/cf_engine.cc
  src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc
  src/core/lib/event_engine/cf_engine/dns_service_resolver.cc
  src/core/lib/event_engine/channel_args_endpoint_config.cc
  src/core/lib/event_engine/default_event_engine.cc
  src/core/lib/event_engine/default_event_engine_factory.cc
  src/core/lib/event_engine/event_engine.cc
  src/core/lib/event_engine/forkable.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
  src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
  src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc
  src/core/lib/event_engine/posix_engine/internal_errqueue.cc
  src/core/lib/event_engine/posix_engine/lockfree_event.cc
  src/core/lib/event_engine/posix_engine/posix_endpoint.cc
  src/core/lib/event_engine/posix_engine/posix_engine.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc
  src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/posix_engine/timer.cc
  src/core/lib/event_engine/posix_engine/timer_heap.cc
  src/core/lib/event_engine/posix_engine/timer_manager.cc
  src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc
  src/core/lib/event_engine/resolved_address.cc
  src/core/lib/event_engine/shim.cc
  src/core/lib/event_engine/slice.cc
  src/core/lib/event_engine/slice_buffer.cc
  src/core/lib/event_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/thread_pool/thread_count.cc
  src/core/lib/event_engine/thread_pool/thread_pool_factory.cc
  src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc
  src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc
  src/core/lib/event_engine/time_util.cc
  src/core/lib/event_engine/trace.cc
  src/core/lib/event_engine/utils.cc
  src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
  src/core/lib/event_engine/windows/iocp.cc
  src/core/lib/event_engine/windows/win_socket.cc
  src/core/lib/event_engine/windows/windows_endpoint.cc
  src/core/lib/event_engine/windows/windows_engine.cc
  src/core/lib/event_engine/windows/windows_listener.cc
  src/core/lib/event_engine/work_queue/basic_work_queue.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/load_file.cc
  src/core/lib/gprpp/per_cpu.cc
  src/core/lib/gprpp/ref_counted_string.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/gprpp/time_averaged_stats.cc
  src/core/lib/gprpp/validation_errors.cc
  src/core/lib/gprpp/work_serializer.cc
  src/core/lib/handshaker/proxy_mapper_registry.cc
  src/core/lib/http/format_request.cc
  src/core/lib/http/httpcli.cc
  src/core/lib/http/parser.cc
  src/core/lib/iomgr/buffer_list.cc
  src/core/lib/iomgr/call_combiner.cc
  src/core/lib/iomgr/cfstream_handle.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/dualstack_socket_posix.cc
  src/core/lib/iomgr/endpoint.cc
  src/core/lib/iomgr/endpoint_cfstream.cc
  src/core/lib/iomgr/endpoint_pair_posix.cc
  src/core/lib/iomgr/endpoint_pair_windows.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/error_cfstream.cc
  src/core/lib/iomgr/ev_apple.cc
  src/core/lib/iomgr/ev_epoll1_linux.cc
  src/core/lib/iomgr/ev_poll_posix.cc
  src/core/lib/iomgr/ev_posix.cc
  src/core/lib/iomgr/ev_windows.cc
  src/core/lib/iomgr/event_engine_shims/closure.cc
  src/core/lib/iomgr/event_engine_shims/endpoint.cc
  src/core/lib/iomgr/event_engine_shims/tcp_client.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/fork_posix.cc
  src/core/lib/iomgr/fork_windows.cc
  src/core/lib/iomgr/gethostname_fallback.cc
  src/core/lib/iomgr/gethostname_host_name_max.cc
  src/core/lib/iomgr/gethostname_sysconf.cc
  src/core/lib/iomgr/grpc_if_nametoindex_posix.cc
  src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc
  src/core/lib/iomgr/internal_errqueue.cc
  src/core/lib/iomgr/iocp_windows.cc
  src/core/lib/iomgr/iomgr.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/iomgr/iomgr_posix.cc
  src/core/lib/iomgr/iomgr_posix_cfstream.cc
  src/core/lib/iomgr/iomgr_windows.cc
  src/core/lib/iomgr/load_file.cc
  src/core/lib/iomgr/lockfree_event.cc
  src/core/lib/iomgr/polling_entity.cc
  src/core/lib/iomgr/pollset.cc
  src/core/lib/iomgr/pollset_set.cc
  src/core/lib/iomgr/pollset_set_windows.cc
  src/core/lib/iomgr/pollset_windows.cc
  src/core/lib/iomgr/resolve_address.cc
  src/core/lib/iomgr/resolve_address_posix.cc
  src/core/lib/iomgr/resolve_address_windows.cc
  src/core/lib/iomgr/sockaddr_utils_posix.cc
  src/core/lib/iomgr/socket_factory_posix.cc
  src/core/lib/iomgr/socket_mutator.cc
  src/core/lib/iomgr/socket_utils_common_posix.cc
  src/core/lib/iomgr/socket_utils_linux.cc
  src/core/lib/iomgr/socket_utils_posix.cc
  src/core/lib/iomgr/socket_utils_windows.cc
  src/core/lib/iomgr/socket_windows.cc
  src/core/lib/iomgr/systemd_utils.cc
  src/core/lib/iomgr/tcp_client.cc
  src/core/lib/iomgr/tcp_client_cfstream.cc
  src/core/lib/iomgr/tcp_client_posix.cc
  src/core/lib/iomgr/tcp_client_windows.cc
  src/core/lib/iomgr/tcp_posix.cc
  src/core/lib/iomgr/tcp_server.cc
  src/core/lib/iomgr/tcp_server_posix.cc
  src/core/lib/iomgr/tcp_server_utils_posix_common.cc
  src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
  src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc
  src/core/lib/iomgr/tcp_server_windows.cc
  src/core/lib/iomgr/tcp_windows.cc
  src/core/lib/iomgr/timer.cc
  src/core/lib/iomgr/timer_generic.cc
  src/core/lib/iomgr/timer_heap.cc
  src/core/lib/iomgr/timer_manager.cc
  src/core/lib/iomgr/unix_sockets_posix.cc
  src/core/lib/iomgr/unix_sockets_posix_noop.cc
  src/core/lib/iomgr/vsock.cc
  src/core/lib/iomgr/wakeup_fd_eventfd.cc
  src/core/lib/iomgr/wakeup_fd_nospecial.cc
  src/core/lib/iomgr/wakeup_fd_pipe.cc
  src/core/lib/iomgr/wakeup_fd_posix.cc
  src/core/lib/json/json_object_loader.cc
  src/core/lib/json/json_reader.cc
  src/core/lib/json/json_writer.cc
  src/core/lib/load_balancing/lb_policy.cc
  src/core/lib/load_balancing/lb_policy_registry.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/party.cc
  src/core/lib/promise/sleep.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resolver/endpoint_addresses.cc
  src/core/lib/resolver/resolver.cc
  src/core/lib/resolver/resolver_registry.cc
  src/core/lib/resource_quota/api.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/security/authorization/authorization_policy_provider_vtable.cc
  src/core/lib/security/authorization/evaluate_args.cc
  src/core/lib/security/authorization/grpc_server_authz_filter.cc
  src/core/lib/security/certificate_provider/certificate_provider_registry.cc
  src/core/lib/security/context/security_context.cc
  src/core/lib/security/credentials/alts/check_gcp_environment.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
  src/core/lib/security/credentials/call_creds_util.cc
  src/core/lib/security/credentials/composite/composite_credentials.cc
  src/core/lib/security/credentials/credentials.cc
  src/core/lib/security/credentials/fake/fake_credentials.cc
  src/core/lib/security/credentials/insecure/insecure_credentials.cc
  src/core/lib/security/credentials/plugin/plugin_credentials.cc
  src/core/lib/security/credentials/tls/tls_utils.cc
  src/core/lib/security/security_connector/fake/fake_security_connector.cc
  src/core/lib/security/security_connector/insecure/insecure_security_connector.cc
  src/core/lib/security/security_connector/load_system_roots_fallback.cc
  src/core/lib/security/security_connector/load_system_roots_supported.cc
  src/core/lib/security/security_connector/security_connector.cc
  src/core/lib/security/transport/client_auth_filter.cc
  src/core/lib/security/transport/secure_endpoint.cc
  src/core/lib/security/transport/security_handshaker.cc
  src/core/lib/security/transport/server_auth_filter.cc
  src/core/lib/security/transport/tsi_error.cc
  src/core/lib/security/util/json_util.cc
  src/core/lib/service_config/service_config_impl.cc
  src/core/lib/service_config/service_config_parser.cc
  src/core/lib/slice/b64.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_buffer.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  src/core/lib/surface/api_trace.cc
  src/core/lib/surface/builtins.cc
  src/core/lib/surface/byte_buffer.cc
  src/core/lib/surface/byte_buffer_reader.cc
  src/core/lib/surface/call.cc
  src/core/lib/surface/call_details.cc
  src/core/lib/surface/call_log_batch.cc
  src/core/lib/surface/call_trace.cc
  src/core/lib/surface/channel.cc
  src/core/lib/surface/channel_init.cc
  src/core/lib/surface/channel_ping.cc
  src/core/lib/surface/channel_stack_type.cc
  src/core/lib/surface/completion_queue.cc
  src/core/lib/surface/completion_queue_factory.cc
  src/core/lib/surface/event_string.cc
  src/core/lib/surface/init.cc
  src/core/lib/surface/init_internally.cc
  src/core/lib/surface/lame_client.cc
  src/core/lib/surface/metadata_array.cc
  src/core/lib/surface/server.cc
  src/core/lib/surface/validate_metadata.cc
  src/core/lib/surface/version.cc
  src/core/lib/transport/batch_builder.cc
  src/core/lib/transport/bdp_estimator.cc
  src/core/lib/transport/connectivity_state.cc
  src/core/lib/transport/error_utils.cc
  src/core/lib/transport/handshaker.cc
  src/core/lib/transport/handshaker_registry.cc
  src/core/lib/transport/http_connect_handshaker.cc
  src/core/lib/transport/metadata_batch.cc
  src/core/lib/transport/parsed_metadata.cc
  src/core/lib/transport/pid_controller.cc
  src/core/lib/transport/status_conversion.cc
  src/core/lib/transport/tcp_connect_handshaker.cc
  src/core/lib/transport/timeout_encoding.cc
  src/core/lib/transport/transport.cc
  src/core/lib/transport/transport_op_string.cc
  src/core/lib/uri/uri_parser.cc
  src/core/plugin_registry/grpc_plugin_registry.cc
  src/core/plugin_registry/grpc_plugin_registry_noextra.cc
  src/core/tsi/alts/handshaker/transport_security_common_api.cc
  src/core/tsi/fake_transport_security.cc
  src/core/tsi/local_transport_security.cc
  src/core/tsi/transport_security.cc
  src/core/tsi/transport_security_grpc.cc
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
  ${gRPC_ADDITIONAL_DLL_SRC}
)

target_compile_features(grpc_unsecure PUBLIC cxx_std_14)

set_target_properties(grpc_unsecure PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc_unsecure PROPERTIES COMPILE_PDB_NAME "grpc_unsecure"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  set_target_properties(grpc_unsecure PROPERTIES DEFINE_SYMBOL "GRPC_DLL_EXPORTS")
  if(BUILD_SHARED_LIBS)
    target_compile_definitions(grpc_unsecure INTERFACE GRPC_DLL_IMPORTS)
  endif()
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_unsecure.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc_unsecure
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(grpc_unsecure
  ${_gRPC_ALLTARGETS_LIBRARIES}
  upb_collections_lib
  upb
  utf8_range_lib
  ${_gRPC_ZLIB_LIBRARIES}
  absl::algorithm_container
  absl::cleanup
  absl::flat_hash_map
  absl::flat_hash_set
  absl::inlined_vector
  absl::bind_front
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::random_bit_gen_ref
  absl::random_distributions
  absl::statusor
  absl::span
  absl::utility
  ${_gRPC_CARES_LIBRARIES}
  gpr
  ${_gRPC_ADDRESS_SORTING_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
  target_link_libraries(grpc_unsecure "-framework CoreFoundation")
endif()

foreach(_hdr
  include/grpc/byte_buffer.h
  include/grpc/byte_buffer_reader.h
  include/grpc/census.h
  include/grpc/compression.h
  include/grpc/event_engine/endpoint_config.h
  include/grpc/event_engine/event_engine.h
  include/grpc/event_engine/internal/memory_allocator_impl.h
  include/grpc/event_engine/internal/slice_cast.h
  include/grpc/event_engine/memory_allocator.h
  include/grpc/event_engine/memory_request.h
  include/grpc/event_engine/port.h
  include/grpc/event_engine/slice.h
  include/grpc/event_engine/slice_buffer.h
  include/grpc/fork.h
  include/grpc/grpc.h
  include/grpc/grpc_audit_logging.h
  include/grpc/grpc_crl_provider.h
  include/grpc/grpc_posix.h
  include/grpc/grpc_security.h
  include/grpc/grpc_security_constants.h
  include/grpc/impl/channel_arg_names.h
  include/grpc/impl/codegen/atm.h
  include/grpc/impl/codegen/atm_gcc_atomic.h
  include/grpc/impl/codegen/atm_gcc_sync.h
  include/grpc/impl/codegen/atm_windows.h
  include/grpc/impl/codegen/byte_buffer.h
  include/grpc/impl/codegen/byte_buffer_reader.h
  include/grpc/impl/codegen/compression_types.h
  include/grpc/impl/codegen/connectivity_state.h
  include/grpc/impl/codegen/fork.h
  include/grpc/impl/codegen/gpr_types.h
  include/grpc/impl/codegen/grpc_types.h
  include/grpc/impl/codegen/log.h
  include/grpc/impl/codegen/port_platform.h
  include/grpc/impl/codegen/propagation_bits.h
  include/grpc/impl/codegen/slice.h
  include/grpc/impl/codegen/status.h
  include/grpc/impl/codegen/sync.h
  include/grpc/impl/codegen/sync_abseil.h
  include/grpc/impl/codegen/sync_custom.h
  include/grpc/impl/codegen/sync_generic.h
  include/grpc/impl/codegen/sync_posix.h
  include/grpc/impl/codegen/sync_windows.h
  include/grpc/impl/compression_types.h
  include/grpc/impl/connectivity_state.h
  include/grpc/impl/grpc_types.h
  include/grpc/impl/propagation_bits.h
  include/grpc/impl/slice_type.h
  include/grpc/load_reporting.h
  include/grpc/slice.h
  include/grpc/slice_buffer.h
  include/grpc/status.h
  include/grpc/support/alloc.h
  include/grpc/support/atm_gcc_atomic.h
  include/grpc/support/atm_gcc_sync.h
  include/grpc/support/atm_windows.h
  include/grpc/support/cpu.h
  include/grpc/support/json.h
  include/grpc/support/log.h
  include/grpc/support/log_windows.h
  include/grpc/support/port_platform.h
  include/grpc/support/string_util.h
  include/grpc/support/sync.h
  include/grpc/support/sync_abseil.h
  include/grpc/support/sync_custom.h
  include/grpc/support/sync_generic.h
  include/grpc/support/sync_posix.h
  include/grpc/support/sync_windows.h
  include/grpc/support/thd_id.h
  include/grpc/support/time.h
  include/grpc/support/workaround_list.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc_unsecure EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

if(gRPC_BUILD_TESTS)


add_library(gtest
  third_party/googletest/googlemock/src/gmock-cardinalities.cc
  third_party/googletest/googlemock/src/gmock-internal-utils.cc
  third_party/googletest/googlemock/src/gmock-matchers.cc
  third_party/googletest/googlemock/src/gmock-spec-builders.cc
  third_party/googletest/googlemock/src/gmock.cc
  third_party/googletest/googletest/src/gtest-assertion-result.cc
  third_party/googletest/googletest/src/gtest-death-test.cc
  third_party/googletest/googletest/src/gtest-filepath.cc
  third_party/googletest/googletest/src/gtest-matchers.cc
  third_party/googletest/googletest/src/gtest-port.cc
  third_party/googletest/googletest/src/gtest-printers.cc
  third_party/googletest/googletest/src/gtest-test-part.cc
  third_party/googletest/googletest/src/gtest-typed-test.cc
  third_party/googletest/googletest/src/gtest.cc
)

target_compile_features(gtest PUBLIC cxx_std_14)

set_target_properties(gtest PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(gtest PROPERTIES COMPILE_PDB_NAME "gtest"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gtest.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(gtest
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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
)
target_link_libraries(gtest
  ${_gRPC_ALLTARGETS_LIBRARIES}
  ${_gRPC_RE2_LIBRARIES}
  absl::flat_hash_set
  absl::failure_signal_handler
  absl::stacktrace
  absl::symbolize
  absl::flags
  absl::flags_parse
  absl::flags_reflection
  absl::flags_usage
  absl::strings
  absl::any
  absl::optional
  absl::variant
)


endif()


add_library(upb ${_gRPC_STATIC_WIN32}
  third_party/upb/upb/base/status.c
  third_party/upb/upb/mem/alloc.c
  third_party/upb/upb/mem/arena.c
)

target_compile_features(upb PUBLIC cxx_std_14)

set_target_properties(upb PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(upb PROPERTIES COMPILE_PDB_NAME "upb"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(upb
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(upb
  ${_gRPC_ALLTARGETS_LIBRARIES}
)



if(gRPC_INSTALL)
  install(TARGETS upb EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(upb_collections_lib ${_gRPC_STATIC_WIN32}
  third_party/upb/upb/base/status.c
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/mem/alloc.c
  third_party/upb/upb/mem/arena.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
)

target_compile_features(upb_collections_lib PUBLIC cxx_std_14)

set_target_properties(upb_collections_lib PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(upb_collections_lib PROPERTIES COMPILE_PDB_NAME "upb_collections_lib"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_collections_lib.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(upb_collections_lib
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(upb_collections_lib
  ${_gRPC_ALLTARGETS_LIBRARIES}
)



if(gRPC_INSTALL)
  install(TARGETS upb_collections_lib EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(upb_json_lib ${_gRPC_STATIC_WIN32}
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  third_party/upb/upb/base/status.c
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/json/decode.c
  third_party/upb/upb/json/encode.c
  third_party/upb/upb/lex/atoi.c
  third_party/upb/upb/lex/round_trip.c
  third_party/upb/upb/lex/strtod.c
  third_party/upb/upb/lex/unicode.c
  third_party/upb/upb/mem/alloc.c
  third_party/upb/upb/mem/arena.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/reflection/def_pool.c
  third_party/upb/upb/reflection/def_type.c
  third_party/upb/upb/reflection/desc_state.c
  third_party/upb/upb/reflection/enum_def.c
  third_party/upb/upb/reflection/enum_reserved_range.c
  third_party/upb/upb/reflection/enum_value_def.c
  third_party/upb/upb/reflection/extension_range.c
  third_party/upb/upb/reflection/field_def.c
  third_party/upb/upb/reflection/file_def.c
  third_party/upb/upb/reflection/internal/def_builder.c
  third_party/upb/upb/reflection/internal/strdup2.c
  third_party/upb/upb/reflection/message.c
  third_party/upb/upb/reflection/message_def.c
  third_party/upb/upb/reflection/message_reserved_range.c
  third_party/upb/upb/reflection/method_def.c
  third_party/upb/upb/reflection/oneof_def.c
  third_party/upb/upb/reflection/service_def.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)

target_compile_features(upb_json_lib PUBLIC cxx_std_14)

set_target_properties(upb_json_lib PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(upb_json_lib PROPERTIES COMPILE_PDB_NAME "upb_json_lib"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_json_lib.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(upb_json_lib
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(upb_json_lib
  ${_gRPC_ALLTARGETS_LIBRARIES}
  utf8_range_lib
)



if(gRPC_INSTALL)
  install(TARGETS upb_json_lib EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(upb_textformat_lib ${_gRPC_STATIC_WIN32}
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  third_party/upb/upb/base/status.c
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/lex/atoi.c
  third_party/upb/upb/lex/round_trip.c
  third_party/upb/upb/lex/strtod.c
  third_party/upb/upb/lex/unicode.c
  third_party/upb/upb/mem/alloc.c
  third_party/upb/upb/mem/arena.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/reflection/def_pool.c
  third_party/upb/upb/reflection/def_type.c
  third_party/upb/upb/reflection/desc_state.c
  third_party/upb/upb/reflection/enum_def.c
  third_party/upb/upb/reflection/enum_reserved_range.c
  third_party/upb/upb/reflection/enum_value_def.c
  third_party/upb/upb/reflection/extension_range.c
  third_party/upb/upb/reflection/field_def.c
  third_party/upb/upb/reflection/file_def.c
  third_party/upb/upb/reflection/internal/def_builder.c
  third_party/upb/upb/reflection/internal/strdup2.c
  third_party/upb/upb/reflection/message.c
  third_party/upb/upb/reflection/message_def.c
  third_party/upb/upb/reflection/message_reserved_range.c
  third_party/upb/upb/reflection/method_def.c
  third_party/upb/upb/reflection/oneof_def.c
  third_party/upb/upb/reflection/service_def.c
  third_party/upb/upb/text/encode.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)

target_compile_features(upb_textformat_lib PUBLIC cxx_std_14)

set_target_properties(upb_textformat_lib PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(upb_textformat_lib PROPERTIES COMPILE_PDB_NAME "upb_textformat_lib"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_textformat_lib.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(upb_textformat_lib
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(upb_textformat_lib
  ${_gRPC_ALLTARGETS_LIBRARIES}
  utf8_range_lib
)



if(gRPC_INSTALL)
  install(TARGETS upb_textformat_lib EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(utf8_range_lib
  third_party/utf8_range/naive.c
  third_party/utf8_range/range2-neon.c
  third_party/utf8_range/range2-sse.c
)

target_compile_features(utf8_range_lib PUBLIC cxx_std_14)

set_target_properties(utf8_range_lib PROPERTIES
  VERSION ${gRPC_CORE_VERSION}
  SOVERSION ${gRPC_CORE_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(utf8_range_lib PROPERTIES COMPILE_PDB_NAME "utf8_range_lib"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/utf8_range_lib.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(utf8_range_lib
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
)
target_link_libraries(utf8_range_lib
  ${_gRPC_ALLTARGETS_LIBRARIES}
)



if(gRPC_INSTALL)
  install(TARGETS utf8_range_lib EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

if(gRPC_BUILD_TESTS)

if(gRPC_BUILD_CODEGEN)

add_library(benchmark_helpers
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_mock.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
  test/cpp/microbenchmarks/helpers.cc
)

target_compile_features(benchmark_helpers PUBLIC cxx_std_14)

set_target_properties(benchmark_helpers PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(benchmark_helpers PROPERTIES COMPILE_PDB_NAME "benchmark_helpers"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/benchmark_helpers.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(benchmark_helpers
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(benchmark_helpers
  ${_gRPC_ALLTARGETS_LIBRARIES}
  ${_gRPC_BENCHMARK_LIBRARIES}
  grpc++_unsecure
  grpc_test_util_unsecure
  grpc++_test_config
)

endif()

endif()


add_library(grpc++
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/client/xds_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/server/xds_server_builder.cc
  src/cpp/server/xds_server_credentials.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  ${gRPC_UPB_GEN_DUPL_SRC}
)

target_compile_features(grpc++ PUBLIC cxx_std_14)

set_target_properties(grpc++ PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++ PROPERTIES COMPILE_PDB_NAME "grpc++"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  set_target_properties(grpc++ PROPERTIES DEFINE_SYMBOL "GRPCXX_DLL_EXPORTS")
  if(BUILD_SHARED_LIBS)
    target_compile_definitions(grpc++ INTERFACE GRPCXX_DLL_IMPORTS)
  endif()
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc
  ${_gRPC_PROTOBUF_LIBRARIES}
)

foreach(_hdr
  include/grpc++/alarm.h
  include/grpc++/channel.h
  include/grpc++/client_context.h
  include/grpc++/completion_queue.h
  include/grpc++/create_channel.h
  include/grpc++/create_channel_posix.h
  include/grpc++/ext/health_check_service_server_builder_option.h
  include/grpc++/generic/async_generic_service.h
  include/grpc++/generic/generic_stub.h
  include/grpc++/grpc++.h
  include/grpc++/health_check_service_interface.h
  include/grpc++/impl/call.h
  include/grpc++/impl/channel_argument_option.h
  include/grpc++/impl/client_unary_call.h
  include/grpc++/impl/codegen/async_stream.h
  include/grpc++/impl/codegen/async_unary_call.h
  include/grpc++/impl/codegen/byte_buffer.h
  include/grpc++/impl/codegen/call.h
  include/grpc++/impl/codegen/call_hook.h
  include/grpc++/impl/codegen/channel_interface.h
  include/grpc++/impl/codegen/client_context.h
  include/grpc++/impl/codegen/client_unary_call.h
  include/grpc++/impl/codegen/completion_queue.h
  include/grpc++/impl/codegen/completion_queue_tag.h
  include/grpc++/impl/codegen/config.h
  include/grpc++/impl/codegen/config_protobuf.h
  include/grpc++/impl/codegen/create_auth_context.h
  include/grpc++/impl/codegen/metadata_map.h
  include/grpc++/impl/codegen/method_handler_impl.h
  include/grpc++/impl/codegen/proto_utils.h
  include/grpc++/impl/codegen/rpc_method.h
  include/grpc++/impl/codegen/rpc_service_method.h
  include/grpc++/impl/codegen/security/auth_context.h
  include/grpc++/impl/codegen/serialization_traits.h
  include/grpc++/impl/codegen/server_context.h
  include/grpc++/impl/codegen/server_interface.h
  include/grpc++/impl/codegen/service_type.h
  include/grpc++/impl/codegen/slice.h
  include/grpc++/impl/codegen/status.h
  include/grpc++/impl/codegen/status_code_enum.h
  include/grpc++/impl/codegen/string_ref.h
  include/grpc++/impl/codegen/stub_options.h
  include/grpc++/impl/codegen/sync_stream.h
  include/grpc++/impl/codegen/time.h
  include/grpc++/impl/grpc_library.h
  include/grpc++/impl/method_handler_impl.h
  include/grpc++/impl/rpc_method.h
  include/grpc++/impl/rpc_service_method.h
  include/grpc++/impl/serialization_traits.h
  include/grpc++/impl/server_builder_option.h
  include/grpc++/impl/server_builder_plugin.h
  include/grpc++/impl/server_initializer.h
  include/grpc++/impl/service_type.h
  include/grpc++/resource_quota.h
  include/grpc++/security/auth_context.h
  include/grpc++/security/auth_metadata_processor.h
  include/grpc++/security/credentials.h
  include/grpc++/security/server_credentials.h
  include/grpc++/server.h
  include/grpc++/server_builder.h
  include/grpc++/server_context.h
  include/grpc++/server_posix.h
  include/grpc++/support/async_stream.h
  include/grpc++/support/async_unary_call.h
  include/grpc++/support/byte_buffer.h
  include/grpc++/support/channel_arguments.h
  include/grpc++/support/config.h
  include/grpc++/support/slice.h
  include/grpc++/support/status.h
  include/grpc++/support/status_code_enum.h
  include/grpc++/support/string_ref.h
  include/grpc++/support/stub_options.h
  include/grpc++/support/sync_stream.h
  include/grpc++/support/time.h
  include/grpcpp/alarm.h
  include/grpcpp/channel.h
  include/grpcpp/client_context.h
  include/grpcpp/completion_queue.h
  include/grpcpp/create_channel.h
  include/grpcpp/create_channel_binder.h
  include/grpcpp/create_channel_posix.h
  include/grpcpp/ext/call_metric_recorder.h
  include/grpcpp/ext/health_check_service_server_builder_option.h
  include/grpcpp/ext/server_metric_recorder.h
  include/grpcpp/generic/async_generic_service.h
  include/grpcpp/generic/generic_stub.h
  include/grpcpp/grpcpp.h
  include/grpcpp/health_check_service_interface.h
  include/grpcpp/impl/call.h
  include/grpcpp/impl/call_hook.h
  include/grpcpp/impl/call_op_set.h
  include/grpcpp/impl/call_op_set_interface.h
  include/grpcpp/impl/channel_argument_option.h
  include/grpcpp/impl/channel_interface.h
  include/grpcpp/impl/client_unary_call.h
  include/grpcpp/impl/codegen/async_generic_service.h
  include/grpcpp/impl/codegen/async_stream.h
  include/grpcpp/impl/codegen/async_unary_call.h
  include/grpcpp/impl/codegen/byte_buffer.h
  include/grpcpp/impl/codegen/call.h
  include/grpcpp/impl/codegen/call_hook.h
  include/grpcpp/impl/codegen/call_op_set.h
  include/grpcpp/impl/codegen/call_op_set_interface.h
  include/grpcpp/impl/codegen/callback_common.h
  include/grpcpp/impl/codegen/channel_interface.h
  include/grpcpp/impl/codegen/client_callback.h
  include/grpcpp/impl/codegen/client_context.h
  include/grpcpp/impl/codegen/client_interceptor.h
  include/grpcpp/impl/codegen/client_unary_call.h
  include/grpcpp/impl/codegen/completion_queue.h
  include/grpcpp/impl/codegen/completion_queue_tag.h
  include/grpcpp/impl/codegen/config.h
  include/grpcpp/impl/codegen/config_protobuf.h
  include/grpcpp/impl/codegen/create_auth_context.h
  include/grpcpp/impl/codegen/delegating_channel.h
  include/grpcpp/impl/codegen/intercepted_channel.h
  include/grpcpp/impl/codegen/interceptor.h
  include/grpcpp/impl/codegen/interceptor_common.h
  include/grpcpp/impl/codegen/message_allocator.h
  include/grpcpp/impl/codegen/metadata_map.h
  include/grpcpp/impl/codegen/method_handler.h
  include/grpcpp/impl/codegen/method_handler_impl.h
  include/grpcpp/impl/codegen/proto_buffer_reader.h
  include/grpcpp/impl/codegen/proto_buffer_writer.h
  include/grpcpp/impl/codegen/proto_utils.h
  include/grpcpp/impl/codegen/rpc_method.h
  include/grpcpp/impl/codegen/rpc_service_method.h
  include/grpcpp/impl/codegen/security/auth_context.h
  include/grpcpp/impl/codegen/serialization_traits.h
  include/grpcpp/impl/codegen/server_callback.h
  include/grpcpp/impl/codegen/server_callback_handlers.h
  include/grpcpp/impl/codegen/server_context.h
  include/grpcpp/impl/codegen/server_interceptor.h
  include/grpcpp/impl/codegen/server_interface.h
  include/grpcpp/impl/codegen/service_type.h
  include/grpcpp/impl/codegen/slice.h
  include/grpcpp/impl/codegen/status.h
  include/grpcpp/impl/codegen/status_code_enum.h
  include/grpcpp/impl/codegen/string_ref.h
  include/grpcpp/impl/codegen/stub_options.h
  include/grpcpp/impl/codegen/sync.h
  include/grpcpp/impl/codegen/sync_stream.h
  include/grpcpp/impl/codegen/time.h
  include/grpcpp/impl/completion_queue_tag.h
  include/grpcpp/impl/create_auth_context.h
  include/grpcpp/impl/delegating_channel.h
  include/grpcpp/impl/grpc_library.h
  include/grpcpp/impl/intercepted_channel.h
  include/grpcpp/impl/interceptor_common.h
  include/grpcpp/impl/metadata_map.h
  include/grpcpp/impl/method_handler_impl.h
  include/grpcpp/impl/proto_utils.h
  include/grpcpp/impl/rpc_method.h
  include/grpcpp/impl/rpc_service_method.h
  include/grpcpp/impl/serialization_traits.h
  include/grpcpp/impl/server_builder_option.h
  include/grpcpp/impl/server_builder_plugin.h
  include/grpcpp/impl/server_callback_handlers.h
  include/grpcpp/impl/server_initializer.h
  include/grpcpp/impl/service_type.h
  include/grpcpp/impl/status.h
  include/grpcpp/impl/sync.h
  include/grpcpp/resource_quota.h
  include/grpcpp/security/audit_logging.h
  include/grpcpp/security/auth_context.h
  include/grpcpp/security/auth_metadata_processor.h
  include/grpcpp/security/authorization_policy_provider.h
  include/grpcpp/security/binder_credentials.h
  include/grpcpp/security/binder_security_policy.h
  include/grpcpp/security/credentials.h
  include/grpcpp/security/server_credentials.h
  include/grpcpp/security/tls_certificate_provider.h
  include/grpcpp/security/tls_certificate_verifier.h
  include/grpcpp/security/tls_credentials_options.h
  include/grpcpp/security/tls_crl_provider.h
  include/grpcpp/server.h
  include/grpcpp/server_builder.h
  include/grpcpp/server_context.h
  include/grpcpp/server_interface.h
  include/grpcpp/server_posix.h
  include/grpcpp/support/async_stream.h
  include/grpcpp/support/async_unary_call.h
  include/grpcpp/support/byte_buffer.h
  include/grpcpp/support/callback_common.h
  include/grpcpp/support/channel_arguments.h
  include/grpcpp/support/client_callback.h
  include/grpcpp/support/client_interceptor.h
  include/grpcpp/support/config.h
  include/grpcpp/support/interceptor.h
  include/grpcpp/support/message_allocator.h
  include/grpcpp/support/method_handler.h
  include/grpcpp/support/proto_buffer_reader.h
  include/grpcpp/support/proto_buffer_writer.h
  include/grpcpp/support/server_callback.h
  include/grpcpp/support/server_interceptor.h
  include/grpcpp/support/slice.h
  include/grpcpp/support/status.h
  include/grpcpp/support/status_code_enum.h
  include/grpcpp/support/string_ref.h
  include/grpcpp/support/stub_options.h
  include/grpcpp/support/sync_stream.h
  include/grpcpp/support/time.h
  include/grpcpp/support/validate_service_config.h
  include/grpcpp/version_info.h
  include/grpcpp/xds_server_builder.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc++ EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(grpc++_alts
  src/cpp/common/alts_context.cc
  src/cpp/common/alts_util.cc
  ${gRPC_UPB_GEN_DUPL_SRC}
)

target_compile_features(grpc++_alts PUBLIC cxx_std_14)

set_target_properties(grpc++_alts PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_alts PROPERTIES COMPILE_PDB_NAME "grpc++_alts"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_alts.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_alts
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++_alts
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++
)

foreach(_hdr
  include/grpcpp/security/alts_context.h
  include/grpcpp/security/alts_util.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc++_alts EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(grpc++_error_details
  src/cpp/util/error_details.cc
)

target_compile_features(grpc++_error_details PUBLIC cxx_std_14)

set_target_properties(grpc++_error_details PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_error_details PROPERTIES COMPILE_PDB_NAME "grpc++_error_details"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_error_details.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_error_details
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++_error_details
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++
)

foreach(_hdr
  include/grpc++/support/error_details.h
  include/grpcpp/support/error_details.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc++_error_details EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()


if(gRPC_BUILD_CODEGEN)

add_library(grpc++_reflection
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  src/cpp/ext/proto_server_reflection.cc
  src/cpp/ext/proto_server_reflection_plugin.cc
)

target_compile_features(grpc++_reflection PUBLIC cxx_std_14)

set_target_properties(grpc++_reflection PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_reflection PROPERTIES COMPILE_PDB_NAME "grpc++_reflection"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_reflection.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_reflection
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++_reflection
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++
)

foreach(_hdr
  include/grpc++/ext/proto_server_reflection_plugin.h
  include/grpcpp/ext/proto_server_reflection_plugin.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()
endif()

if(gRPC_BUILD_CODEGEN)

if(gRPC_INSTALL)
  install(TARGETS grpc++_reflection EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_TESTS)


add_library(grpc++_test
  src/cpp/client/channel_test_peer.cc
)

target_compile_features(grpc++_test PUBLIC cxx_std_14)

set_target_properties(grpc++_test PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_test PROPERTIES COMPILE_PDB_NAME "grpc++_test"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_test.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_test
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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(grpc++_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
)

foreach(_hdr
  include/grpc++/test/mock_stream.h
  include/grpc++/test/server_context_test_spouse.h
  include/grpcpp/test/channel_test_peer.h
  include/grpcpp/test/client_context_test_peer.h
  include/grpcpp/test/default_reactor_test_peer.h
  include/grpcpp/test/mock_stream.h
  include/grpcpp/test/server_context_test_spouse.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()

endif()
if(gRPC_BUILD_TESTS)


add_library(grpc++_test_config
  test/cpp/util/test_config_cc.cc
)

target_compile_features(grpc++_test_config PUBLIC cxx_std_14)

set_target_properties(grpc++_test_config PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_test_config PROPERTIES COMPILE_PDB_NAME "grpc++_test_config"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_test_config.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_test_config
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++_test_config
  ${_gRPC_ALLTARGETS_LIBRARIES}
  absl::flags_parse
  gpr
)


endif()
if(gRPC_BUILD_TESTS)


add_library(grpc++_test_util
  src/core/lib/gpr/subprocess_posix.cc
  src/core/lib/gpr/subprocess_windows.cc
  test/core/end2end/data/client_certs.cc
  test/core/end2end/data/server1_cert.cc
  test/core/end2end/data/server1_key.cc
  test/core/end2end/data/test_root_cert.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
  test/cpp/util/byte_buffer_proto_helper.cc
  test/cpp/util/create_test_channel.cc
  test/cpp/util/string_ref_helper.cc
  test/cpp/util/subprocess.cc
  test/cpp/util/test_credentials_provider.cc
)

target_compile_features(grpc++_test_util PUBLIC cxx_std_14)

set_target_properties(grpc++_test_util PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_test_util PROPERTIES COMPILE_PDB_NAME "grpc++_test_util"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_test_util.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_test_util
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++_test_util
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++
  grpc_test_util
)


endif()


add_library(grpc++_unsecure
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/insecure_create_auth_context.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  ${gRPC_UPB_GEN_DUPL_SRC}
)

target_compile_features(grpc++_unsecure PUBLIC cxx_std_14)

set_target_properties(grpc++_unsecure PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc++_unsecure PROPERTIES COMPILE_PDB_NAME "grpc++_unsecure"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  set_target_properties(grpc++_unsecure PROPERTIES DEFINE_SYMBOL "GRPCXX_DLL_EXPORTS")
  if(BUILD_SHARED_LIBS)
    target_compile_definitions(grpc++_unsecure INTERFACE GRPCXX_DLL_IMPORTS)
  endif()
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_unsecure.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc++_unsecure
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc++_unsecure
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_unsecure
  ${_gRPC_PROTOBUF_LIBRARIES}
)

foreach(_hdr
  include/grpc++/alarm.h
  include/grpc++/channel.h
  include/grpc++/client_context.h
  include/grpc++/completion_queue.h
  include/grpc++/create_channel.h
  include/grpc++/create_channel_posix.h
  include/grpc++/ext/health_check_service_server_builder_option.h
  include/grpc++/generic/async_generic_service.h
  include/grpc++/generic/generic_stub.h
  include/grpc++/grpc++.h
  include/grpc++/health_check_service_interface.h
  include/grpc++/impl/call.h
  include/grpc++/impl/channel_argument_option.h
  include/grpc++/impl/client_unary_call.h
  include/grpc++/impl/codegen/async_stream.h
  include/grpc++/impl/codegen/async_unary_call.h
  include/grpc++/impl/codegen/byte_buffer.h
  include/grpc++/impl/codegen/call.h
  include/grpc++/impl/codegen/call_hook.h
  include/grpc++/impl/codegen/channel_interface.h
  include/grpc++/impl/codegen/client_context.h
  include/grpc++/impl/codegen/client_unary_call.h
  include/grpc++/impl/codegen/completion_queue.h
  include/grpc++/impl/codegen/completion_queue_tag.h
  include/grpc++/impl/codegen/config.h
  include/grpc++/impl/codegen/config_protobuf.h
  include/grpc++/impl/codegen/create_auth_context.h
  include/grpc++/impl/codegen/metadata_map.h
  include/grpc++/impl/codegen/method_handler_impl.h
  include/grpc++/impl/codegen/proto_utils.h
  include/grpc++/impl/codegen/rpc_method.h
  include/grpc++/impl/codegen/rpc_service_method.h
  include/grpc++/impl/codegen/security/auth_context.h
  include/grpc++/impl/codegen/serialization_traits.h
  include/grpc++/impl/codegen/server_context.h
  include/grpc++/impl/codegen/server_interface.h
  include/grpc++/impl/codegen/service_type.h
  include/grpc++/impl/codegen/slice.h
  include/grpc++/impl/codegen/status.h
  include/grpc++/impl/codegen/status_code_enum.h
  include/grpc++/impl/codegen/string_ref.h
  include/grpc++/impl/codegen/stub_options.h
  include/grpc++/impl/codegen/sync_stream.h
  include/grpc++/impl/codegen/time.h
  include/grpc++/impl/grpc_library.h
  include/grpc++/impl/method_handler_impl.h
  include/grpc++/impl/rpc_method.h
  include/grpc++/impl/rpc_service_method.h
  include/grpc++/impl/serialization_traits.h
  include/grpc++/impl/server_builder_option.h
  include/grpc++/impl/server_builder_plugin.h
  include/grpc++/impl/server_initializer.h
  include/grpc++/impl/service_type.h
  include/grpc++/resource_quota.h
  include/grpc++/security/auth_context.h
  include/grpc++/security/auth_metadata_processor.h
  include/grpc++/security/credentials.h
  include/grpc++/security/server_credentials.h
  include/grpc++/server.h
  include/grpc++/server_builder.h
  include/grpc++/server_context.h
  include/grpc++/server_posix.h
  include/grpc++/support/async_stream.h
  include/grpc++/support/async_unary_call.h
  include/grpc++/support/byte_buffer.h
  include/grpc++/support/channel_arguments.h
  include/grpc++/support/config.h
  include/grpc++/support/slice.h
  include/grpc++/support/status.h
  include/grpc++/support/status_code_enum.h
  include/grpc++/support/string_ref.h
  include/grpc++/support/stub_options.h
  include/grpc++/support/sync_stream.h
  include/grpc++/support/time.h
  include/grpcpp/alarm.h
  include/grpcpp/channel.h
  include/grpcpp/client_context.h
  include/grpcpp/completion_queue.h
  include/grpcpp/create_channel.h
  include/grpcpp/create_channel_posix.h
  include/grpcpp/ext/call_metric_recorder.h
  include/grpcpp/ext/health_check_service_server_builder_option.h
  include/grpcpp/ext/server_metric_recorder.h
  include/grpcpp/generic/async_generic_service.h
  include/grpcpp/generic/generic_stub.h
  include/grpcpp/grpcpp.h
  include/grpcpp/health_check_service_interface.h
  include/grpcpp/impl/call.h
  include/grpcpp/impl/call_hook.h
  include/grpcpp/impl/call_op_set.h
  include/grpcpp/impl/call_op_set_interface.h
  include/grpcpp/impl/channel_argument_option.h
  include/grpcpp/impl/channel_interface.h
  include/grpcpp/impl/client_unary_call.h
  include/grpcpp/impl/codegen/async_generic_service.h
  include/grpcpp/impl/codegen/async_stream.h
  include/grpcpp/impl/codegen/async_unary_call.h
  include/grpcpp/impl/codegen/byte_buffer.h
  include/grpcpp/impl/codegen/call.h
  include/grpcpp/impl/codegen/call_hook.h
  include/grpcpp/impl/codegen/call_op_set.h
  include/grpcpp/impl/codegen/call_op_set_interface.h
  include/grpcpp/impl/codegen/callback_common.h
  include/grpcpp/impl/codegen/channel_interface.h
  include/grpcpp/impl/codegen/client_callback.h
  include/grpcpp/impl/codegen/client_context.h
  include/grpcpp/impl/codegen/client_interceptor.h
  include/grpcpp/impl/codegen/client_unary_call.h
  include/grpcpp/impl/codegen/completion_queue.h
  include/grpcpp/impl/codegen/completion_queue_tag.h
  include/grpcpp/impl/codegen/config.h
  include/grpcpp/impl/codegen/config_protobuf.h
  include/grpcpp/impl/codegen/create_auth_context.h
  include/grpcpp/impl/codegen/delegating_channel.h
  include/grpcpp/impl/codegen/intercepted_channel.h
  include/grpcpp/impl/codegen/interceptor.h
  include/grpcpp/impl/codegen/interceptor_common.h
  include/grpcpp/impl/codegen/message_allocator.h
  include/grpcpp/impl/codegen/metadata_map.h
  include/grpcpp/impl/codegen/method_handler.h
  include/grpcpp/impl/codegen/method_handler_impl.h
  include/grpcpp/impl/codegen/proto_buffer_reader.h
  include/grpcpp/impl/codegen/proto_buffer_writer.h
  include/grpcpp/impl/codegen/proto_utils.h
  include/grpcpp/impl/codegen/rpc_method.h
  include/grpcpp/impl/codegen/rpc_service_method.h
  include/grpcpp/impl/codegen/security/auth_context.h
  include/grpcpp/impl/codegen/serialization_traits.h
  include/grpcpp/impl/codegen/server_callback.h
  include/grpcpp/impl/codegen/server_callback_handlers.h
  include/grpcpp/impl/codegen/server_context.h
  include/grpcpp/impl/codegen/server_interceptor.h
  include/grpcpp/impl/codegen/server_interface.h
  include/grpcpp/impl/codegen/service_type.h
  include/grpcpp/impl/codegen/slice.h
  include/grpcpp/impl/codegen/status.h
  include/grpcpp/impl/codegen/status_code_enum.h
  include/grpcpp/impl/codegen/string_ref.h
  include/grpcpp/impl/codegen/stub_options.h
  include/grpcpp/impl/codegen/sync.h
  include/grpcpp/impl/codegen/sync_stream.h
  include/grpcpp/impl/codegen/time.h
  include/grpcpp/impl/completion_queue_tag.h
  include/grpcpp/impl/create_auth_context.h
  include/grpcpp/impl/delegating_channel.h
  include/grpcpp/impl/grpc_library.h
  include/grpcpp/impl/intercepted_channel.h
  include/grpcpp/impl/interceptor_common.h
  include/grpcpp/impl/metadata_map.h
  include/grpcpp/impl/method_handler_impl.h
  include/grpcpp/impl/proto_utils.h
  include/grpcpp/impl/rpc_method.h
  include/grpcpp/impl/rpc_service_method.h
  include/grpcpp/impl/serialization_traits.h
  include/grpcpp/impl/server_builder_option.h
  include/grpcpp/impl/server_builder_plugin.h
  include/grpcpp/impl/server_callback_handlers.h
  include/grpcpp/impl/server_initializer.h
  include/grpcpp/impl/service_type.h
  include/grpcpp/impl/status.h
  include/grpcpp/impl/sync.h
  include/grpcpp/resource_quota.h
  include/grpcpp/security/audit_logging.h
  include/grpcpp/security/auth_context.h
  include/grpcpp/security/auth_metadata_processor.h
  include/grpcpp/security/authorization_policy_provider.h
  include/grpcpp/security/credentials.h
  include/grpcpp/security/server_credentials.h
  include/grpcpp/security/tls_certificate_provider.h
  include/grpcpp/security/tls_certificate_verifier.h
  include/grpcpp/security/tls_credentials_options.h
  include/grpcpp/security/tls_crl_provider.h
  include/grpcpp/server.h
  include/grpcpp/server_builder.h
  include/grpcpp/server_context.h
  include/grpcpp/server_interface.h
  include/grpcpp/server_posix.h
  include/grpcpp/support/async_stream.h
  include/grpcpp/support/async_unary_call.h
  include/grpcpp/support/byte_buffer.h
  include/grpcpp/support/callback_common.h
  include/grpcpp/support/channel_arguments.h
  include/grpcpp/support/client_callback.h
  include/grpcpp/support/client_interceptor.h
  include/grpcpp/support/config.h
  include/grpcpp/support/interceptor.h
  include/grpcpp/support/message_allocator.h
  include/grpcpp/support/method_handler.h
  include/grpcpp/support/proto_buffer_reader.h
  include/grpcpp/support/proto_buffer_writer.h
  include/grpcpp/support/server_callback.h
  include/grpcpp/support/server_interceptor.h
  include/grpcpp/support/slice.h
  include/grpcpp/support/status.h
  include/grpcpp/support/status_code_enum.h
  include/grpcpp/support/string_ref.h
  include/grpcpp/support/stub_options.h
  include/grpcpp/support/sync_stream.h
  include/grpcpp/support/time.h
  include/grpcpp/support/validate_service_config.h
  include/grpcpp/version_info.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc++_unsecure EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(grpc_authorization_provider
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c
  src/core/lib/address_utils/parse_address.cc
  src/core/lib/address_utils/sockaddr_utils.cc
  src/core/lib/backoff/backoff.cc
  src/core/lib/backoff/random_early_detection.cc
  src/core/lib/channel/call_tracer.cc
  src/core/lib/channel/channel_args.cc
  src/core/lib/channel/channel_args_preconditioning.cc
  src/core/lib/channel/channel_stack.cc
  src/core/lib/channel/channel_stack_builder.cc
  src/core/lib/channel/channel_stack_builder_impl.cc
  src/core/lib/channel/channel_stack_trace.cc
  src/core/lib/channel/channel_trace.cc
  src/core/lib/channel/channelz.cc
  src/core/lib/channel/channelz_registry.cc
  src/core/lib/channel/connected_channel.cc
  src/core/lib/channel/promise_based_filter.cc
  src/core/lib/channel/server_call_tracer_filter.cc
  src/core/lib/channel/status_util.cc
  src/core/lib/compression/compression.cc
  src/core/lib/compression/compression_internal.cc
  src/core/lib/compression/message_compress.cc
  src/core/lib/config/core_configuration.cc
  src/core/lib/debug/event_log.cc
  src/core/lib/debug/histogram_view.cc
  src/core/lib/debug/stats.cc
  src/core/lib/debug/stats_data.cc
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/ares_resolver.cc
  src/core/lib/event_engine/cf_engine/cf_engine.cc
  src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc
  src/core/lib/event_engine/cf_engine/dns_service_resolver.cc
  src/core/lib/event_engine/channel_args_endpoint_config.cc
  src/core/lib/event_engine/default_event_engine.cc
  src/core/lib/event_engine/default_event_engine_factory.cc
  src/core/lib/event_engine/event_engine.cc
  src/core/lib/event_engine/forkable.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
  src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
  src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc
  src/core/lib/event_engine/posix_engine/internal_errqueue.cc
  src/core/lib/event_engine/posix_engine/lockfree_event.cc
  src/core/lib/event_engine/posix_engine/posix_endpoint.cc
  src/core/lib/event_engine/posix_engine/posix_engine.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc
  src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/posix_engine/timer.cc
  src/core/lib/event_engine/posix_engine/timer_heap.cc
  src/core/lib/event_engine/posix_engine/timer_manager.cc
  src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc
  src/core/lib/event_engine/resolved_address.cc
  src/core/lib/event_engine/shim.cc
  src/core/lib/event_engine/slice.cc
  src/core/lib/event_engine/slice_buffer.cc
  src/core/lib/event_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/thread_pool/thread_count.cc
  src/core/lib/event_engine/thread_pool/thread_pool_factory.cc
  src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc
  src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc
  src/core/lib/event_engine/time_util.cc
  src/core/lib/event_engine/trace.cc
  src/core/lib/event_engine/utils.cc
  src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
  src/core/lib/event_engine/windows/iocp.cc
  src/core/lib/event_engine/windows/win_socket.cc
  src/core/lib/event_engine/windows/windows_endpoint.cc
  src/core/lib/event_engine/windows/windows_engine.cc
  src/core/lib/event_engine/windows/windows_listener.cc
  src/core/lib/event_engine/work_queue/basic_work_queue.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/load_file.cc
  src/core/lib/gprpp/per_cpu.cc
  src/core/lib/gprpp/ref_counted_string.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/gprpp/time_averaged_stats.cc
  src/core/lib/gprpp/validation_errors.cc
  src/core/lib/gprpp/work_serializer.cc
  src/core/lib/handshaker/proxy_mapper_registry.cc
  src/core/lib/iomgr/buffer_list.cc
  src/core/lib/iomgr/call_combiner.cc
  src/core/lib/iomgr/cfstream_handle.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/dualstack_socket_posix.cc
  src/core/lib/iomgr/endpoint.cc
  src/core/lib/iomgr/endpoint_cfstream.cc
  src/core/lib/iomgr/endpoint_pair_posix.cc
  src/core/lib/iomgr/endpoint_pair_windows.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/error_cfstream.cc
  src/core/lib/iomgr/ev_apple.cc
  src/core/lib/iomgr/ev_epoll1_linux.cc
  src/core/lib/iomgr/ev_poll_posix.cc
  src/core/lib/iomgr/ev_posix.cc
  src/core/lib/iomgr/ev_windows.cc
  src/core/lib/iomgr/event_engine_shims/closure.cc
  src/core/lib/iomgr/event_engine_shims/endpoint.cc
  src/core/lib/iomgr/event_engine_shims/tcp_client.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/fork_posix.cc
  src/core/lib/iomgr/fork_windows.cc
  src/core/lib/iomgr/gethostname_fallback.cc
  src/core/lib/iomgr/gethostname_host_name_max.cc
  src/core/lib/iomgr/gethostname_sysconf.cc
  src/core/lib/iomgr/grpc_if_nametoindex_posix.cc
  src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc
  src/core/lib/iomgr/internal_errqueue.cc
  src/core/lib/iomgr/iocp_windows.cc
  src/core/lib/iomgr/iomgr.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/iomgr/iomgr_posix.cc
  src/core/lib/iomgr/iomgr_posix_cfstream.cc
  src/core/lib/iomgr/iomgr_windows.cc
  src/core/lib/iomgr/load_file.cc
  src/core/lib/iomgr/lockfree_event.cc
  src/core/lib/iomgr/polling_entity.cc
  src/core/lib/iomgr/pollset.cc
  src/core/lib/iomgr/pollset_set.cc
  src/core/lib/iomgr/pollset_set_windows.cc
  src/core/lib/iomgr/pollset_windows.cc
  src/core/lib/iomgr/resolve_address.cc
  src/core/lib/iomgr/resolve_address_posix.cc
  src/core/lib/iomgr/resolve_address_windows.cc
  src/core/lib/iomgr/sockaddr_utils_posix.cc
  src/core/lib/iomgr/socket_factory_posix.cc
  src/core/lib/iomgr/socket_mutator.cc
  src/core/lib/iomgr/socket_utils_common_posix.cc
  src/core/lib/iomgr/socket_utils_linux.cc
  src/core/lib/iomgr/socket_utils_posix.cc
  src/core/lib/iomgr/socket_utils_windows.cc
  src/core/lib/iomgr/socket_windows.cc
  src/core/lib/iomgr/systemd_utils.cc
  src/core/lib/iomgr/tcp_client.cc
  src/core/lib/iomgr/tcp_client_cfstream.cc
  src/core/lib/iomgr/tcp_client_posix.cc
  src/core/lib/iomgr/tcp_client_windows.cc
  src/core/lib/iomgr/tcp_posix.cc
  src/core/lib/iomgr/tcp_server.cc
  src/core/lib/iomgr/tcp_server_posix.cc
  src/core/lib/iomgr/tcp_server_utils_posix_common.cc
  src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
  src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc
  src/core/lib/iomgr/tcp_server_windows.cc
  src/core/lib/iomgr/tcp_windows.cc
  src/core/lib/iomgr/timer.cc
  src/core/lib/iomgr/timer_generic.cc
  src/core/lib/iomgr/timer_heap.cc
  src/core/lib/iomgr/timer_manager.cc
  src/core/lib/iomgr/unix_sockets_posix.cc
  src/core/lib/iomgr/unix_sockets_posix_noop.cc
  src/core/lib/iomgr/vsock.cc
  src/core/lib/iomgr/wakeup_fd_eventfd.cc
  src/core/lib/iomgr/wakeup_fd_nospecial.cc
  src/core/lib/iomgr/wakeup_fd_pipe.cc
  src/core/lib/iomgr/wakeup_fd_posix.cc
  src/core/lib/json/json_reader.cc
  src/core/lib/json/json_writer.cc
  src/core/lib/load_balancing/lb_policy.cc
  src/core/lib/load_balancing/lb_policy_registry.cc
  src/core/lib/matchers/matchers.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/party.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resolver/endpoint_addresses.cc
  src/core/lib/resolver/resolver.cc
  src/core/lib/resolver/resolver_registry.cc
  src/core/lib/resource_quota/api.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/security/authorization/audit_logging.cc
  src/core/lib/security/authorization/authorization_policy_provider_vtable.cc
  src/core/lib/security/authorization/evaluate_args.cc
  src/core/lib/security/authorization/grpc_authorization_engine.cc
  src/core/lib/security/authorization/grpc_authorization_policy_provider.cc
  src/core/lib/security/authorization/grpc_server_authz_filter.cc
  src/core/lib/security/authorization/matchers.cc
  src/core/lib/security/authorization/rbac_policy.cc
  src/core/lib/security/authorization/rbac_translator.cc
  src/core/lib/security/authorization/stdout_logger.cc
  src/core/lib/security/certificate_provider/certificate_provider_registry.cc
  src/core/lib/security/context/security_context.cc
  src/core/lib/security/credentials/alts/check_gcp_environment.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
  src/core/lib/security/credentials/call_creds_util.cc
  src/core/lib/security/credentials/composite/composite_credentials.cc
  src/core/lib/security/credentials/credentials.cc
  src/core/lib/security/credentials/plugin/plugin_credentials.cc
  src/core/lib/security/credentials/tls/tls_utils.cc
  src/core/lib/security/security_connector/load_system_roots_fallback.cc
  src/core/lib/security/security_connector/load_system_roots_supported.cc
  src/core/lib/security/security_connector/security_connector.cc
  src/core/lib/security/transport/client_auth_filter.cc
  src/core/lib/security/transport/secure_endpoint.cc
  src/core/lib/security/transport/security_handshaker.cc
  src/core/lib/security/transport/server_auth_filter.cc
  src/core/lib/security/transport/tsi_error.cc
  src/core/lib/security/util/json_util.cc
  src/core/lib/service_config/service_config_parser.cc
  src/core/lib/slice/b64.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_buffer.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  src/core/lib/surface/api_trace.cc
  src/core/lib/surface/builtins.cc
  src/core/lib/surface/byte_buffer.cc
  src/core/lib/surface/byte_buffer_reader.cc
  src/core/lib/surface/call.cc
  src/core/lib/surface/call_details.cc
  src/core/lib/surface/call_log_batch.cc
  src/core/lib/surface/call_trace.cc
  src/core/lib/surface/channel.cc
  src/core/lib/surface/channel_init.cc
  src/core/lib/surface/channel_ping.cc
  src/core/lib/surface/channel_stack_type.cc
  src/core/lib/surface/completion_queue.cc
  src/core/lib/surface/completion_queue_factory.cc
  src/core/lib/surface/event_string.cc
  src/core/lib/surface/init_internally.cc
  src/core/lib/surface/lame_client.cc
  src/core/lib/surface/metadata_array.cc
  src/core/lib/surface/server.cc
  src/core/lib/surface/validate_metadata.cc
  src/core/lib/surface/version.cc
  src/core/lib/transport/batch_builder.cc
  src/core/lib/transport/connectivity_state.cc
  src/core/lib/transport/error_utils.cc
  src/core/lib/transport/handshaker.cc
  src/core/lib/transport/handshaker_registry.cc
  src/core/lib/transport/metadata_batch.cc
  src/core/lib/transport/parsed_metadata.cc
  src/core/lib/transport/status_conversion.cc
  src/core/lib/transport/timeout_encoding.cc
  src/core/lib/transport/transport.cc
  src/core/lib/transport/transport_op_string.cc
  src/core/lib/uri/uri_parser.cc
  src/core/tsi/alts/handshaker/transport_security_common_api.cc
  src/core/tsi/transport_security.cc
  src/core/tsi/transport_security_grpc.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)

target_compile_features(grpc_authorization_provider PUBLIC cxx_std_14)

set_target_properties(grpc_authorization_provider PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc_authorization_provider PROPERTIES COMPILE_PDB_NAME "grpc_authorization_provider"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_authorization_provider.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc_authorization_provider
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc_authorization_provider
  ${_gRPC_ALLTARGETS_LIBRARIES}
  upb
  ${_gRPC_RE2_LIBRARIES}
  utf8_range_lib
  ${_gRPC_ZLIB_LIBRARIES}
  absl::cleanup
  absl::flat_hash_map
  absl::flat_hash_set
  absl::inlined_vector
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::random_bit_gen_ref
  absl::random_distributions
  absl::statusor
  absl::span
  absl::utility
  ${_gRPC_CARES_LIBRARIES}
  gpr
)

foreach(_hdr
  include/grpc/byte_buffer.h
  include/grpc/byte_buffer_reader.h
  include/grpc/compression.h
  include/grpc/event_engine/endpoint_config.h
  include/grpc/event_engine/event_engine.h
  include/grpc/event_engine/internal/memory_allocator_impl.h
  include/grpc/event_engine/internal/slice_cast.h
  include/grpc/event_engine/memory_allocator.h
  include/grpc/event_engine/memory_request.h
  include/grpc/event_engine/port.h
  include/grpc/event_engine/slice.h
  include/grpc/event_engine/slice_buffer.h
  include/grpc/fork.h
  include/grpc/grpc.h
  include/grpc/grpc_audit_logging.h
  include/grpc/grpc_crl_provider.h
  include/grpc/grpc_posix.h
  include/grpc/grpc_security.h
  include/grpc/grpc_security_constants.h
  include/grpc/impl/channel_arg_names.h
  include/grpc/impl/codegen/atm.h
  include/grpc/impl/codegen/atm_gcc_atomic.h
  include/grpc/impl/codegen/atm_gcc_sync.h
  include/grpc/impl/codegen/atm_windows.h
  include/grpc/impl/codegen/byte_buffer.h
  include/grpc/impl/codegen/byte_buffer_reader.h
  include/grpc/impl/codegen/compression_types.h
  include/grpc/impl/codegen/connectivity_state.h
  include/grpc/impl/codegen/fork.h
  include/grpc/impl/codegen/gpr_types.h
  include/grpc/impl/codegen/grpc_types.h
  include/grpc/impl/codegen/log.h
  include/grpc/impl/codegen/port_platform.h
  include/grpc/impl/codegen/propagation_bits.h
  include/grpc/impl/codegen/slice.h
  include/grpc/impl/codegen/status.h
  include/grpc/impl/codegen/sync.h
  include/grpc/impl/codegen/sync_abseil.h
  include/grpc/impl/codegen/sync_custom.h
  include/grpc/impl/codegen/sync_generic.h
  include/grpc/impl/codegen/sync_posix.h
  include/grpc/impl/codegen/sync_windows.h
  include/grpc/impl/compression_types.h
  include/grpc/impl/connectivity_state.h
  include/grpc/impl/grpc_types.h
  include/grpc/impl/propagation_bits.h
  include/grpc/impl/slice_type.h
  include/grpc/load_reporting.h
  include/grpc/slice.h
  include/grpc/slice_buffer.h
  include/grpc/status.h
  include/grpc/support/alloc.h
  include/grpc/support/atm_gcc_atomic.h
  include/grpc/support/atm_gcc_sync.h
  include/grpc/support/atm_windows.h
  include/grpc/support/cpu.h
  include/grpc/support/json.h
  include/grpc/support/log.h
  include/grpc/support/log_windows.h
  include/grpc/support/port_platform.h
  include/grpc/support/string_util.h
  include/grpc/support/sync.h
  include/grpc/support/sync_abseil.h
  include/grpc/support/sync_custom.h
  include/grpc/support/sync_generic.h
  include/grpc/support/sync_posix.h
  include/grpc/support/sync_windows.h
  include/grpc/support/thd_id.h
  include/grpc/support/time.h
  include/grpc/support/workaround_list.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc_authorization_provider EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()



add_library(grpc_plugin_support
  src/compiler/cpp_generator.cc
  src/compiler/csharp_generator.cc
  src/compiler/node_generator.cc
  src/compiler/objective_c_generator.cc
  src/compiler/php_generator.cc
  src/compiler/proto_parser_helper.cc
  src/compiler/python_generator.cc
  src/compiler/ruby_generator.cc
)

target_compile_features(grpc_plugin_support PUBLIC cxx_std_14)

set_target_properties(grpc_plugin_support PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpc_plugin_support PROPERTIES COMPILE_PDB_NAME "grpc_plugin_support"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_plugin_support.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpc_plugin_support
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpc_plugin_support
  ${_gRPC_ALLTARGETS_LIBRARIES}
  ${_gRPC_PROTOBUF_LIBRARIES}
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
)

foreach(_hdr
  include/grpc++/impl/codegen/config_protobuf.h
  include/grpcpp/impl/codegen/config_protobuf.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()


if(gRPC_INSTALL)
  install(TARGETS grpc_plugin_support EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()


# grpcpp_channelz doesn't build with protobuf-lite
# See https://github.com/grpc/grpc/issues/19473
if(gRPC_BUILD_CODEGEN AND NOT gRPC_USE_PROTO_LITE)

add_library(grpcpp_channelz
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.grpc.pb.h
  src/cpp/server/channelz/channelz_service.cc
  src/cpp/server/channelz/channelz_service_plugin.cc
)

target_compile_features(grpcpp_channelz PUBLIC cxx_std_14)

set_target_properties(grpcpp_channelz PROPERTIES
  VERSION ${gRPC_CPP_VERSION}
  SOVERSION ${gRPC_CPP_SOVERSION}
)

if(WIN32 AND MSVC)
  set_target_properties(grpcpp_channelz PROPERTIES COMPILE_PDB_NAME "grpcpp_channelz"
    COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
  )
  if(gRPC_INSTALL)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpcpp_channelz.pdb
      DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
    )
  endif()
endif()

target_include_directories(grpcpp_channelz
  PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${_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}
    ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(grpcpp_channelz
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++
)

foreach(_hdr
  include/grpcpp/ext/channelz_service_plugin.h
)
  string(REPLACE "include/" "" _path ${_hdr})
  get_filename_component(_path ${_path} PATH)
  install(FILES ${_hdr}
    DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
  )
endforeach()
endif()

if(gRPC_BUILD_CODEGEN)

# grpcpp_channelz doesn't build with protobuf-lite, so no install required
# See https://github.com/grpc/grpc/issues/22826
if(gRPC_INSTALL AND NOT gRPC_USE_PROTO_LITE)
  install(TARGETS grpcpp_channelz EXPORT gRPCTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()

if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(fd_conservation_posix_test
    test/core/iomgr/fd_conservation_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(fd_conservation_posix_test PUBLIC cxx_std_14)
  target_include_directories(fd_conservation_posix_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}
  )

  target_link_libraries(fd_conservation_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(multiple_server_queues_test
  test/core/end2end/multiple_server_queues_test.cc
)
target_compile_features(multiple_server_queues_test PUBLIC cxx_std_14)
target_include_directories(multiple_server_queues_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}
)

target_link_libraries(multiple_server_queues_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)

  add_executable(pollset_windows_starvation_test
    test/core/iomgr/pollset_windows_starvation_test.cc
  )
  target_compile_features(pollset_windows_starvation_test PUBLIC cxx_std_14)
  target_include_directories(pollset_windows_starvation_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}
  )

  target_link_libraries(pollset_windows_starvation_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(static_stride_scheduler_benchmark
    src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc
    test/core/client_channel/lb_policy/static_stride_scheduler_benchmark.cc
  )
  target_compile_features(static_stride_scheduler_benchmark PUBLIC cxx_std_14)
  target_include_directories(static_stride_scheduler_benchmark
    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}
  )

  target_link_libraries(static_stride_scheduler_benchmark
    ${_gRPC_ALLTARGETS_LIBRARIES}
    absl::algorithm_container
    absl::span
    ${_gRPC_BENCHMARK_LIBRARIES}
    gpr
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_iomgr_timer_list_test
  test/core/iomgr/timer_list_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(test_core_iomgr_timer_list_test PUBLIC cxx_std_14)
target_include_directories(test_core_iomgr_timer_list_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}
)

target_link_libraries(test_core_iomgr_timer_list_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(activity_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  test/core/promise/activity_test.cc
)
target_compile_features(activity_test PUBLIC cxx_std_14)
target_include_directories(activity_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(activity_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(address_sorting_test
    test/cpp/naming/address_sorting_test.cc
  )
  target_compile_features(address_sorting_test PUBLIC cxx_std_14)
  target_include_directories(address_sorting_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(address_sorting_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_config
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(address_sorting_test_unsecure
    src/core/lib/gpr/subprocess_posix.cc
    src/core/lib/gpr/subprocess_windows.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
    test/cpp/naming/address_sorting_test.cc
    test/cpp/util/byte_buffer_proto_helper.cc
    test/cpp/util/string_ref_helper.cc
    test/cpp/util/subprocess.cc
  )
  target_compile_features(address_sorting_test_unsecure PUBLIC cxx_std_14)
  target_include_directories(address_sorting_test_unsecure
    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(address_sorting_test_unsecure
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_unsecure
    grpc_test_util_unsecure
    grpc++_test_config
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(admin_services_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  src/cpp/server/admin/admin_services.cc
  src/cpp/server/csds/csds.cc
  test/cpp/end2end/admin_services_end2end_test.cc
)
target_compile_features(admin_services_end2end_test PUBLIC cxx_std_14)
target_include_directories(admin_services_end2end_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(admin_services_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_reflection
  grpcpp_channelz
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(alarm_test
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
    test/cpp/common/alarm_test.cc
  )
  target_compile_features(alarm_test PUBLIC cxx_std_14)
  target_include_directories(alarm_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(alarm_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_unsecure
    grpc_test_util_unsecure
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(alloc_test
  test/core/gpr/alloc_test.cc
)
target_compile_features(alloc_test PUBLIC cxx_std_14)
target_include_directories(alloc_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(alloc_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alpn_test
  test/core/transport/chttp2/alpn_test.cc
)
target_compile_features(alpn_test PUBLIC cxx_std_14)
target_include_directories(alpn_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(alpn_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(alts_concurrent_connectivity_test
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/handshaker.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/handshaker.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/handshaker.pb.h
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/handshaker.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/transport_security_common.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/transport_security_common.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/transport_security_common.pb.h
    ${_gRPC_PROTO_GENS_DIR}/test/core/tsi/alts/fake_handshaker/transport_security_common.grpc.pb.h
    test/core/end2end/cq_verifier.cc
    test/core/tsi/alts/fake_handshaker/fake_handshaker_server.cc
    test/core/tsi/alts/handshaker/alts_concurrent_connectivity_test.cc
    test/core/util/fake_udp_and_tcp_server.cc
  )
  target_compile_features(alts_concurrent_connectivity_test PUBLIC cxx_std_14)
  target_include_directories(alts_concurrent_connectivity_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(alts_concurrent_connectivity_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_counter_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/frame_protector/alts_counter_test.cc
)
target_compile_features(alts_counter_test PUBLIC cxx_std_14)
target_include_directories(alts_counter_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(alts_counter_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_crypt_test
  test/core/tsi/alts/crypt/aes_gcm_test.cc
  test/core/tsi/alts/crypt/gsec_test_util.cc
)
target_compile_features(alts_crypt_test PUBLIC cxx_std_14)
target_include_directories(alts_crypt_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(alts_crypt_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_crypter_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/frame_protector/alts_crypter_test.cc
)
target_compile_features(alts_crypter_test PUBLIC cxx_std_14)
target_include_directories(alts_crypter_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(alts_crypter_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_frame_protector_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/frame_protector/alts_frame_protector_test.cc
  test/core/tsi/transport_security_test_lib.cc
)
target_compile_features(alts_frame_protector_test PUBLIC cxx_std_14)
target_include_directories(alts_frame_protector_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(alts_frame_protector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_grpc_record_protocol_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_test.cc
)
target_compile_features(alts_grpc_record_protocol_test PUBLIC cxx_std_14)
target_include_directories(alts_grpc_record_protocol_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(alts_grpc_record_protocol_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_handshaker_client_test
  test/core/tsi/alts/handshaker/alts_handshaker_client_test.cc
  test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc
)
target_compile_features(alts_handshaker_client_test PUBLIC cxx_std_14)
target_include_directories(alts_handshaker_client_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(alts_handshaker_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_iovec_record_protocol_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol_test.cc
)
target_compile_features(alts_iovec_record_protocol_test PUBLIC cxx_std_14)
target_include_directories(alts_iovec_record_protocol_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(alts_iovec_record_protocol_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_security_connector_test
  test/core/security/alts_security_connector_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(alts_security_connector_test PUBLIC cxx_std_14)
target_include_directories(alts_security_connector_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(alts_security_connector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_tsi_handshaker_test
  test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc
  test/core/tsi/alts/handshaker/alts_tsi_handshaker_test.cc
)
target_compile_features(alts_tsi_handshaker_test PUBLIC cxx_std_14)
target_include_directories(alts_tsi_handshaker_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(alts_tsi_handshaker_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_tsi_utils_test
  test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc
  test/core/tsi/alts/handshaker/alts_tsi_utils_test.cc
)
target_compile_features(alts_tsi_utils_test PUBLIC cxx_std_14)
target_include_directories(alts_tsi_utils_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(alts_tsi_utils_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_util_test
  test/cpp/common/alts_util_test.cc
)
target_compile_features(alts_util_test PUBLIC cxx_std_14)
target_include_directories(alts_util_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(alts_util_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_alts
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(alts_zero_copy_grpc_protector_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector_test.cc
)
target_compile_features(alts_zero_copy_grpc_protector_test PUBLIC cxx_std_14)
target_include_directories(alts_zero_copy_grpc_protector_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(alts_zero_copy_grpc_protector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(arena_promise_test
  test/core/promise/arena_promise_test.cc
)
target_compile_features(arena_promise_test PUBLIC cxx_std_14)
target_include_directories(arena_promise_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(arena_promise_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(arena_test
  test/core/resource_quota/arena_test.cc
)
target_compile_features(arena_test PUBLIC cxx_std_14)
target_include_directories(arena_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(arena_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(async_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/async_end2end_test.cc
)
target_compile_features(async_end2end_test PUBLIC cxx_std_14)
target_include_directories(async_end2end_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(async_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(auth_context_test
  test/core/security/auth_context_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(auth_context_test PUBLIC cxx_std_14)
target_include_directories(auth_context_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(auth_context_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(auth_property_iterator_test
  test/cpp/common/auth_property_iterator_test.cc
)
target_compile_features(auth_property_iterator_test PUBLIC cxx_std_14)
target_include_directories(auth_property_iterator_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(auth_property_iterator_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(authorization_matchers_test
  test/core/security/authorization_matchers_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(authorization_matchers_test PUBLIC cxx_std_14)
target_include_directories(authorization_matchers_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(authorization_matchers_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(authorization_policy_provider_test
  src/cpp/server/authorization_policy_provider.cc
  test/cpp/server/authorization_policy_provider_test.cc
)
target_compile_features(authorization_policy_provider_test PUBLIC cxx_std_14)
target_include_directories(authorization_policy_provider_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(authorization_policy_provider_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_authorization_provider
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(avl_test
  test/core/avl/avl_test.cc
)
target_compile_features(avl_test PUBLIC cxx_std_14)
target_include_directories(avl_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(avl_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(aws_request_signer_test
  test/core/security/aws_request_signer_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(aws_request_signer_test PUBLIC cxx_std_14)
target_include_directories(aws_request_signer_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(aws_request_signer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(b64_test
  test/core/slice/b64_test.cc
)
target_compile_features(b64_test PUBLIC cxx_std_14)
target_include_directories(b64_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(b64_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(backoff_test
  test/core/backoff/backoff_test.cc
)
target_compile_features(backoff_test PUBLIC cxx_std_14)
target_include_directories(backoff_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(backoff_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(bad_ping_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/bad_ping.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(bad_ping_test PUBLIC cxx_std_14)
target_include_directories(bad_ping_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(bad_ping_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(bad_server_response_test
  test/core/end2end/bad_server_response_test.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(bad_server_response_test PUBLIC cxx_std_14)
target_include_directories(bad_server_response_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(bad_server_response_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(bad_ssl_alpn_test
    src/core/lib/gpr/subprocess_posix.cc
    src/core/lib/gpr/subprocess_windows.cc
    test/core/bad_ssl/bad_ssl_test.cc
    test/core/end2end/cq_verifier.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(bad_ssl_alpn_test PUBLIC cxx_std_14)
  target_include_directories(bad_ssl_alpn_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(bad_ssl_alpn_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(bad_ssl_cert_test
    src/core/lib/gpr/subprocess_posix.cc
    src/core/lib/gpr/subprocess_windows.cc
    test/core/bad_ssl/bad_ssl_test.cc
    test/core/end2end/cq_verifier.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(bad_ssl_cert_test PUBLIC cxx_std_14)
  target_include_directories(bad_ssl_cert_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(bad_ssl_cert_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(bad_streaming_id_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/bad_streaming_id.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(bad_streaming_id_bad_client_test PUBLIC cxx_std_14)
target_include_directories(bad_streaming_id_bad_client_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(bad_streaming_id_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(badreq_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/badreq.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(badreq_bad_client_test PUBLIC cxx_std_14)
target_include_directories(badreq_bad_client_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(badreq_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(basic_work_queue_test
  test/core/event_engine/work_queue/basic_work_queue_test.cc
)
target_compile_features(basic_work_queue_test PUBLIC cxx_std_14)
target_include_directories(basic_work_queue_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(basic_work_queue_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(bdp_estimator_test
    test/core/transport/bdp_estimator_test.cc
  )
  target_compile_features(bdp_estimator_test PUBLIC cxx_std_14)
  target_include_directories(bdp_estimator_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(bdp_estimator_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(bin_decoder_test
  test/core/transport/chttp2/bin_decoder_test.cc
)
target_compile_features(bin_decoder_test PUBLIC cxx_std_14)
target_include_directories(bin_decoder_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(bin_decoder_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(bin_encoder_test
  test/core/transport/chttp2/bin_encoder_test.cc
)
target_compile_features(bin_encoder_test PUBLIC cxx_std_14)
target_include_directories(bin_encoder_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(bin_encoder_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(binary_metadata_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/binary_metadata.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(binary_metadata_test PUBLIC cxx_std_14)
target_include_directories(binary_metadata_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(binary_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(binder_resolver_test
  test/core/client_channel/resolvers/binder_resolver_test.cc
)
target_compile_features(binder_resolver_test PUBLIC cxx_std_14)
target_include_directories(binder_resolver_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(binder_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(binder_server_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/core/transport/binder/end2end/binder_server_test.cc
  test/core/transport/binder/end2end/fake_binder.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(binder_server_test PUBLIC cxx_std_14)
target_include_directories(binder_server_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(binder_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(binder_transport_test
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  test/core/transport/binder/binder_transport_test.cc
  test/core/transport/binder/mock_objects.cc
)
target_compile_features(binder_transport_test PUBLIC cxx_std_14)
target_include_directories(binder_transport_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(binder_transport_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(bitset_test
  test/core/gprpp/bitset_test.cc
)
target_compile_features(bitset_test PUBLIC cxx_std_14)
target_include_directories(bitset_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(bitset_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(buffer_list_test
  test/core/iomgr/buffer_list_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(buffer_list_test PUBLIC cxx_std_14)
target_include_directories(buffer_list_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(buffer_list_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(byte_buffer_test
  test/cpp/util/byte_buffer_test.cc
)
target_compile_features(byte_buffer_test PUBLIC cxx_std_14)
target_include_directories(byte_buffer_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(byte_buffer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(c_slice_buffer_test
  test/core/slice/c_slice_buffer_test.cc
)
target_compile_features(c_slice_buffer_test PUBLIC cxx_std_14)
target_include_directories(c_slice_buffer_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(c_slice_buffer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(call_creds_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/call_creds.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(call_creds_test PUBLIC cxx_std_14)
target_include_directories(call_creds_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(call_creds_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(call_finalization_test
  test/core/channel/call_finalization_test.cc
)
target_compile_features(call_finalization_test PUBLIC cxx_std_14)
target_include_directories(call_finalization_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(call_finalization_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(call_host_override_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/call_host_override.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(call_host_override_test PUBLIC cxx_std_14)
target_include_directories(call_host_override_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(call_host_override_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(call_tracer_test
  test/core/channel/call_tracer_test.cc
)
target_compile_features(call_tracer_test PUBLIC cxx_std_14)
target_include_directories(call_tracer_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(call_tracer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_after_accept_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_after_accept.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_after_accept_test PUBLIC cxx_std_14)
target_include_directories(cancel_after_accept_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(cancel_after_accept_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_after_client_done_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_after_client_done.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_after_client_done_test PUBLIC cxx_std_14)
target_include_directories(cancel_after_client_done_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(cancel_after_client_done_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_after_invoke_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_after_invoke.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_after_invoke_test PUBLIC cxx_std_14)
target_include_directories(cancel_after_invoke_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(cancel_after_invoke_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_after_round_trip_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_after_round_trip.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_after_round_trip_test PUBLIC cxx_std_14)
target_include_directories(cancel_after_round_trip_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(cancel_after_round_trip_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_ares_query_test
  test/core/end2end/cq_verifier.cc
  test/core/util/fake_udp_and_tcp_server.cc
  test/core/util/socket_use_after_close_detector.cc
  test/cpp/naming/cancel_ares_query_test.cc
)
target_compile_features(cancel_ares_query_test PUBLIC cxx_std_14)
target_include_directories(cancel_ares_query_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(cancel_ares_query_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_before_invoke_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_before_invoke.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_before_invoke_test PUBLIC cxx_std_14)
target_include_directories(cancel_before_invoke_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(cancel_before_invoke_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_callback_test
  test/core/promise/cancel_callback_test.cc
)
target_compile_features(cancel_callback_test PUBLIC cxx_std_14)
target_include_directories(cancel_callback_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(cancel_callback_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_in_a_vacuum_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_in_a_vacuum.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_in_a_vacuum_test PUBLIC cxx_std_14)
target_include_directories(cancel_in_a_vacuum_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(cancel_in_a_vacuum_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cancel_with_status_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/cancel_with_status.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(cancel_with_status_test PUBLIC cxx_std_14)
target_include_directories(cancel_with_status_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(cancel_with_status_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cel_authorization_engine_test
  src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c
  src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c
  src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c
  src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c
  src/core/ext/upb-gen/google/api/annotations.upb_minitable.c
  src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c
  src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c
  src/core/ext/upb-gen/google/api/http.upb_minitable.c
  src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c
  src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c
  src/core/ext/upb-gen/validate/validate.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c
  src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c
  src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c
  src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c
  src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c
  src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c
  src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c
  src/core/lib/security/authorization/cel_authorization_engine.cc
  test/core/security/cel_authorization_engine_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(cel_authorization_engine_test PUBLIC cxx_std_14)
target_include_directories(cel_authorization_engine_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(cel_authorization_engine_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(certificate_provider_registry_test
  test/core/security/certificate_provider_registry_test.cc
)
target_compile_features(certificate_provider_registry_test PUBLIC cxx_std_14)
target_include_directories(certificate_provider_registry_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(certificate_provider_registry_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(certificate_provider_store_test
  test/core/xds/certificate_provider_store_test.cc
)
target_compile_features(certificate_provider_store_test PUBLIC cxx_std_14)
target_include_directories(certificate_provider_store_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(certificate_provider_store_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(cf_engine_test
    test/core/event_engine/cf/cf_engine_test.cc
  )
  target_compile_features(cf_engine_test PUBLIC cxx_std_14)
  target_include_directories(cf_engine_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(cf_engine_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(cf_event_engine_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/test_suite/cf_event_engine_test.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix.cc
    test/core/event_engine/test_suite/tests/client_test.cc
    test/core/event_engine/test_suite/tests/timer_test.cc
  )
  target_compile_features(cf_event_engine_test PUBLIC cxx_std_14)
  target_include_directories(cf_event_engine_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(cf_event_engine_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(cfstream_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/cfstream_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(cfstream_test PUBLIC cxx_std_14)
target_include_directories(cfstream_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(cfstream_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_args_test
  test/core/channel/channel_args_test.cc
)
target_compile_features(channel_args_test PUBLIC cxx_std_14)
target_include_directories(channel_args_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(channel_args_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_arguments_test
  test/cpp/common/channel_arguments_test.cc
)
target_compile_features(channel_arguments_test PUBLIC cxx_std_14)
target_include_directories(channel_arguments_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(channel_arguments_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_creds_registry_test
  test/core/security/channel_creds_registry_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(channel_creds_registry_test PUBLIC cxx_std_14)
target_include_directories(channel_creds_registry_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(channel_creds_registry_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_init_test
  test/core/surface/channel_init_test.cc
)
target_compile_features(channel_init_test PUBLIC cxx_std_14)
target_include_directories(channel_init_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(channel_init_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_stack_builder_test
  test/core/channel/channel_stack_builder_test.cc
)
target_compile_features(channel_stack_builder_test PUBLIC cxx_std_14)
target_include_directories(channel_stack_builder_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(channel_stack_builder_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_stack_test
  test/core/channel/channel_stack_test.cc
)
target_compile_features(channel_stack_test PUBLIC cxx_std_14)
target_include_directories(channel_stack_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(channel_stack_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channel_trace_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.grpc.pb.h
  test/core/channel/channel_trace_test.cc
  test/cpp/util/channel_trace_proto_helper.cc
)
target_compile_features(channel_trace_test PUBLIC cxx_std_14)
target_include_directories(channel_trace_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(channel_trace_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channelz_registry_test
  test/core/channel/channelz_registry_test.cc
)
target_compile_features(channelz_registry_test PUBLIC cxx_std_14)
target_include_directories(channelz_registry_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(channelz_registry_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(channelz_service_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/core/event_engine/event_engine_test_utils.cc
  test/cpp/end2end/channelz_service_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(channelz_service_test PUBLIC cxx_std_14)
target_include_directories(channelz_service_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(channelz_service_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpcpp_channelz
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(check_gcp_environment_linux_test
  test/core/security/check_gcp_environment_linux_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(check_gcp_environment_linux_test PUBLIC cxx_std_14)
target_include_directories(check_gcp_environment_linux_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(check_gcp_environment_linux_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(check_gcp_environment_windows_test
  test/core/security/check_gcp_environment_windows_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(check_gcp_environment_windows_test PUBLIC cxx_std_14)
target_include_directories(check_gcp_environment_windows_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(check_gcp_environment_windows_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(chunked_vector_test
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/gprpp/chunked_vector_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(chunked_vector_test PUBLIC cxx_std_14)
target_include_directories(chunked_vector_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(chunked_vector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cli_call_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_call_test.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/grpc_tool.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(cli_call_test PUBLIC cxx_std_14)
target_include_directories(cli_call_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(cli_call_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_auth_filter_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/filters/client_auth_filter_test.cc
  test/core/filters/filter_test.cc
)
target_compile_features(client_auth_filter_test PUBLIC cxx_std_14)
target_include_directories(client_auth_filter_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(client_auth_filter_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_authority_filter_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/filters/client_authority_filter_test.cc
  test/core/filters/filter_test.cc
)
target_compile_features(client_authority_filter_test PUBLIC cxx_std_14)
target_include_directories(client_authority_filter_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(client_authority_filter_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_callback_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/client_callback_end2end_test.cc
  test/cpp/end2end/interceptors_util.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(client_callback_end2end_test PUBLIC cxx_std_14)
target_include_directories(client_callback_end2end_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(client_callback_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_channel_service_config_test
  test/core/client_channel/client_channel_service_config_test.cc
)
target_compile_features(client_channel_service_config_test PUBLIC cxx_std_14)
target_include_directories(client_channel_service_config_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(client_channel_service_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_channel_test
  test/core/client_channel/client_channel_test.cc
)
target_compile_features(client_channel_test PUBLIC cxx_std_14)
target_include_directories(client_channel_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(client_channel_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_context_test_peer_test
  test/cpp/test/client_context_test_peer_test.cc
)
target_compile_features(client_context_test_peer_test PUBLIC cxx_std_14)
target_include_directories(client_context_test_peer_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(client_context_test_peer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(client_fork_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/cpp/end2end/client_fork_test.cc
  )
  target_compile_features(client_fork_test PUBLIC cxx_std_14)
  target_include_directories(client_fork_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(client_fork_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++
    grpc_test_util
    grpc++_test_config
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(client_interceptors_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/client_interceptors_end2end_test.cc
  test/cpp/end2end/interceptors_util.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(client_interceptors_end2end_test PUBLIC cxx_std_14)
target_include_directories(client_interceptors_end2end_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(client_interceptors_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(client_lb_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    src/cpp/server/orca/orca_service.cc
    test/core/util/test_lb_policies.cc
    test/cpp/end2end/client_lb_end2end_test.cc
    test/cpp/end2end/connection_attempt_injector.cc
    test/cpp/end2end/test_service_impl.cc
  )
  target_compile_features(client_lb_end2end_test PUBLIC cxx_std_14)
  target_include_directories(client_lb_end2end_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(client_lb_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(client_ssl_test
    test/core/handshake/client_ssl.cc
  )
  target_compile_features(client_ssl_test PUBLIC cxx_std_14)
  target_include_directories(client_ssl_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(client_ssl_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(client_streaming_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/client_streaming.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(client_streaming_test PUBLIC cxx_std_14)
target_include_directories(client_streaming_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(client_streaming_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_transport_error_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  src/core/ext/transport/chaotic_good/client_transport.cc
  src/core/ext/transport/chaotic_good/frame.cc
  src/core/ext/transport/chaotic_good/frame_header.cc
  src/core/lib/transport/promise_endpoint.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/transport/chaotic_good/client_transport_error_test.cc
)
target_compile_features(client_transport_error_test PUBLIC cxx_std_14)
target_include_directories(client_transport_error_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(client_transport_error_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(client_transport_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  src/core/ext/transport/chaotic_good/client_transport.cc
  src/core/ext/transport/chaotic_good/frame.cc
  src/core/ext/transport/chaotic_good/frame_header.cc
  src/core/lib/transport/promise_endpoint.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/transport/chaotic_good/client_transport_test.cc
)
target_compile_features(client_transport_test PUBLIC cxx_std_14)
target_include_directories(client_transport_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(client_transport_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cmdline_test
  test/core/util/cmdline.cc
  test/core/util/cmdline_test.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(cmdline_test PUBLIC cxx_std_14)
target_include_directories(cmdline_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(cmdline_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(codegen_test_full
  test/cpp/codegen/codegen_test_full.cc
)
target_compile_features(codegen_test_full PUBLIC cxx_std_14)
target_include_directories(codegen_test_full
  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(codegen_test_full
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(codegen_test_minimal
  test/cpp/codegen/codegen_test_minimal.cc
)
target_compile_features(codegen_test_minimal PUBLIC cxx_std_14)
target_include_directories(codegen_test_minimal
  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(codegen_test_minimal
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(combiner_test
    test/core/iomgr/combiner_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(combiner_test PUBLIC cxx_std_14)
  target_include_directories(combiner_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(combiner_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(common_closures_test
  test/core/event_engine/common_closures_test.cc
)
target_compile_features(common_closures_test PUBLIC cxx_std_14)
target_include_directories(common_closures_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(common_closures_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(completion_queue_threading_test
  test/core/surface/completion_queue_threading_test.cc
)
target_compile_features(completion_queue_threading_test PUBLIC cxx_std_14)
target_include_directories(completion_queue_threading_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(completion_queue_threading_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(compressed_payload_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/compressed_payload.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(compressed_payload_test PUBLIC cxx_std_14)
target_include_directories(compressed_payload_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(compressed_payload_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(compression_test
  test/core/compression/compression_test.cc
)
target_compile_features(compression_test PUBLIC cxx_std_14)
target_include_directories(compression_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(compression_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(concurrent_connectivity_test
  test/core/surface/concurrent_connectivity_test.cc
)
target_compile_features(concurrent_connectivity_test PUBLIC cxx_std_14)
target_include_directories(concurrent_connectivity_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(concurrent_connectivity_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(connection_prefix_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/connection_prefix.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(connection_prefix_bad_client_test PUBLIC cxx_std_14)
target_include_directories(connection_prefix_bad_client_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(connection_prefix_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(connection_refused_test
  test/core/end2end/connection_refused_test.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(connection_refused_test PUBLIC cxx_std_14)
target_include_directories(connection_refused_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(connection_refused_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(connectivity_state_test
  test/core/transport/connectivity_state_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(connectivity_state_test PUBLIC cxx_std_14)
target_include_directories(connectivity_state_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(connectivity_state_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(connectivity_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/connectivity.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(connectivity_test PUBLIC cxx_std_14)
target_include_directories(connectivity_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(connectivity_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(context_allocator_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/context_allocator_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(context_allocator_end2end_test PUBLIC cxx_std_14)
target_include_directories(context_allocator_end2end_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(context_allocator_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(context_test
  test/core/promise/context_test.cc
)
target_compile_features(context_test PUBLIC cxx_std_14)
target_include_directories(context_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(context_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(core_configuration_test
  test/core/config/core_configuration_test.cc
)
target_compile_features(core_configuration_test PUBLIC cxx_std_14)
target_include_directories(core_configuration_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(core_configuration_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cpp_impl_of_test
  test/core/gprpp/cpp_impl_of_test.cc
)
target_compile_features(cpp_impl_of_test PUBLIC cxx_std_14)
target_include_directories(cpp_impl_of_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(cpp_impl_of_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(cpu_test
  test/core/gpr/cpu_test.cc
)
target_compile_features(cpu_test PUBLIC cxx_std_14)
target_include_directories(cpu_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(cpu_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(crl_provider_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/crl_provider_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(crl_provider_test PUBLIC cxx_std_14)
target_include_directories(crl_provider_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(crl_provider_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(crl_ssl_transport_security_test
    test/core/tsi/crl_ssl_transport_security_test.cc
    test/core/tsi/transport_security_test_lib.cc
  )
  target_compile_features(crl_ssl_transport_security_test PUBLIC cxx_std_14)
  target_include_directories(crl_ssl_transport_security_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(crl_ssl_transport_security_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(default_engine_methods_test
  test/core/event_engine/default_engine_methods_test.cc
)
target_compile_features(default_engine_methods_test PUBLIC cxx_std_14)
target_include_directories(default_engine_methods_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(default_engine_methods_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(default_host_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/default_host.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(default_host_test PUBLIC cxx_std_14)
target_include_directories(default_host_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(default_host_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(delegating_channel_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/delegating_channel_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(delegating_channel_test PUBLIC cxx_std_14)
target_include_directories(delegating_channel_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(delegating_channel_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(destroy_grpclb_channel_with_active_connect_stress_test
  test/cpp/client/destroy_grpclb_channel_with_active_connect_stress_test.cc
)
target_compile_features(destroy_grpclb_channel_with_active_connect_stress_test PUBLIC cxx_std_14)
target_include_directories(destroy_grpclb_channel_with_active_connect_stress_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(destroy_grpclb_channel_with_active_connect_stress_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(directory_reader_test
  test/core/gprpp/directory_reader_test.cc
)
target_compile_features(directory_reader_test PUBLIC cxx_std_14)
target_include_directories(directory_reader_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(directory_reader_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(disappearing_server_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/disappearing_server.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(disappearing_server_test PUBLIC cxx_std_14)
target_include_directories(disappearing_server_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(disappearing_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(dns_resolver_cooldown_test
  test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc
)
target_compile_features(dns_resolver_cooldown_test PUBLIC cxx_std_14)
target_include_directories(dns_resolver_cooldown_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(dns_resolver_cooldown_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(dns_resolver_test
  test/core/client_channel/resolvers/dns_resolver_test.cc
)
target_compile_features(dns_resolver_test PUBLIC cxx_std_14)
target_include_directories(dns_resolver_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(dns_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(dual_ref_counted_test
  test/core/gprpp/dual_ref_counted_test.cc
)
target_compile_features(dual_ref_counted_test PUBLIC cxx_std_14)
target_include_directories(dual_ref_counted_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(dual_ref_counted_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(dualstack_socket_test
    test/core/end2end/cq_verifier.cc
    test/core/end2end/dualstack_socket_test.cc
  )
  target_compile_features(dualstack_socket_test PUBLIC cxx_std_14)
  target_include_directories(dualstack_socket_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(dualstack_socket_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(duplicate_header_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/duplicate_header.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(duplicate_header_bad_client_test PUBLIC cxx_std_14)
target_include_directories(duplicate_header_bad_client_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(duplicate_header_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(empty_batch_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/empty_batch.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(empty_batch_test PUBLIC cxx_std_14)
target_include_directories(empty_batch_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(empty_batch_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(end2end_binder_transport_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/core/transport/binder/end2end/end2end_binder_transport_test.cc
    test/core/transport/binder/end2end/fake_binder.cc
    test/core/transport/binder/end2end/testing_channel_create.cc
    test/cpp/end2end/test_service_impl.cc
  )
  target_compile_features(end2end_binder_transport_test PUBLIC cxx_std_14)
  target_include_directories(end2end_binder_transport_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(end2end_binder_transport_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/end2end_test.cc
  test/cpp/end2end/interceptors_util.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(end2end_test PUBLIC cxx_std_14)
target_include_directories(end2end_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(end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(endpoint_addresses_test
  test/core/resolver/endpoint_addresses_test.cc
)
target_compile_features(endpoint_addresses_test PUBLIC cxx_std_14)
target_include_directories(endpoint_addresses_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(endpoint_addresses_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(endpoint_binder_pool_test
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  test/core/transport/binder/endpoint_binder_pool_test.cc
  test/core/transport/binder/mock_objects.cc
)
target_compile_features(endpoint_binder_pool_test PUBLIC cxx_std_14)
target_include_directories(endpoint_binder_pool_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(endpoint_binder_pool_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(endpoint_config_test
  src/core/lib/channel/channel_args.cc
  src/core/lib/event_engine/channel_args_endpoint_config.cc
  src/core/lib/gprpp/ref_counted_string.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/surface/channel_stack_type.cc
  test/core/event_engine/endpoint_config_test.cc
)
target_compile_features(endpoint_config_test PUBLIC cxx_std_14)
target_include_directories(endpoint_config_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(endpoint_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(endpoint_pair_test
  test/core/iomgr/endpoint_pair_test.cc
  test/core/iomgr/endpoint_tests.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(endpoint_pair_test PUBLIC cxx_std_14)
target_include_directories(endpoint_pair_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(endpoint_pair_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(env_test
  test/core/gpr/env_test.cc
)
target_compile_features(env_test PUBLIC cxx_std_14)
target_include_directories(env_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(env_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(error_details_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/status/status.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/status/status.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/status/status.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/status/status.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/util/error_details_test.cc
)
target_compile_features(error_details_test PUBLIC cxx_std_14)
target_include_directories(error_details_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(error_details_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_error_details
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(error_test
  test/core/iomgr/endpoint_tests.cc
  test/core/iomgr/error_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(error_test PUBLIC cxx_std_14)
target_include_directories(error_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(error_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(error_utils_test
  test/core/transport/error_utils_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(error_utils_test PUBLIC cxx_std_14)
target_include_directories(error_utils_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(error_utils_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(evaluate_args_test
  test/core/security/evaluate_args_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(evaluate_args_test PUBLIC cxx_std_14)
target_include_directories(evaluate_args_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(evaluate_args_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(event_engine_wakeup_scheduler_test
  test/core/promise/event_engine_wakeup_scheduler_test.cc
)
target_compile_features(event_engine_wakeup_scheduler_test PUBLIC cxx_std_14)
target_include_directories(event_engine_wakeup_scheduler_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(event_engine_wakeup_scheduler_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(event_poller_posix_test
    test/core/event_engine/posix/event_poller_posix_test.cc
    test/core/event_engine/posix/posix_engine_test_utils.cc
  )
  target_compile_features(event_poller_posix_test PUBLIC cxx_std_14)
  target_include_directories(event_poller_posix_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(event_poller_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(examine_stack_test
    test/core/gprpp/examine_stack_test.cc
  )
  target_compile_features(examine_stack_test PUBLIC cxx_std_14)
  target_include_directories(examine_stack_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(examine_stack_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(exception_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/exception_test.cc
)
target_compile_features(exception_test PUBLIC cxx_std_14)
target_include_directories(exception_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(exception_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(exec_ctx_wakeup_scheduler_test
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/promise/activity.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/promise/exec_ctx_wakeup_scheduler_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(exec_ctx_wakeup_scheduler_test PUBLIC cxx_std_14)
target_include_directories(exec_ctx_wakeup_scheduler_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(exec_ctx_wakeup_scheduler_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(experiments_tag_test
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  test/core/experiments/experiments_tag_test.cc
  test/core/experiments/fixtures/experiments.cc
)
target_compile_features(experiments_tag_test PUBLIC cxx_std_14)
target_include_directories(experiments_tag_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(experiments_tag_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(experiments_test
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  test/core/experiments/experiments_test.cc
  test/core/experiments/fixtures/experiments.cc
)
target_compile_features(experiments_test PUBLIC cxx_std_14)
target_include_directories(experiments_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(experiments_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(factory_test
  test/core/event_engine/factory_test.cc
)
target_compile_features(factory_test PUBLIC cxx_std_14)
target_include_directories(factory_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(factory_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(fake_binder_test
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  test/core/transport/binder/end2end/fake_binder.cc
  test/core/transport/binder/end2end/fake_binder_test.cc
)
target_compile_features(fake_binder_test PUBLIC cxx_std_14)
target_include_directories(fake_binder_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(fake_binder_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(fake_resolver_test
  test/core/client_channel/resolvers/fake_resolver_test.cc
)
target_compile_features(fake_resolver_test PUBLIC cxx_std_14)
target_include_directories(fake_resolver_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(fake_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(fake_transport_security_test
  test/core/tsi/fake_transport_security_test.cc
  test/core/tsi/transport_security_test_lib.cc
)
target_compile_features(fake_transport_security_test PUBLIC cxx_std_14)
target_include_directories(fake_transport_security_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(fake_transport_security_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(fd_posix_test
    test/core/iomgr/fd_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(fd_posix_test PUBLIC cxx_std_14)
  target_include_directories(fd_posix_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(fd_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(file_watcher_certificate_provider_factory_test
  test/core/xds/file_watcher_certificate_provider_factory_test.cc
)
target_compile_features(file_watcher_certificate_provider_factory_test PUBLIC cxx_std_14)
target_include_directories(file_watcher_certificate_provider_factory_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(file_watcher_certificate_provider_factory_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(filter_causes_close_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/filter_causes_close.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(filter_causes_close_test PUBLIC cxx_std_14)
target_include_directories(filter_causes_close_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(filter_causes_close_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(filter_context_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/filter_context.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(filter_context_test PUBLIC cxx_std_14)
target_include_directories(filter_context_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(filter_context_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(filter_init_fails_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/filter_init_fails.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(filter_init_fails_test PUBLIC cxx_std_14)
target_include_directories(filter_init_fails_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(filter_init_fails_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(filter_test_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/filters/filter_test.cc
  test/core/filters/filter_test_test.cc
)
target_compile_features(filter_test_test PUBLIC cxx_std_14)
target_include_directories(filter_test_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(filter_test_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_unsecure
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(filtered_metadata_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/filtered_metadata.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(filtered_metadata_test PUBLIC cxx_std_14)
target_include_directories(filtered_metadata_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(filtered_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(flaky_network_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/flaky_network_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(flaky_network_test PUBLIC cxx_std_14)
target_include_directories(flaky_network_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(flaky_network_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(flow_control_test
  src/core/ext/transport/chttp2/transport/flow_control.cc
  src/core/ext/transport/chttp2/transport/http2_settings.cc
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  src/core/lib/transport/bdp_estimator.cc
  src/core/lib/transport/pid_controller.cc
  test/core/transport/chttp2/flow_control_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(flow_control_test PUBLIC cxx_std_14)
target_include_directories(flow_control_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(flow_control_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(for_each_test
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/promise/for_each_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(for_each_test PUBLIC cxx_std_14)
target_include_directories(for_each_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(for_each_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(fork_test
    test/core/gprpp/fork_test.cc
  )
  target_compile_features(fork_test PUBLIC cxx_std_14)
  target_include_directories(fork_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(fork_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(forkable_test
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/forkable.cc
  test/core/event_engine/forkable_test.cc
)
target_compile_features(forkable_test PUBLIC cxx_std_14)
target_include_directories(forkable_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(forkable_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(format_request_test
  test/core/end2end/data/client_certs.cc
  test/core/end2end/data/server1_cert.cc
  test/core/end2end/data/server1_key.cc
  test/core/end2end/data/test_root_cert.cc
  test/core/http/format_request_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(format_request_test PUBLIC cxx_std_14)
target_include_directories(format_request_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(format_request_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(frame_handler_test
  test/core/tsi/alts/crypt/gsec_test_util.cc
  test/core/tsi/alts/frame_protector/frame_handler_test.cc
)
target_compile_features(frame_handler_test PUBLIC cxx_std_14)
target_include_directories(frame_handler_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(frame_handler_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(frame_header_test
  src/core/ext/transport/chaotic_good/frame_header.cc
  test/core/transport/chaotic_good/frame_header_test.cc
)
target_compile_features(frame_header_test PUBLIC cxx_std_14)
target_include_directories(frame_header_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(frame_header_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::status
  absl::statusor
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(fuzzing_event_engine_test
    ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
    ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/fuzzing_event_engine_test.cc
    test/core/event_engine/test_suite/tests/client_test.cc
    test/core/event_engine/test_suite/tests/server_test.cc
    test/core/event_engine/test_suite/tests/timer_test.cc
  )
  target_compile_features(fuzzing_event_engine_test PUBLIC cxx_std_14)
  target_include_directories(fuzzing_event_engine_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(fuzzing_event_engine_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    ${_gRPC_PROTOBUF_LIBRARIES}
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(fuzzing_event_engine_unittest
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine_unittest.cc
)
target_compile_features(fuzzing_event_engine_unittest PUBLIC cxx_std_14)
target_include_directories(fuzzing_event_engine_unittest
  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(fuzzing_event_engine_unittest
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(generic_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/generic_end2end_test.cc
)
target_compile_features(generic_end2end_test PUBLIC cxx_std_14)
target_include_directories(generic_end2end_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(generic_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(goaway_server_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/goaway_server_test.cc
)
target_compile_features(goaway_server_test PUBLIC cxx_std_14)
target_include_directories(goaway_server_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(goaway_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(google_c2p_resolver_test
  test/core/client_channel/resolvers/google_c2p_resolver_test.cc
  test/core/util/fake_udp_and_tcp_server.cc
)
target_compile_features(google_c2p_resolver_test PUBLIC cxx_std_14)
target_include_directories(google_c2p_resolver_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(google_c2p_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(graceful_server_shutdown_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/graceful_server_shutdown.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(graceful_server_shutdown_test PUBLIC cxx_std_14)
target_include_directories(graceful_server_shutdown_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(graceful_server_shutdown_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(graceful_shutdown_test
  test/core/end2end/cq_verifier.cc
  test/core/transport/chttp2/graceful_shutdown_test.cc
)
target_compile_features(graceful_shutdown_test PUBLIC cxx_std_14)
target_include_directories(graceful_shutdown_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(graceful_shutdown_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_alts_credentials_options_test
  test/core/security/grpc_alts_credentials_options_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_alts_credentials_options_test PUBLIC cxx_std_14)
target_include_directories(grpc_alts_credentials_options_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(grpc_alts_credentials_options_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_audit_logging_test
  test/core/security/grpc_audit_logging_test.cc
)
target_compile_features(grpc_audit_logging_test PUBLIC cxx_std_14)
target_include_directories(grpc_audit_logging_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(grpc_audit_logging_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_authorization_engine_test
  test/core/security/grpc_authorization_engine_test.cc
  test/core/util/audit_logging_utils.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_authorization_engine_test PUBLIC cxx_std_14)
target_include_directories(grpc_authorization_engine_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(grpc_authorization_engine_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_authorization_policy_provider_test
  test/core/security/grpc_authorization_policy_provider_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_authorization_policy_provider_test PUBLIC cxx_std_14)
target_include_directories(grpc_authorization_policy_provider_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(grpc_authorization_policy_provider_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_authz_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  src/cpp/server/authorization_policy_provider.cc
  test/core/util/audit_logging_utils.cc
  test/cpp/end2end/grpc_authz_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(grpc_authz_end2end_test PUBLIC cxx_std_14)
target_include_directories(grpc_authz_end2end_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(grpc_authz_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_authz_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/grpc_authz.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(grpc_authz_test PUBLIC cxx_std_14)
target_include_directories(grpc_authz_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(grpc_authz_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_byte_buffer_reader_test
  test/core/surface/byte_buffer_reader_test.cc
)
target_compile_features(grpc_byte_buffer_reader_test PUBLIC cxx_std_14)
target_include_directories(grpc_byte_buffer_reader_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(grpc_byte_buffer_reader_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_cli
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/grpc_cli.cc
  test/cpp/util/grpc_tool.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(grpc_cli PUBLIC cxx_std_14)
target_include_directories(grpc_cli
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_cli
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc++_test_config
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_completion_queue_test
  test/core/surface/completion_queue_test.cc
)
target_compile_features(grpc_completion_queue_test PUBLIC cxx_std_14)
target_include_directories(grpc_completion_queue_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(grpc_completion_queue_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_CPP_PLUGIN)

add_executable(grpc_cpp_plugin
  src/compiler/cpp_plugin.cc
)
target_compile_features(grpc_cpp_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_cpp_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_cpp_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_cpp_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_CSHARP_PLUGIN)

add_executable(grpc_csharp_plugin
  src/compiler/csharp_plugin.cc
)
target_compile_features(grpc_csharp_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_csharp_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_csharp_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_csharp_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_ipv6_loopback_available_test
  test/core/iomgr/grpc_ipv6_loopback_available_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_ipv6_loopback_available_test PUBLIC cxx_std_14)
target_include_directories(grpc_ipv6_loopback_available_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(grpc_ipv6_loopback_available_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_NODE_PLUGIN)

add_executable(grpc_node_plugin
  src/compiler/node_plugin.cc
)
target_compile_features(grpc_node_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_node_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_node_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_node_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN)

add_executable(grpc_objective_c_plugin
  src/compiler/objective_c_plugin.cc
)
target_compile_features(grpc_objective_c_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_objective_c_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_objective_c_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_objective_c_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_PHP_PLUGIN)

add_executable(grpc_php_plugin
  src/compiler/php_plugin.cc
)
target_compile_features(grpc_php_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_php_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_php_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_php_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_PYTHON_PLUGIN)

add_executable(grpc_python_plugin
  src/compiler/python_plugin.cc
)
target_compile_features(grpc_python_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_python_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_python_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_python_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_RUBY_PLUGIN)

add_executable(grpc_ruby_plugin
  src/compiler/ruby_plugin.cc
)
target_compile_features(grpc_ruby_plugin PUBLIC cxx_std_14)
target_include_directories(grpc_ruby_plugin
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(grpc_ruby_plugin
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc_plugin_support
)



if(gRPC_INSTALL)
  install(TARGETS grpc_ruby_plugin EXPORT gRPCPluginTargets
    RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
    BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
    LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
  )
endif()

endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_tls_certificate_distributor_test
  test/core/security/grpc_tls_certificate_distributor_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_tls_certificate_distributor_test PUBLIC cxx_std_14)
target_include_directories(grpc_tls_certificate_distributor_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(grpc_tls_certificate_distributor_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_tls_certificate_provider_test
  test/core/security/grpc_tls_certificate_provider_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_tls_certificate_provider_test PUBLIC cxx_std_14)
target_include_directories(grpc_tls_certificate_provider_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(grpc_tls_certificate_provider_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_tls_certificate_verifier_test
  test/core/security/grpc_tls_certificate_verifier_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_tls_certificate_verifier_test PUBLIC cxx_std_14)
target_include_directories(grpc_tls_certificate_verifier_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(grpc_tls_certificate_verifier_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_tls_credentials_options_comparator_test
  test/core/security/grpc_tls_credentials_options_comparator_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_tls_credentials_options_comparator_test PUBLIC cxx_std_14)
target_include_directories(grpc_tls_credentials_options_comparator_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(grpc_tls_credentials_options_comparator_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_tls_credentials_options_test
  test/core/security/grpc_tls_credentials_options_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(grpc_tls_credentials_options_test PUBLIC cxx_std_14)
target_include_directories(grpc_tls_credentials_options_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(grpc_tls_credentials_options_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(grpc_tls_crl_provider_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/util/fuzz_config_vars.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/util/fuzz_config_vars.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/util/fuzz_config_vars.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/util/fuzz_config_vars.grpc.pb.h
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
  test/core/security/grpc_tls_crl_provider_test.cc
)
target_compile_features(grpc_tls_crl_provider_test PUBLIC cxx_std_14)
target_include_directories(grpc_tls_crl_provider_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(grpc_tls_crl_provider_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(grpc_tool_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/cpp/util/cli_call.cc
    test/cpp/util/cli_credentials.cc
    test/cpp/util/grpc_tool.cc
    test/cpp/util/grpc_tool_test.cc
    test/cpp/util/proto_file_parser.cc
    test/cpp/util/proto_reflection_descriptor_database.cc
    test/cpp/util/service_describer.cc
  )
  target_compile_features(grpc_tool_test PUBLIC cxx_std_14)
  target_include_directories(grpc_tool_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(grpc_tool_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_reflection
    ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
    grpc++_test_config
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(grpclb_api_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.grpc.pb.h
  test/cpp/grpclb/grpclb_api_test.cc
)
target_compile_features(grpclb_api_test PUBLIC cxx_std_14)
target_include_directories(grpclb_api_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(grpclb_api_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(grpclb_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lb/v1/load_balancer.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/cpp/end2end/grpclb_end2end_test.cc
    test/cpp/end2end/test_service_impl.cc
  )
  target_compile_features(grpclb_end2end_test PUBLIC cxx_std_14)
  target_include_directories(grpclb_end2end_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(grpclb_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_config
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(h2_ssl_cert_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/data/client_certs.cc
  test/core/end2end/data/server1_cert.cc
  test/core/end2end/data/server1_key.cc
  test/core/end2end/data/test_root_cert.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/h2_ssl_cert_test.cc
  test/core/event_engine/event_engine_test_utils.cc
)
target_compile_features(h2_ssl_cert_test PUBLIC cxx_std_14)
target_include_directories(h2_ssl_cert_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(h2_ssl_cert_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(h2_ssl_session_reuse_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/h2_ssl_session_reuse_test.cc
)
target_compile_features(h2_ssl_session_reuse_test PUBLIC cxx_std_14)
target_include_directories(h2_ssl_session_reuse_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(h2_ssl_session_reuse_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(h2_tls_peer_property_external_verifier_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/h2_tls_peer_property_external_verifier_test.cc
)
target_compile_features(h2_tls_peer_property_external_verifier_test PUBLIC cxx_std_14)
target_include_directories(h2_tls_peer_property_external_verifier_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(h2_tls_peer_property_external_verifier_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(handle_tests
  test/core/event_engine/handle_tests.cc
)
target_compile_features(handle_tests PUBLIC cxx_std_14)
target_include_directories(handle_tests
  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(handle_tests
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(handshake_server_with_readahead_handshaker_test
    test/core/handshake/readahead_handshaker_server_ssl.cc
    test/core/handshake/server_ssl_common.cc
  )
  target_compile_features(handshake_server_with_readahead_handshaker_test PUBLIC cxx_std_14)
  target_include_directories(handshake_server_with_readahead_handshaker_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(handshake_server_with_readahead_handshaker_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(head_of_line_blocking_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/head_of_line_blocking.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(head_of_line_blocking_bad_client_test PUBLIC cxx_std_14)
target_include_directories(head_of_line_blocking_bad_client_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(head_of_line_blocking_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(headers_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/headers.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(headers_bad_client_test PUBLIC cxx_std_14)
target_include_directories(headers_bad_client_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(headers_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(health_service_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/health_service_end2end_test.cc
  test/cpp/end2end/test_health_check_service_impl.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(health_service_end2end_test PUBLIC cxx_std_14)
target_include_directories(health_service_end2end_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(health_service_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(high_initial_seqno_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/high_initial_seqno.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(high_initial_seqno_test PUBLIC cxx_std_14)
target_include_directories(high_initial_seqno_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(high_initial_seqno_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(histogram_test
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/histogram_test.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(histogram_test PUBLIC cxx_std_14)
target_include_directories(histogram_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(histogram_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(host_port_test
  test/core/gprpp/host_port_test.cc
)
target_compile_features(host_port_test PUBLIC cxx_std_14)
target_include_directories(host_port_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(host_port_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(hpack_encoder_test
  test/core/transport/chttp2/hpack_encoder_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(hpack_encoder_test PUBLIC cxx_std_14)
target_include_directories(hpack_encoder_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(hpack_encoder_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(hpack_parser_table_test
  test/core/transport/chttp2/hpack_parser_table_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(hpack_parser_table_test PUBLIC cxx_std_14)
target_include_directories(hpack_parser_table_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(hpack_parser_table_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(hpack_parser_test
  test/core/transport/chttp2/hpack_parser_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(hpack_parser_test PUBLIC cxx_std_14)
target_include_directories(hpack_parser_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(hpack_parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(hpack_size_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/hpack_size.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(hpack_size_test PUBLIC cxx_std_14)
target_include_directories(hpack_size_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(hpack_size_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(http2_client
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h
  test/cpp/interop/http2_client.cc
)
target_compile_features(http2_client PUBLIC cxx_std_14)
target_include_directories(http2_client
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(http2_client
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(http2_stats_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/http2_stats.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(http2_stats_test PUBLIC cxx_std_14)
target_include_directories(http2_stats_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(http2_stats_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(http_proxy_mapper_test
  test/core/client_channel/http_proxy_mapper_test.cc
)
target_compile_features(http_proxy_mapper_test PUBLIC cxx_std_14)
target_include_directories(http_proxy_mapper_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(http_proxy_mapper_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(httpcli_test
    test/core/http/httpcli_test.cc
    test/core/http/httpcli_test_util.cc
    test/core/util/fake_udp_and_tcp_server.cc
  )
  target_compile_features(httpcli_test PUBLIC cxx_std_14)
  target_include_directories(httpcli_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(httpcli_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(httpscli_test
    test/core/http/httpcli_test_util.cc
    test/core/http/httpscli_test.cc
    test/core/util/fake_udp_and_tcp_server.cc
  )
  target_compile_features(httpscli_test PUBLIC cxx_std_14)
  target_include_directories(httpscli_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(httpscli_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(hybrid_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/hybrid_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(hybrid_end2end_test PUBLIC cxx_std_14)
target_include_directories(hybrid_end2end_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(hybrid_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(idle_filter_state_test
  src/core/ext/filters/channel_idle/idle_filter_state.cc
  test/core/client_idle/idle_filter_state_test.cc
)
target_compile_features(idle_filter_state_test PUBLIC cxx_std_14)
target_include_directories(idle_filter_state_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(idle_filter_state_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(if_list_test
  test/core/gprpp/if_list_test.cc
)
target_compile_features(if_list_test PUBLIC cxx_std_14)
target_include_directories(if_list_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(if_list_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(if_test
  test/core/promise/if_test.cc
)
target_compile_features(if_test PUBLIC cxx_std_14)
target_include_directories(if_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(if_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(init_test
  test/core/surface/init_test.cc
)
target_compile_features(init_test PUBLIC cxx_std_14)
target_include_directories(init_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(init_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(initial_settings_frame_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/initial_settings_frame.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(initial_settings_frame_bad_client_test PUBLIC cxx_std_14)
target_include_directories(initial_settings_frame_bad_client_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(initial_settings_frame_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(insecure_security_connector_test
  test/core/security/insecure_security_connector_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(insecure_security_connector_test PUBLIC cxx_std_14)
target_include_directories(insecure_security_connector_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(insecure_security_connector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(inter_activity_latch_test
  test/core/promise/inter_activity_latch_test.cc
)
target_compile_features(inter_activity_latch_test PUBLIC cxx_std_14)
target_include_directories(inter_activity_latch_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(inter_activity_latch_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(inter_activity_pipe_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  test/core/promise/inter_activity_pipe_test.cc
)
target_compile_features(inter_activity_pipe_test PUBLIC cxx_std_14)
target_include_directories(inter_activity_pipe_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(inter_activity_pipe_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(interceptor_list_test
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/promise/interceptor_list_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(interceptor_list_test PUBLIC cxx_std_14)
target_include_directories(interceptor_list_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(interceptor_list_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(interop_client
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h
  test/core/security/oauth2_utils.cc
  test/cpp/interop/backend_metrics_lb_policy.cc
  test/cpp/interop/client.cc
  test/cpp/interop/client_helper.cc
  test/cpp/interop/interop_client.cc
)
target_compile_features(interop_client PUBLIC cxx_std_14)
target_include_directories(interop_client
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(interop_client
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(interop_server
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h
  src/cpp/server/orca/orca_service.cc
  test/cpp/interop/interop_server.cc
  test/cpp/interop/interop_server_bootstrap.cc
  test/cpp/interop/server_helper.cc
)
target_compile_features(interop_server PUBLIC cxx_std_14)
target_include_directories(interop_server
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(interop_server
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(invalid_call_argument_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/invalid_call_argument_test.cc
)
target_compile_features(invalid_call_argument_test PUBLIC cxx_std_14)
target_include_directories(invalid_call_argument_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(invalid_call_argument_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(invoke_large_request_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/invoke_large_request.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(invoke_large_request_test PUBLIC cxx_std_14)
target_include_directories(invoke_large_request_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(invoke_large_request_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)

  add_executable(iocp_test
    test/core/event_engine/windows/create_sockpair.cc
    test/core/event_engine/windows/iocp_test.cc
  )
  target_compile_features(iocp_test PUBLIC cxx_std_14)
  target_include_directories(iocp_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(iocp_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(istio_echo_server_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.grpc.pb.h
  test/cpp/interop/istio_echo_server_lib.cc
  test/cpp/interop/istio_echo_server_test.cc
)
target_compile_features(istio_echo_server_test PUBLIC cxx_std_14)
target_include_directories(istio_echo_server_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(istio_echo_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
  grpc++_test_config
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(join_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/trace.cc
  test/core/promise/join_test.cc
)
target_compile_features(join_test PUBLIC cxx_std_14)
target_include_directories(join_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(join_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(json_object_loader_test
  test/core/json/json_object_loader_test.cc
)
target_compile_features(json_object_loader_test PUBLIC cxx_std_14)
target_include_directories(json_object_loader_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(json_object_loader_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(json_test
  test/core/json/json_test.cc
)
target_compile_features(json_test PUBLIC cxx_std_14)
target_include_directories(json_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(json_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(json_token_test
  test/core/security/json_token_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(json_token_test PUBLIC cxx_std_14)
target_include_directories(json_token_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(json_token_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(jwt_verifier_test
  test/core/security/jwt_verifier_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(jwt_verifier_test PUBLIC cxx_std_14)
target_include_directories(jwt_verifier_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(jwt_verifier_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(keepalive_timeout_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/keepalive_timeout.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(keepalive_timeout_test PUBLIC cxx_std_14)
target_include_directories(keepalive_timeout_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(keepalive_timeout_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(lame_client_test
  test/core/end2end/cq_verifier.cc
  test/core/surface/lame_client_test.cc
)
target_compile_features(lame_client_test PUBLIC cxx_std_14)
target_include_directories(lame_client_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(lame_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(large_metadata_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/large_metadata.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(large_metadata_test PUBLIC cxx_std_14)
target_include_directories(large_metadata_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(large_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(latch_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  test/core/promise/latch_test.cc
)
target_compile_features(latch_test PUBLIC cxx_std_14)
target_include_directories(latch_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(latch_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(lb_get_cpu_stats_test
  src/cpp/server/load_reporter/get_cpu_stats_linux.cc
  src/cpp/server/load_reporter/get_cpu_stats_macos.cc
  src/cpp/server/load_reporter/get_cpu_stats_unsupported.cc
  src/cpp/server/load_reporter/get_cpu_stats_windows.cc
  test/cpp/server/load_reporter/get_cpu_stats_test.cc
)
target_compile_features(lb_get_cpu_stats_test PUBLIC cxx_std_14)
target_include_directories(lb_get_cpu_stats_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(lb_get_cpu_stats_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(lb_load_data_store_test
  src/cpp/server/load_reporter/load_data_store.cc
  test/cpp/server/load_reporter/load_data_store_test.cc
)
target_compile_features(lb_load_data_store_test PUBLIC cxx_std_14)
target_include_directories(lb_load_data_store_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(lb_load_data_store_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(load_config_test
  test/core/config/load_config_test.cc
)
target_compile_features(load_config_test PUBLIC cxx_std_14)
target_include_directories(load_config_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(load_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(lock_free_event_test
    test/core/event_engine/posix/lock_free_event_test.cc
  )
  target_compile_features(lock_free_event_test PUBLIC cxx_std_14)
  target_include_directories(lock_free_event_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(lock_free_event_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    ${_gRPC_BENCHMARK_LIBRARIES}
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(log_test
  test/core/gpr/log_test.cc
)
target_compile_features(log_test PUBLIC cxx_std_14)
target_include_directories(log_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(log_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(log_too_many_open_files_test
    test/core/event_engine/posix/log_too_many_open_files_test.cc
  )
  target_compile_features(log_too_many_open_files_test PUBLIC cxx_std_14)
  target_include_directories(log_too_many_open_files_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(log_too_many_open_files_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(loop_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/trace.cc
  test/core/promise/loop_test.cc
)
target_compile_features(loop_test PUBLIC cxx_std_14)
target_include_directories(loop_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(loop_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(map_pipe_test
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/promise/map_pipe_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(map_pipe_test PUBLIC cxx_std_14)
target_include_directories(map_pipe_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(map_pipe_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(match_test
  test/core/gprpp/match_test.cc
)
target_compile_features(match_test PUBLIC cxx_std_14)
target_include_directories(match_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(match_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(matchers_test
  test/core/matchers/matchers_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(matchers_test PUBLIC cxx_std_14)
target_include_directories(matchers_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(matchers_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(max_concurrent_streams_policy_test
  src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc
  test/core/transport/chttp2/max_concurrent_streams_policy_test.cc
)
target_compile_features(max_concurrent_streams_policy_test PUBLIC cxx_std_14)
target_include_directories(max_concurrent_streams_policy_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(max_concurrent_streams_policy_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(max_concurrent_streams_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/max_concurrent_streams.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(max_concurrent_streams_test PUBLIC cxx_std_14)
target_include_directories(max_concurrent_streams_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(max_concurrent_streams_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(max_connection_age_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/max_connection_age.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(max_connection_age_test PUBLIC cxx_std_14)
target_include_directories(max_connection_age_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(max_connection_age_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(max_connection_idle_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/max_connection_idle.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(max_connection_idle_test PUBLIC cxx_std_14)
target_include_directories(max_connection_idle_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(max_connection_idle_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(max_message_length_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/max_message_length.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(max_message_length_test PUBLIC cxx_std_14)
target_include_directories(max_message_length_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(max_message_length_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(memory_quota_stress_test
    test/core/resource_quota/memory_quota_stress_test.cc
  )
  target_compile_features(memory_quota_stress_test PUBLIC cxx_std_14)
  target_include_directories(memory_quota_stress_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(memory_quota_stress_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util_unsecure
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(memory_quota_test
  test/core/resource_quota/memory_quota_test.cc
)
target_compile_features(memory_quota_test PUBLIC cxx_std_14)
target_include_directories(memory_quota_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(memory_quota_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(message_allocator_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/message_allocator_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(message_allocator_end2end_test PUBLIC cxx_std_14)
target_include_directories(message_allocator_end2end_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(message_allocator_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(message_compress_test
  test/core/compression/message_compress_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(message_compress_test PUBLIC cxx_std_14)
target_include_directories(message_compress_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(message_compress_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(message_size_service_config_test
  test/core/message_size/message_size_service_config_test.cc
)
target_compile_features(message_size_service_config_test PUBLIC cxx_std_14)
target_include_directories(message_size_service_config_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(message_size_service_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(metadata_map_test
  test/core/transport/metadata_map_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(metadata_map_test PUBLIC cxx_std_14)
target_include_directories(metadata_map_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(metadata_map_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(minimal_stack_is_minimal_test
  test/core/channel/minimal_stack_is_minimal_test.cc
)
target_compile_features(minimal_stack_is_minimal_test PUBLIC cxx_std_14)
target_include_directories(minimal_stack_is_minimal_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(minimal_stack_is_minimal_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(miscompile_with_no_unique_address_test
  test/core/compiler_bugs/miscompile_with_no_unique_address_test.cc
)
target_compile_features(miscompile_with_no_unique_address_test PUBLIC cxx_std_14)
target_include_directories(miscompile_with_no_unique_address_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(miscompile_with_no_unique_address_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(mock_stream_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/test/mock_stream_test.cc
)
target_compile_features(mock_stream_test PUBLIC cxx_std_14)
target_include_directories(mock_stream_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(mock_stream_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(mock_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/mock_test.cc
)
target_compile_features(mock_test PUBLIC cxx_std_14)
target_include_directories(mock_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(mock_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(mpsc_test
  src/core/lib/promise/activity.cc
  test/core/promise/mpsc_test.cc
)
target_compile_features(mpsc_test PUBLIC cxx_std_14)
target_include_directories(mpsc_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(mpsc_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(mpscq_test
    test/core/gprpp/mpscq_test.cc
  )
  target_compile_features(mpscq_test PUBLIC cxx_std_14)
  target_include_directories(mpscq_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(mpscq_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(negative_deadline_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/negative_deadline.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(negative_deadline_test PUBLIC cxx_std_14)
target_include_directories(negative_deadline_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(negative_deadline_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(no_destruct_test
  test/core/gprpp/no_destruct_test.cc
)
target_compile_features(no_destruct_test PUBLIC cxx_std_14)
target_include_directories(no_destruct_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(no_destruct_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(no_logging_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/no_logging.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(no_logging_test PUBLIC cxx_std_14)
target_include_directories(no_logging_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(no_logging_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(no_op_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/no_op.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(no_op_test PUBLIC cxx_std_14)
target_include_directories(no_op_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(no_op_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(no_server_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/no_server_test.cc
)
target_compile_features(no_server_test PUBLIC cxx_std_14)
target_include_directories(no_server_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(no_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(nonblocking_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/nonblocking_test.cc
)
target_compile_features(nonblocking_test PUBLIC cxx_std_14)
target_include_directories(nonblocking_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(nonblocking_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(notification_test
  test/core/gprpp/notification_test.cc
)
target_compile_features(notification_test PUBLIC cxx_std_14)
target_include_directories(notification_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(notification_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(num_external_connectivity_watchers_test
  test/core/surface/num_external_connectivity_watchers_test.cc
)
target_compile_features(num_external_connectivity_watchers_test PUBLIC cxx_std_14)
target_include_directories(num_external_connectivity_watchers_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(num_external_connectivity_watchers_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(oracle_event_engine_posix_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix_test.cc
    test/core/event_engine/test_suite/tests/client_test.cc
    test/core/event_engine/test_suite/tests/server_test.cc
  )
  target_compile_features(oracle_event_engine_posix_test PUBLIC cxx_std_14)
  target_include_directories(oracle_event_engine_posix_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(oracle_event_engine_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(orca_service_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.grpc.pb.h
  src/cpp/server/orca/orca_service.cc
  test/cpp/end2end/orca_service_end2end_test.cc
)
target_compile_features(orca_service_end2end_test PUBLIC cxx_std_14)
target_include_directories(orca_service_end2end_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(orca_service_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(orphanable_test
  test/core/gprpp/orphanable_test.cc
)
target_compile_features(orphanable_test PUBLIC cxx_std_14)
target_include_directories(orphanable_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(orphanable_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(osa_distance_test
  test/core/util/osa_distance.cc
  test/core/util/osa_distance_test.cc
)
target_compile_features(osa_distance_test PUBLIC cxx_std_14)
target_include_directories(osa_distance_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(osa_distance_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(out_of_bounds_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/out_of_bounds.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(out_of_bounds_bad_client_test PUBLIC cxx_std_14)
target_include_directories(out_of_bounds_bad_client_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(out_of_bounds_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(outlier_detection_lb_config_parser_test
  test/core/client_channel/lb_policy/outlier_detection_lb_config_parser_test.cc
)
target_compile_features(outlier_detection_lb_config_parser_test PUBLIC cxx_std_14)
target_include_directories(outlier_detection_lb_config_parser_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(outlier_detection_lb_config_parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(outlier_detection_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/client_channel/lb_policy/outlier_detection_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
)
target_compile_features(outlier_detection_test PUBLIC cxx_std_14)
target_include_directories(outlier_detection_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(outlier_detection_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(overload_test
  test/core/gprpp/overload_test.cc
)
target_compile_features(overload_test PUBLIC cxx_std_14)
target_include_directories(overload_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(overload_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(parse_address_test
  test/core/address_utils/parse_address_test.cc
)
target_compile_features(parse_address_test PUBLIC cxx_std_14)
target_include_directories(parse_address_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(parse_address_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(parse_address_with_named_scope_id_test
    test/core/address_utils/parse_address_with_named_scope_id_test.cc
  )
  target_compile_features(parse_address_with_named_scope_id_test PUBLIC cxx_std_14)
  target_include_directories(parse_address_with_named_scope_id_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(parse_address_with_named_scope_id_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(parsed_metadata_test
  test/core/transport/parsed_metadata_test.cc
)
target_compile_features(parsed_metadata_test PUBLIC cxx_std_14)
target_include_directories(parsed_metadata_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(parsed_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(parser_test
  test/core/end2end/data/client_certs.cc
  test/core/end2end/data/server1_cert.cc
  test/core/end2end/data/server1_key.cc
  test/core/end2end/data/test_root_cert.cc
  test/core/http/parser_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(parser_test PUBLIC cxx_std_14)
target_include_directories(parser_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(parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(party_test
  test/core/promise/party_test.cc
)
target_compile_features(party_test PUBLIC cxx_std_14)
target_include_directories(party_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(party_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(payload_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/payload.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(payload_test PUBLIC cxx_std_14)
target_include_directories(payload_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(payload_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(percent_encoding_test
  test/core/slice/percent_encoding_test.cc
)
target_compile_features(percent_encoding_test PUBLIC cxx_std_14)
target_include_directories(percent_encoding_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(percent_encoding_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(periodic_update_test
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/lib/debug/trace.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/resource_quota/periodic_update_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(periodic_update_test PUBLIC cxx_std_14)
target_include_directories(periodic_update_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(periodic_update_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  absl::function_ref
  absl::hash
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(pick_first_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/client_channel/lb_policy/pick_first_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
)
target_compile_features(pick_first_test PUBLIC cxx_std_14)
target_include_directories(pick_first_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(pick_first_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(pid_controller_test
  test/core/transport/pid_controller_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(pid_controller_test PUBLIC cxx_std_14)
target_include_directories(pid_controller_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(pid_controller_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ping_abuse_policy_test
  test/core/transport/chttp2/ping_abuse_policy_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(ping_abuse_policy_test PUBLIC cxx_std_14)
target_include_directories(ping_abuse_policy_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(ping_abuse_policy_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ping_callbacks_test
  test/core/transport/chttp2/ping_callbacks_test.cc
)
target_compile_features(ping_callbacks_test PUBLIC cxx_std_14)
target_include_directories(ping_callbacks_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(ping_callbacks_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ping_configuration_test
  test/core/transport/chttp2/ping_configuration_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(ping_configuration_test PUBLIC cxx_std_14)
target_include_directories(ping_configuration_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(ping_configuration_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ping_pong_streaming_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/ping_pong_streaming.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(ping_pong_streaming_test PUBLIC cxx_std_14)
target_include_directories(ping_pong_streaming_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(ping_pong_streaming_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ping_rate_policy_test
  test/core/transport/chttp2/ping_rate_policy_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(ping_rate_policy_test PUBLIC cxx_std_14)
target_include_directories(ping_rate_policy_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(ping_rate_policy_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ping_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/ping.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(ping_test PUBLIC cxx_std_14)
target_include_directories(ping_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(ping_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(pipe_test
  test/core/promise/pipe_test.cc
)
target_compile_features(pipe_test PUBLIC cxx_std_14)
target_include_directories(pipe_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(pipe_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(poll_test
  test/core/promise/poll_test.cc
)
target_compile_features(poll_test PUBLIC cxx_std_14)
target_include_directories(poll_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(poll_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(port_sharing_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/port_sharing_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(port_sharing_end2end_test PUBLIC cxx_std_14)
target_include_directories(port_sharing_end2end_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(port_sharing_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(posix_endpoint_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/posix/posix_endpoint_test.cc
    test/core/event_engine/posix/posix_engine_test_utils.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix.cc
  )
  target_compile_features(posix_endpoint_test PUBLIC cxx_std_14)
  target_include_directories(posix_endpoint_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(posix_endpoint_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(posix_engine_listener_utils_test
    test/core/event_engine/posix/posix_engine_listener_utils_test.cc
  )
  target_compile_features(posix_engine_listener_utils_test PUBLIC cxx_std_14)
  target_include_directories(posix_engine_listener_utils_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(posix_engine_listener_utils_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(posix_event_engine_connect_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/posix/posix_event_engine_connect_test.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix.cc
  )
  target_compile_features(posix_event_engine_connect_test PUBLIC cxx_std_14)
  target_include_directories(posix_event_engine_connect_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(posix_event_engine_connect_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(posix_event_engine_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix.cc
    test/core/event_engine/test_suite/posix_event_engine_test.cc
    test/core/event_engine/test_suite/tests/client_test.cc
    test/core/event_engine/test_suite/tests/dns_test.cc
    test/core/event_engine/test_suite/tests/server_test.cc
    test/core/event_engine/test_suite/tests/timer_test.cc
    test/core/util/fake_udp_and_tcp_server.cc
    test/cpp/util/get_grpc_test_runfile_dir.cc
    test/cpp/util/windows/manifest_file.cc
  )
  target_compile_features(posix_event_engine_test PUBLIC cxx_std_14)
  target_include_directories(posix_event_engine_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(posix_event_engine_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(pre_stop_hook_server_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/istio_echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  src/cpp/server/admin/admin_services.cc
  src/cpp/server/csds/csds.cc
  test/cpp/end2end/test_health_check_service_impl.cc
  test/cpp/interop/pre_stop_hook_server.cc
  test/cpp/interop/pre_stop_hook_server_test.cc
  test/cpp/interop/xds_interop_server_lib.cc
)
target_compile_features(pre_stop_hook_server_test PUBLIC cxx_std_14)
target_include_directories(pre_stop_hook_server_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(pre_stop_hook_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_reflection
  grpcpp_channelz
  grpc_test_util
  grpc++_test_config
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(prioritized_race_test
  test/core/promise/prioritized_race_test.cc
)
target_compile_features(prioritized_race_test PUBLIC cxx_std_14)
target_include_directories(prioritized_race_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(prioritized_race_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(promise_endpoint_test
  src/core/lib/transport/promise_endpoint.cc
  test/core/transport/promise_endpoint_test.cc
)
target_compile_features(promise_endpoint_test PUBLIC cxx_std_14)
target_include_directories(promise_endpoint_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(promise_endpoint_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(promise_factory_test
  test/core/promise/promise_factory_test.cc
)
target_compile_features(promise_factory_test PUBLIC cxx_std_14)
target_include_directories(promise_factory_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(promise_factory_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::bind_front
  absl::type_traits
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(promise_map_test
  test/core/promise/map_test.cc
)
target_compile_features(promise_map_test PUBLIC cxx_std_14)
target_include_directories(promise_map_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(promise_map_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(promise_mutex_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/trace.cc
  test/core/promise/promise_mutex_test.cc
)
target_compile_features(promise_mutex_test PUBLIC cxx_std_14)
target_include_directories(promise_mutex_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(promise_mutex_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(promise_test
  test/core/promise/promise_test.cc
)
target_compile_features(promise_test PUBLIC cxx_std_14)
target_include_directories(promise_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(promise_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(proto_buffer_reader_test
  test/cpp/util/proto_buffer_reader_test.cc
)
target_compile_features(proto_buffer_reader_test PUBLIC cxx_std_14)
target_include_directories(proto_buffer_reader_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(proto_buffer_reader_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(proto_buffer_writer_test
  test/cpp/util/proto_buffer_writer_test.cc
)
target_compile_features(proto_buffer_writer_test PUBLIC cxx_std_14)
target_include_directories(proto_buffer_writer_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(proto_buffer_writer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(proto_server_reflection_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/proto_server_reflection_test.cc
  test/cpp/end2end/test_service_impl.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
)
target_compile_features(proto_server_reflection_test PUBLIC cxx_std_14)
target_include_directories(proto_server_reflection_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(proto_server_reflection_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_reflection
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(proto_utils_test
  test/cpp/codegen/proto_utils_test.cc
)
target_compile_features(proto_utils_test PUBLIC cxx_std_14)
target_include_directories(proto_utils_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(proto_utils_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(proxy_auth_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/proxy_auth.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(proxy_auth_test PUBLIC cxx_std_14)
target_include_directories(proxy_auth_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(proxy_auth_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(qps_json_driver
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/report_qps_scenario_service.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/report_qps_scenario_service.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/report_qps_scenario_service.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/report_qps_scenario_service.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.grpc.pb.h
  test/cpp/qps/benchmark_config.cc
  test/cpp/qps/client_async.cc
  test/cpp/qps/client_callback.cc
  test/cpp/qps/client_sync.cc
  test/cpp/qps/driver.cc
  test/cpp/qps/parse_json.cc
  test/cpp/qps/qps_json_driver.cc
  test/cpp/qps/qps_server_builder.cc
  test/cpp/qps/qps_worker.cc
  test/cpp/qps/report.cc
  test/cpp/qps/server_async.cc
  test/cpp/qps/server_callback.cc
  test/cpp/qps/server_sync.cc
  test/cpp/qps/usage_timer.cc
)
target_compile_features(qps_json_driver PUBLIC cxx_std_14)
target_include_directories(qps_json_driver
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(qps_json_driver
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(qps_worker
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/benchmark_service.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/control.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/payloads.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/stats.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/worker_service.grpc.pb.h
  test/cpp/qps/client_async.cc
  test/cpp/qps/client_callback.cc
  test/cpp/qps/client_sync.cc
  test/cpp/qps/qps_server_builder.cc
  test/cpp/qps/qps_worker.cc
  test/cpp/qps/server_async.cc
  test/cpp/qps/server_callback.cc
  test/cpp/qps/server_sync.cc
  test/cpp/qps/usage_timer.cc
  test/cpp/qps/worker.cc
)
target_compile_features(qps_worker PUBLIC cxx_std_14)
target_include_directories(qps_worker
  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}
    ${_gRPC_PROTO_GENS_DIR}
)

target_link_libraries(qps_worker
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(race_test
  test/core/promise/race_test.cc
)
target_compile_features(race_test PUBLIC cxx_std_14)
target_include_directories(race_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(race_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(random_early_detection_test
  src/core/lib/backoff/random_early_detection.cc
  test/core/backoff/random_early_detection_test.cc
)
target_compile_features(random_early_detection_test PUBLIC cxx_std_14)
target_include_directories(random_early_detection_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(random_early_detection_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::random_bit_gen_ref
  absl::random_distributions
  absl::random_random
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(raw_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/raw_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(raw_end2end_test PUBLIC cxx_std_14)
target_include_directories(raw_end2end_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(raw_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(rbac_service_config_parser_test
  test/core/ext/filters/rbac/rbac_service_config_parser_test.cc
)
target_compile_features(rbac_service_config_parser_test PUBLIC cxx_std_14)
target_include_directories(rbac_service_config_parser_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(rbac_service_config_parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(rbac_translator_test
  test/core/security/rbac_translator_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(rbac_translator_test PUBLIC cxx_std_14)
target_include_directories(rbac_translator_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(rbac_translator_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ref_counted_ptr_test
  test/core/gprpp/ref_counted_ptr_test.cc
)
target_compile_features(ref_counted_ptr_test PUBLIC cxx_std_14)
target_include_directories(ref_counted_ptr_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(ref_counted_ptr_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ref_counted_test
  test/core/gprpp/ref_counted_test.cc
)
target_compile_features(ref_counted_test PUBLIC cxx_std_14)
target_include_directories(ref_counted_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(ref_counted_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(registered_call_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/registered_call.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(registered_call_test PUBLIC cxx_std_14)
target_include_directories(registered_call_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(registered_call_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(remove_stream_from_stalled_lists_test
    test/core/transport/chttp2/remove_stream_from_stalled_lists_test.cc
  )
  target_compile_features(remove_stream_from_stalled_lists_test PUBLIC cxx_std_14)
  target_include_directories(remove_stream_from_stalled_lists_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(remove_stream_from_stalled_lists_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(request_with_flags_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/request_with_flags.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(request_with_flags_test PUBLIC cxx_std_14)
target_include_directories(request_with_flags_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(request_with_flags_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(request_with_payload_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/request_with_payload.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(request_with_payload_test PUBLIC cxx_std_14)
target_include_directories(request_with_payload_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(request_with_payload_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(resolve_address_using_ares_resolver_posix_test
    test/core/iomgr/resolve_address_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(resolve_address_using_ares_resolver_posix_test PUBLIC cxx_std_14)
  target_include_directories(resolve_address_using_ares_resolver_posix_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(resolve_address_using_ares_resolver_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(resolve_address_using_ares_resolver_test
  test/core/iomgr/resolve_address_test.cc
  test/core/util/cmdline.cc
  test/core/util/fake_udp_and_tcp_server.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(resolve_address_using_ares_resolver_test PUBLIC cxx_std_14)
target_include_directories(resolve_address_using_ares_resolver_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(resolve_address_using_ares_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
  grpc++_test_config
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(resolve_address_using_native_resolver_posix_test
    test/core/iomgr/resolve_address_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(resolve_address_using_native_resolver_posix_test PUBLIC cxx_std_14)
  target_include_directories(resolve_address_using_native_resolver_posix_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(resolve_address_using_native_resolver_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(resolve_address_using_native_resolver_test
  test/core/iomgr/resolve_address_test.cc
  test/core/util/cmdline.cc
  test/core/util/fake_udp_and_tcp_server.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(resolve_address_using_native_resolver_test PUBLIC cxx_std_14)
target_include_directories(resolve_address_using_native_resolver_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(resolve_address_using_native_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
  grpc++_test_config
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(resource_quota_end2end_stress_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/resource_quota_end2end_stress_test.cc
)
target_compile_features(resource_quota_end2end_stress_test PUBLIC cxx_std_14)
target_include_directories(resource_quota_end2end_stress_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(resource_quota_end2end_stress_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(resource_quota_server_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/resource_quota_server.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(resource_quota_server_test PUBLIC cxx_std_14)
target_include_directories(resource_quota_server_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(resource_quota_server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(resource_quota_test
  test/core/resource_quota/resource_quota_test.cc
)
target_compile_features(resource_quota_test PUBLIC cxx_std_14)
target_include_directories(resource_quota_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(resource_quota_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_cancel_after_first_attempt_starts_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_cancel_after_first_attempt_starts.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_cancel_after_first_attempt_starts_test PUBLIC cxx_std_14)
target_include_directories(retry_cancel_after_first_attempt_starts_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(retry_cancel_after_first_attempt_starts_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_cancel_during_delay_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_cancel_during_delay.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_cancel_during_delay_test PUBLIC cxx_std_14)
target_include_directories(retry_cancel_during_delay_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(retry_cancel_during_delay_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_cancel_with_multiple_send_batches_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_cancel_with_multiple_send_batches.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_cancel_with_multiple_send_batches_test PUBLIC cxx_std_14)
target_include_directories(retry_cancel_with_multiple_send_batches_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(retry_cancel_with_multiple_send_batches_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_cancellation_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_cancellation.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_cancellation_test PUBLIC cxx_std_14)
target_include_directories(retry_cancellation_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(retry_cancellation_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_disabled_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_disabled.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_disabled_test PUBLIC cxx_std_14)
target_include_directories(retry_disabled_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(retry_disabled_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_exceeds_buffer_size_in_delay_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_exceeds_buffer_size_in_delay.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_exceeds_buffer_size_in_delay_test PUBLIC cxx_std_14)
target_include_directories(retry_exceeds_buffer_size_in_delay_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(retry_exceeds_buffer_size_in_delay_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_exceeds_buffer_size_in_initial_batch_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_exceeds_buffer_size_in_initial_batch.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_exceeds_buffer_size_in_initial_batch_test PUBLIC cxx_std_14)
target_include_directories(retry_exceeds_buffer_size_in_initial_batch_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(retry_exceeds_buffer_size_in_initial_batch_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_exceeds_buffer_size_in_subsequent_batch_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_exceeds_buffer_size_in_subsequent_batch.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_exceeds_buffer_size_in_subsequent_batch_test PUBLIC cxx_std_14)
target_include_directories(retry_exceeds_buffer_size_in_subsequent_batch_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(retry_exceeds_buffer_size_in_subsequent_batch_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_lb_drop_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_lb_drop.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_lb_drop_test PUBLIC cxx_std_14)
target_include_directories(retry_lb_drop_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(retry_lb_drop_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_lb_fail_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_lb_fail.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_lb_fail_test PUBLIC cxx_std_14)
target_include_directories(retry_lb_fail_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(retry_lb_fail_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_non_retriable_status_before_trailers_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_non_retriable_status_before_trailers.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_non_retriable_status_before_trailers_test PUBLIC cxx_std_14)
target_include_directories(retry_non_retriable_status_before_trailers_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(retry_non_retriable_status_before_trailers_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_non_retriable_status_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_non_retriable_status.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_non_retriable_status_test PUBLIC cxx_std_14)
target_include_directories(retry_non_retriable_status_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(retry_non_retriable_status_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_per_attempt_recv_timeout_on_last_attempt_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_per_attempt_recv_timeout_on_last_attempt.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_per_attempt_recv_timeout_on_last_attempt_test PUBLIC cxx_std_14)
target_include_directories(retry_per_attempt_recv_timeout_on_last_attempt_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(retry_per_attempt_recv_timeout_on_last_attempt_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_per_attempt_recv_timeout_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_per_attempt_recv_timeout.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_per_attempt_recv_timeout_test PUBLIC cxx_std_14)
target_include_directories(retry_per_attempt_recv_timeout_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(retry_per_attempt_recv_timeout_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_recv_initial_metadata_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_recv_initial_metadata.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_recv_initial_metadata_test PUBLIC cxx_std_14)
target_include_directories(retry_recv_initial_metadata_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(retry_recv_initial_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_recv_message_replay_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_recv_message_replay.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_recv_message_replay_test PUBLIC cxx_std_14)
target_include_directories(retry_recv_message_replay_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(retry_recv_message_replay_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_recv_message_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_recv_message.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_recv_message_test PUBLIC cxx_std_14)
target_include_directories(retry_recv_message_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(retry_recv_message_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_recv_trailing_metadata_error_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_recv_trailing_metadata_error.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_recv_trailing_metadata_error_test PUBLIC cxx_std_14)
target_include_directories(retry_recv_trailing_metadata_error_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(retry_recv_trailing_metadata_error_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_send_initial_metadata_refs_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_send_initial_metadata_refs.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_send_initial_metadata_refs_test PUBLIC cxx_std_14)
target_include_directories(retry_send_initial_metadata_refs_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(retry_send_initial_metadata_refs_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_send_op_fails_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_send_op_fails.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_send_op_fails_test PUBLIC cxx_std_14)
target_include_directories(retry_send_op_fails_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(retry_send_op_fails_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_send_recv_batch_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_send_recv_batch.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_send_recv_batch_test PUBLIC cxx_std_14)
target_include_directories(retry_send_recv_batch_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(retry_send_recv_batch_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_server_pushback_delay_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_server_pushback_delay.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_server_pushback_delay_test PUBLIC cxx_std_14)
target_include_directories(retry_server_pushback_delay_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(retry_server_pushback_delay_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_server_pushback_disabled_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_server_pushback_disabled.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_server_pushback_disabled_test PUBLIC cxx_std_14)
target_include_directories(retry_server_pushback_disabled_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(retry_server_pushback_disabled_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_service_config_test
  test/core/client_channel/retry_service_config_test.cc
)
target_compile_features(retry_service_config_test PUBLIC cxx_std_14)
target_include_directories(retry_service_config_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(retry_service_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_streaming_after_commit_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_streaming_after_commit.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_streaming_after_commit_test PUBLIC cxx_std_14)
target_include_directories(retry_streaming_after_commit_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(retry_streaming_after_commit_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_streaming_succeeds_before_replay_finished_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_streaming_succeeds_before_replay_finished.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_streaming_succeeds_before_replay_finished_test PUBLIC cxx_std_14)
target_include_directories(retry_streaming_succeeds_before_replay_finished_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(retry_streaming_succeeds_before_replay_finished_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_streaming_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_streaming.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_streaming_test PUBLIC cxx_std_14)
target_include_directories(retry_streaming_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(retry_streaming_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_test PUBLIC cxx_std_14)
target_include_directories(retry_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(retry_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_throttle_test
  test/core/client_channel/retry_throttle_test.cc
)
target_compile_features(retry_throttle_test PUBLIC cxx_std_14)
target_include_directories(retry_throttle_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(retry_throttle_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_throttled_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_throttled.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_throttled_test PUBLIC cxx_std_14)
target_include_directories(retry_throttled_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(retry_throttled_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_too_many_attempts_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_too_many_attempts.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_too_many_attempts_test PUBLIC cxx_std_14)
target_include_directories(retry_too_many_attempts_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(retry_too_many_attempts_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_transparent_goaway_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_transparent_goaway.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_transparent_goaway_test PUBLIC cxx_std_14)
target_include_directories(retry_transparent_goaway_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(retry_transparent_goaway_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_transparent_max_concurrent_streams_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_transparent_max_concurrent_streams.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_transparent_max_concurrent_streams_test PUBLIC cxx_std_14)
target_include_directories(retry_transparent_max_concurrent_streams_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(retry_transparent_max_concurrent_streams_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_transparent_not_sent_on_wire_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_transparent_not_sent_on_wire.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_transparent_not_sent_on_wire_test PUBLIC cxx_std_14)
target_include_directories(retry_transparent_not_sent_on_wire_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(retry_transparent_not_sent_on_wire_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_unref_before_finish_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_unref_before_finish.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_unref_before_finish_test PUBLIC cxx_std_14)
target_include_directories(retry_unref_before_finish_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(retry_unref_before_finish_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(retry_unref_before_recv_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/retry_unref_before_recv.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(retry_unref_before_recv_test PUBLIC cxx_std_14)
target_include_directories(retry_unref_before_recv_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(retry_unref_before_recv_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(ring_hash_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/client_channel/lb_policy/ring_hash_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
)
target_compile_features(ring_hash_test PUBLIC cxx_std_14)
target_include_directories(ring_hash_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(ring_hash_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(rls_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/core/util/test_lb_policies.cc
  test/cpp/end2end/rls_end2end_test.cc
  test/cpp/end2end/rls_server.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(rls_end2end_test PUBLIC cxx_std_14)
target_include_directories(rls_end2end_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(rls_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(rls_lb_config_parser_test
  test/core/client_channel/lb_policy/rls_lb_config_parser_test.cc
)
target_compile_features(rls_lb_config_parser_test PUBLIC cxx_std_14)
target_include_directories(rls_lb_config_parser_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(rls_lb_config_parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(round_robin_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/client_channel/lb_policy/round_robin_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
)
target_compile_features(round_robin_test PUBLIC cxx_std_14)
target_include_directories(round_robin_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(round_robin_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(secure_auth_context_test
  test/cpp/common/secure_auth_context_test.cc
)
target_compile_features(secure_auth_context_test PUBLIC cxx_std_14)
target_include_directories(secure_auth_context_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(secure_auth_context_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(secure_channel_create_test
  test/core/surface/secure_channel_create_test.cc
)
target_compile_features(secure_channel_create_test PUBLIC cxx_std_14)
target_include_directories(secure_channel_create_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(secure_channel_create_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(secure_endpoint_test
  test/core/iomgr/endpoint_tests.cc
  test/core/security/secure_endpoint_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(secure_endpoint_test PUBLIC cxx_std_14)
target_include_directories(secure_endpoint_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(secure_endpoint_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(security_connector_test
  test/core/security/security_connector_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(security_connector_test PUBLIC cxx_std_14)
target_include_directories(security_connector_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(security_connector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(seq_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/trace.cc
  test/core/promise/seq_test.cc
)
target_compile_features(seq_test PUBLIC cxx_std_14)
target_include_directories(seq_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(seq_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(sequential_connectivity_test
  test/core/surface/sequential_connectivity_test.cc
)
target_compile_features(sequential_connectivity_test PUBLIC cxx_std_14)
target_include_directories(sequential_connectivity_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(sequential_connectivity_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_builder_plugin_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/server_builder_plugin_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(server_builder_plugin_test PUBLIC cxx_std_14)
target_include_directories(server_builder_plugin_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(server_builder_plugin_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(server_builder_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
    test/cpp/server/server_builder_test.cc
  )
  target_compile_features(server_builder_test PUBLIC cxx_std_14)
  target_include_directories(server_builder_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(server_builder_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_unsecure
    grpc_test_util_unsecure
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(server_builder_with_socket_mutator_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
    test/cpp/server/server_builder_with_socket_mutator_test.cc
  )
  target_compile_features(server_builder_with_socket_mutator_test PUBLIC cxx_std_14)
  target_include_directories(server_builder_with_socket_mutator_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(server_builder_with_socket_mutator_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_unsecure
    grpc_test_util_unsecure
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(server_call_tracer_factory_test
  test/core/channel/server_call_tracer_factory_test.cc
)
target_compile_features(server_call_tracer_factory_test PUBLIC cxx_std_14)
target_include_directories(server_call_tracer_factory_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(server_call_tracer_factory_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_chttp2_test
  test/core/surface/server_chttp2_test.cc
)
target_compile_features(server_chttp2_test PUBLIC cxx_std_14)
target_include_directories(server_chttp2_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(server_chttp2_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_config_selector_test
  test/core/server_config_selector/server_config_selector_test.cc
)
target_compile_features(server_config_selector_test PUBLIC cxx_std_14)
target_include_directories(server_config_selector_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(server_config_selector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_context_test_spouse_test
  test/cpp/test/server_context_test_spouse_test.cc
)
target_compile_features(server_context_test_spouse_test PUBLIC cxx_std_14)
target_include_directories(server_context_test_spouse_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(server_context_test_spouse_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  grpc++_test
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_early_return_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/server_early_return_test.cc
)
target_compile_features(server_early_return_test PUBLIC cxx_std_14)
target_include_directories(server_early_return_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(server_early_return_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_finishes_request_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/server_finishes_request.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(server_finishes_request_test PUBLIC cxx_std_14)
target_include_directories(server_finishes_request_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(server_finishes_request_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_interceptors_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/interceptors_util.cc
  test/cpp/end2end/server_interceptors_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(server_interceptors_end2end_test PUBLIC cxx_std_14)
target_include_directories(server_interceptors_end2end_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(server_interceptors_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_registered_method_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/server_registered_method.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(server_registered_method_bad_client_test PUBLIC cxx_std_14)
target_include_directories(server_registered_method_bad_client_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(server_registered_method_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(server_request_call_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
    test/cpp/server/server_request_call_test.cc
  )
  target_compile_features(server_request_call_test PUBLIC cxx_std_14)
  target_include_directories(server_request_call_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(server_request_call_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_unsecure
    grpc_test_util_unsecure
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(server_ssl_test
    test/core/handshake/server_ssl.cc
    test/core/handshake/server_ssl_common.cc
  )
  target_compile_features(server_ssl_test PUBLIC cxx_std_14)
  target_include_directories(server_ssl_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(server_ssl_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(server_streaming_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/server_streaming.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(server_streaming_test PUBLIC cxx_std_14)
target_include_directories(server_streaming_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(server_streaming_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(server_test
  test/core/surface/server_test.cc
)
target_compile_features(server_test PUBLIC cxx_std_14)
target_include_directories(server_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(server_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(service_config_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/service_config_end2end_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(service_config_end2end_test PUBLIC cxx_std_14)
target_include_directories(service_config_end2end_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(service_config_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(service_config_test
  test/core/service_config/service_config_test.cc
)
target_compile_features(service_config_test PUBLIC cxx_std_14)
target_include_directories(service_config_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(service_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(settings_timeout_test
  test/core/transport/chttp2/settings_timeout_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(settings_timeout_test PUBLIC cxx_std_14)
target_include_directories(settings_timeout_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(settings_timeout_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(shutdown_finishes_calls_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/shutdown_finishes_calls.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(shutdown_finishes_calls_test PUBLIC cxx_std_14)
target_include_directories(shutdown_finishes_calls_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(shutdown_finishes_calls_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(shutdown_finishes_tags_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/shutdown_finishes_tags.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(shutdown_finishes_tags_test PUBLIC cxx_std_14)
target_include_directories(shutdown_finishes_tags_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(shutdown_finishes_tags_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(shutdown_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/shutdown_test.cc
)
target_compile_features(shutdown_test PUBLIC cxx_std_14)
target_include_directories(shutdown_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(shutdown_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(simple_delayed_request_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/simple_delayed_request.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(simple_delayed_request_test PUBLIC cxx_std_14)
target_include_directories(simple_delayed_request_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(simple_delayed_request_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(simple_metadata_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/simple_metadata.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(simple_metadata_test PUBLIC cxx_std_14)
target_include_directories(simple_metadata_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(simple_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(simple_request_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/simple_request.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(simple_request_bad_client_test PUBLIC cxx_std_14)
target_include_directories(simple_request_bad_client_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(simple_request_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(simple_request_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/simple_request.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(simple_request_test PUBLIC cxx_std_14)
target_include_directories(simple_request_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(simple_request_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(single_set_ptr_test
  test/core/gprpp/single_set_ptr_test.cc
)
target_compile_features(single_set_ptr_test PUBLIC cxx_std_14)
target_include_directories(single_set_ptr_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(single_set_ptr_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(sleep_test
  test/core/promise/sleep_test.cc
)
target_compile_features(sleep_test PUBLIC cxx_std_14)
target_include_directories(sleep_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(sleep_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(slice_string_helpers_test
  src/core/lib/debug/trace.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/slice/slice_string_helpers_test.cc
)
target_compile_features(slice_string_helpers_test PUBLIC cxx_std_14)
target_include_directories(slice_string_helpers_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(slice_string_helpers_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(smoke_test
  test/core/event_engine/smoke_test.cc
)
target_compile_features(smoke_test PUBLIC cxx_std_14)
target_include_directories(smoke_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(smoke_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(sockaddr_resolver_test
  test/core/client_channel/resolvers/sockaddr_resolver_test.cc
)
target_compile_features(sockaddr_resolver_test PUBLIC cxx_std_14)
target_include_directories(sockaddr_resolver_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(sockaddr_resolver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(sockaddr_utils_test
  test/core/address_utils/sockaddr_utils_test.cc
)
target_compile_features(sockaddr_utils_test PUBLIC cxx_std_14)
target_include_directories(sockaddr_utils_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(sockaddr_utils_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(socket_utils_test
    test/core/iomgr/socket_utils_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(socket_utils_test PUBLIC cxx_std_14)
  target_include_directories(socket_utils_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(socket_utils_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(sorted_pack_test
  test/core/gprpp/sorted_pack_test.cc
)
target_compile_features(sorted_pack_test PUBLIC cxx_std_14)
target_include_directories(sorted_pack_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(sorted_pack_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(spinlock_test
  test/core/gpr/spinlock_test.cc
)
target_compile_features(spinlock_test PUBLIC cxx_std_14)
target_include_directories(spinlock_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(spinlock_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(ssl_transport_security_test
    test/core/tsi/ssl_transport_security_test.cc
    test/core/tsi/transport_security_test_lib.cc
  )
  target_compile_features(ssl_transport_security_test PUBLIC cxx_std_14)
  target_include_directories(ssl_transport_security_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(ssl_transport_security_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(ssl_transport_security_utils_test
    test/core/tsi/ssl_transport_security_utils_test.cc
  )
  target_compile_features(ssl_transport_security_utils_test PUBLIC cxx_std_14)
  target_include_directories(ssl_transport_security_utils_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(ssl_transport_security_utils_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(stack_tracer_test
    test/core/util/stack_tracer_test.cc
  )
  target_compile_features(stack_tracer_test PUBLIC cxx_std_14)
  target_include_directories(stack_tracer_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(stack_tracer_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(stat_test
  test/core/gprpp/stat_test.cc
)
target_compile_features(stat_test PUBLIC cxx_std_14)
target_include_directories(stat_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(stat_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(static_stride_scheduler_test
  src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc
  test/core/client_channel/lb_policy/static_stride_scheduler_test.cc
)
target_compile_features(static_stride_scheduler_test PUBLIC cxx_std_14)
target_include_directories(static_stride_scheduler_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(static_stride_scheduler_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::span
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(stats_test
  test/core/debug/stats_test.cc
)
target_compile_features(stats_test PUBLIC cxx_std_14)
target_include_directories(stats_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(stats_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(status_conversion_test
  test/core/transport/status_conversion_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(status_conversion_test PUBLIC cxx_std_14)
target_include_directories(status_conversion_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(status_conversion_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(status_flag_test
  test/core/promise/status_flag_test.cc
)
target_compile_features(status_flag_test PUBLIC cxx_std_14)
target_include_directories(status_flag_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(status_flag_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::status
  absl::statusor
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(status_helper_test
  test/core/gprpp/status_helper_test.cc
)
target_compile_features(status_helper_test PUBLIC cxx_std_14)
target_include_directories(status_helper_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(status_helper_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(status_util_test
  test/core/channel/status_util_test.cc
)
target_compile_features(status_util_test PUBLIC cxx_std_14)
target_include_directories(status_util_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(status_util_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(stream_leak_with_queued_flow_control_update_test
  test/core/transport/chttp2/stream_leak_with_queued_flow_control_update_test.cc
)
target_compile_features(stream_leak_with_queued_flow_control_update_test PUBLIC cxx_std_14)
target_include_directories(stream_leak_with_queued_flow_control_update_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(stream_leak_with_queued_flow_control_update_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(streaming_error_response_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/streaming_error_response.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(streaming_error_response_test PUBLIC cxx_std_14)
target_include_directories(streaming_error_response_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(streaming_error_response_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(streaming_throughput_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/cpp/end2end/streaming_throughput_test.cc
  )
  target_compile_features(streaming_throughput_test PUBLIC cxx_std_14)
  target_include_directories(streaming_throughput_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(streaming_throughput_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(streams_not_seen_test
  test/core/end2end/cq_verifier.cc
  test/core/transport/chttp2/streams_not_seen_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(streams_not_seen_test PUBLIC cxx_std_14)
target_include_directories(streams_not_seen_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(streams_not_seen_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(string_ref_test
  test/cpp/util/string_ref_test.cc
)
target_compile_features(string_ref_test PUBLIC cxx_std_14)
target_include_directories(string_ref_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(string_ref_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(string_test
  test/core/gpr/string_test.cc
)
target_compile_features(string_test PUBLIC cxx_std_14)
target_include_directories(string_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(string_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(sync_test
  test/core/gpr/sync_test.cc
)
target_compile_features(sync_test PUBLIC cxx_std_14)
target_include_directories(sync_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(sync_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(system_roots_test
  test/core/security/system_roots_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(system_roots_test PUBLIC cxx_std_14)
target_include_directories(system_roots_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(system_roots_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(table_test
  test/core/gprpp/table_test.cc
)
target_compile_features(table_test PUBLIC cxx_std_14)
target_include_directories(table_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(table_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::utility
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(tcp_client_posix_test
    test/core/iomgr/tcp_client_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(tcp_client_posix_test PUBLIC cxx_std_14)
  target_include_directories(tcp_client_posix_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(tcp_client_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(tcp_posix_socket_utils_test
    test/core/event_engine/posix/tcp_posix_socket_utils_test.cc
  )
  target_compile_features(tcp_posix_socket_utils_test PUBLIC cxx_std_14)
  target_include_directories(tcp_posix_socket_utils_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(tcp_posix_socket_utils_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)

  add_executable(tcp_posix_test
    test/core/iomgr/endpoint_tests.cc
    test/core/iomgr/tcp_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(tcp_posix_test PUBLIC cxx_std_14)
  target_include_directories(tcp_posix_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(tcp_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(tcp_server_posix_test
    test/core/iomgr/tcp_server_posix_test.cc
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
  )
  target_compile_features(tcp_server_posix_test PUBLIC cxx_std_14)
  target_include_directories(tcp_server_posix_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(tcp_server_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(tcp_socket_utils_test
  test/core/event_engine/tcp_socket_utils_test.cc
)
target_compile_features(tcp_socket_utils_test PUBLIC cxx_std_14)
target_include_directories(tcp_socket_utils_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(tcp_socket_utils_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_channel_channelz_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/channelz.grpc.pb.h
  test/core/channel/channelz_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/cpp/util/channel_trace_proto_helper.cc
)
target_compile_features(test_core_channel_channelz_test PUBLIC cxx_std_14)
target_include_directories(test_core_channel_channelz_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(test_core_channel_channelz_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_end2end_channelz_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/channelz.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(test_core_end2end_channelz_test PUBLIC cxx_std_14)
target_include_directories(test_core_end2end_channelz_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(test_core_end2end_channelz_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_event_engine_posix_timer_heap_test
  src/core/lib/event_engine/posix_engine/timer.cc
  src/core/lib/event_engine/posix_engine/timer_heap.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/gprpp/time_averaged_stats.cc
  test/core/event_engine/posix/timer_heap_test.cc
)
target_compile_features(test_core_event_engine_posix_timer_heap_test PUBLIC cxx_std_14)
target_include_directories(test_core_event_engine_posix_timer_heap_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(test_core_event_engine_posix_timer_heap_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_event_engine_posix_timer_list_test
  src/core/lib/event_engine/posix_engine/timer.cc
  src/core/lib/event_engine/posix_engine/timer_heap.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/gprpp/time_averaged_stats.cc
  test/core/event_engine/posix/timer_list_test.cc
)
target_compile_features(test_core_event_engine_posix_timer_list_test PUBLIC cxx_std_14)
target_include_directories(test_core_event_engine_posix_timer_list_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(test_core_event_engine_posix_timer_list_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_event_engine_slice_buffer_test
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/event_engine.cc
  src/core/lib/event_engine/resolved_address.cc
  src/core/lib/event_engine/slice.cc
  src/core/lib/event_engine/slice_buffer.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_buffer.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/event_engine/slice_buffer_test.cc
)
target_compile_features(test_core_event_engine_slice_buffer_test PUBLIC cxx_std_14)
target_include_directories(test_core_event_engine_slice_buffer_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(test_core_event_engine_slice_buffer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::statusor
  absl::utility
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_gpr_time_test
  test/core/gpr/time_test.cc
)
target_compile_features(test_core_gpr_time_test PUBLIC cxx_std_14)
target_include_directories(test_core_gpr_time_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(test_core_gpr_time_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_gprpp_load_file_test
  test/core/gprpp/load_file_test.cc
)
target_compile_features(test_core_gprpp_load_file_test PUBLIC cxx_std_14)
target_include_directories(test_core_gprpp_load_file_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(test_core_gprpp_load_file_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_gprpp_time_test
  src/core/lib/gprpp/time.cc
  test/core/gprpp/time_test.cc
)
target_compile_features(test_core_gprpp_time_test PUBLIC cxx_std_14)
target_include_directories(test_core_gprpp_time_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(test_core_gprpp_time_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_iomgr_load_file_test
  test/core/iomgr/load_file_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(test_core_iomgr_load_file_test PUBLIC cxx_std_14)
target_include_directories(test_core_iomgr_load_file_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(test_core_iomgr_load_file_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_iomgr_timer_heap_test
  test/core/iomgr/timer_heap_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(test_core_iomgr_timer_heap_test PUBLIC cxx_std_14)
target_include_directories(test_core_iomgr_timer_heap_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(test_core_iomgr_timer_heap_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_security_credentials_test
  test/core/security/credentials_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(test_core_security_credentials_test PUBLIC cxx_std_14)
target_include_directories(test_core_security_credentials_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(test_core_security_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_security_ssl_credentials_test
  test/core/security/ssl_credentials_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(test_core_security_ssl_credentials_test PUBLIC cxx_std_14)
target_include_directories(test_core_security_ssl_credentials_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(test_core_security_ssl_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_slice_slice_buffer_test
  test/core/slice/slice_buffer_test.cc
)
target_compile_features(test_core_slice_slice_buffer_test PUBLIC cxx_std_14)
target_include_directories(test_core_slice_slice_buffer_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(test_core_slice_slice_buffer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_slice_slice_test
  test/core/slice/slice_test.cc
  test/core/util/build.cc
)
target_compile_features(test_core_slice_slice_test PUBLIC cxx_std_14)
target_include_directories(test_core_slice_slice_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(test_core_slice_slice_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_transport_chaotic_good_frame_test
  src/core/ext/transport/chaotic_good/frame.cc
  src/core/ext/transport/chaotic_good/frame_header.cc
  src/core/ext/transport/chttp2/transport/bin_encoder.cc
  src/core/ext/transport/chttp2/transport/decode_huff.cc
  src/core/ext/transport/chttp2/transport/hpack_encoder.cc
  src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc
  src/core/ext/transport/chttp2/transport/hpack_parse_result.cc
  src/core/ext/transport/chttp2/transport/hpack_parser.cc
  src/core/ext/transport/chttp2/transport/hpack_parser_table.cc
  src/core/ext/transport/chttp2/transport/http_trace.cc
  src/core/ext/transport/chttp2/transport/huffsyms.cc
  src/core/ext/transport/chttp2/transport/varint.cc
  src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c
  src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
  src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c
  src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c
  src/core/lib/address_utils/parse_address.cc
  src/core/lib/address_utils/sockaddr_utils.cc
  src/core/lib/backoff/backoff.cc
  src/core/lib/backoff/random_early_detection.cc
  src/core/lib/channel/call_tracer.cc
  src/core/lib/channel/channel_args.cc
  src/core/lib/channel/channel_args_preconditioning.cc
  src/core/lib/channel/channel_stack.cc
  src/core/lib/channel/channel_stack_builder.cc
  src/core/lib/channel/channel_stack_builder_impl.cc
  src/core/lib/channel/channel_stack_trace.cc
  src/core/lib/channel/channel_trace.cc
  src/core/lib/channel/channelz.cc
  src/core/lib/channel/channelz_registry.cc
  src/core/lib/channel/connected_channel.cc
  src/core/lib/channel/promise_based_filter.cc
  src/core/lib/channel/server_call_tracer_filter.cc
  src/core/lib/channel/status_util.cc
  src/core/lib/compression/compression.cc
  src/core/lib/compression/compression_internal.cc
  src/core/lib/compression/message_compress.cc
  src/core/lib/config/core_configuration.cc
  src/core/lib/debug/event_log.cc
  src/core/lib/debug/histogram_view.cc
  src/core/lib/debug/stats.cc
  src/core/lib/debug/stats_data.cc
  src/core/lib/debug/trace.cc
  src/core/lib/event_engine/ares_resolver.cc
  src/core/lib/event_engine/cf_engine/cf_engine.cc
  src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc
  src/core/lib/event_engine/cf_engine/dns_service_resolver.cc
  src/core/lib/event_engine/channel_args_endpoint_config.cc
  src/core/lib/event_engine/default_event_engine.cc
  src/core/lib/event_engine/default_event_engine_factory.cc
  src/core/lib/event_engine/event_engine.cc
  src/core/lib/event_engine/forkable.cc
  src/core/lib/event_engine/memory_allocator.cc
  src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
  src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
  src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc
  src/core/lib/event_engine/posix_engine/internal_errqueue.cc
  src/core/lib/event_engine/posix_engine/lockfree_event.cc
  src/core/lib/event_engine/posix_engine/posix_endpoint.cc
  src/core/lib/event_engine/posix_engine/posix_engine.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener.cc
  src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc
  src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/posix_engine/timer.cc
  src/core/lib/event_engine/posix_engine/timer_heap.cc
  src/core/lib/event_engine/posix_engine/timer_manager.cc
  src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc
  src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc
  src/core/lib/event_engine/resolved_address.cc
  src/core/lib/event_engine/shim.cc
  src/core/lib/event_engine/slice.cc
  src/core/lib/event_engine/slice_buffer.cc
  src/core/lib/event_engine/tcp_socket_utils.cc
  src/core/lib/event_engine/thread_pool/thread_count.cc
  src/core/lib/event_engine/thread_pool/thread_pool_factory.cc
  src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc
  src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc
  src/core/lib/event_engine/time_util.cc
  src/core/lib/event_engine/trace.cc
  src/core/lib/event_engine/utils.cc
  src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
  src/core/lib/event_engine/windows/iocp.cc
  src/core/lib/event_engine/windows/win_socket.cc
  src/core/lib/event_engine/windows/windows_endpoint.cc
  src/core/lib/event_engine/windows/windows_engine.cc
  src/core/lib/event_engine/windows/windows_listener.cc
  src/core/lib/event_engine/work_queue/basic_work_queue.cc
  src/core/lib/experiments/config.cc
  src/core/lib/experiments/experiments.cc
  src/core/lib/gprpp/load_file.cc
  src/core/lib/gprpp/per_cpu.cc
  src/core/lib/gprpp/ref_counted_string.cc
  src/core/lib/gprpp/status_helper.cc
  src/core/lib/gprpp/time.cc
  src/core/lib/gprpp/time_averaged_stats.cc
  src/core/lib/gprpp/validation_errors.cc
  src/core/lib/gprpp/work_serializer.cc
  src/core/lib/handshaker/proxy_mapper_registry.cc
  src/core/lib/iomgr/buffer_list.cc
  src/core/lib/iomgr/call_combiner.cc
  src/core/lib/iomgr/cfstream_handle.cc
  src/core/lib/iomgr/closure.cc
  src/core/lib/iomgr/combiner.cc
  src/core/lib/iomgr/dualstack_socket_posix.cc
  src/core/lib/iomgr/endpoint.cc
  src/core/lib/iomgr/endpoint_cfstream.cc
  src/core/lib/iomgr/endpoint_pair_posix.cc
  src/core/lib/iomgr/endpoint_pair_windows.cc
  src/core/lib/iomgr/error.cc
  src/core/lib/iomgr/error_cfstream.cc
  src/core/lib/iomgr/ev_apple.cc
  src/core/lib/iomgr/ev_epoll1_linux.cc
  src/core/lib/iomgr/ev_poll_posix.cc
  src/core/lib/iomgr/ev_posix.cc
  src/core/lib/iomgr/ev_windows.cc
  src/core/lib/iomgr/event_engine_shims/closure.cc
  src/core/lib/iomgr/event_engine_shims/endpoint.cc
  src/core/lib/iomgr/event_engine_shims/tcp_client.cc
  src/core/lib/iomgr/exec_ctx.cc
  src/core/lib/iomgr/executor.cc
  src/core/lib/iomgr/fork_posix.cc
  src/core/lib/iomgr/fork_windows.cc
  src/core/lib/iomgr/gethostname_fallback.cc
  src/core/lib/iomgr/gethostname_host_name_max.cc
  src/core/lib/iomgr/gethostname_sysconf.cc
  src/core/lib/iomgr/grpc_if_nametoindex_posix.cc
  src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc
  src/core/lib/iomgr/internal_errqueue.cc
  src/core/lib/iomgr/iocp_windows.cc
  src/core/lib/iomgr/iomgr.cc
  src/core/lib/iomgr/iomgr_internal.cc
  src/core/lib/iomgr/iomgr_posix.cc
  src/core/lib/iomgr/iomgr_posix_cfstream.cc
  src/core/lib/iomgr/iomgr_windows.cc
  src/core/lib/iomgr/load_file.cc
  src/core/lib/iomgr/lockfree_event.cc
  src/core/lib/iomgr/polling_entity.cc
  src/core/lib/iomgr/pollset.cc
  src/core/lib/iomgr/pollset_set.cc
  src/core/lib/iomgr/pollset_set_windows.cc
  src/core/lib/iomgr/pollset_windows.cc
  src/core/lib/iomgr/resolve_address.cc
  src/core/lib/iomgr/resolve_address_posix.cc
  src/core/lib/iomgr/resolve_address_windows.cc
  src/core/lib/iomgr/sockaddr_utils_posix.cc
  src/core/lib/iomgr/socket_factory_posix.cc
  src/core/lib/iomgr/socket_mutator.cc
  src/core/lib/iomgr/socket_utils_common_posix.cc
  src/core/lib/iomgr/socket_utils_linux.cc
  src/core/lib/iomgr/socket_utils_posix.cc
  src/core/lib/iomgr/socket_utils_windows.cc
  src/core/lib/iomgr/socket_windows.cc
  src/core/lib/iomgr/systemd_utils.cc
  src/core/lib/iomgr/tcp_client.cc
  src/core/lib/iomgr/tcp_client_cfstream.cc
  src/core/lib/iomgr/tcp_client_posix.cc
  src/core/lib/iomgr/tcp_client_windows.cc
  src/core/lib/iomgr/tcp_posix.cc
  src/core/lib/iomgr/tcp_server.cc
  src/core/lib/iomgr/tcp_server_posix.cc
  src/core/lib/iomgr/tcp_server_utils_posix_common.cc
  src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
  src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc
  src/core/lib/iomgr/tcp_server_windows.cc
  src/core/lib/iomgr/tcp_windows.cc
  src/core/lib/iomgr/timer.cc
  src/core/lib/iomgr/timer_generic.cc
  src/core/lib/iomgr/timer_heap.cc
  src/core/lib/iomgr/timer_manager.cc
  src/core/lib/iomgr/unix_sockets_posix.cc
  src/core/lib/iomgr/unix_sockets_posix_noop.cc
  src/core/lib/iomgr/vsock.cc
  src/core/lib/iomgr/wakeup_fd_eventfd.cc
  src/core/lib/iomgr/wakeup_fd_nospecial.cc
  src/core/lib/iomgr/wakeup_fd_pipe.cc
  src/core/lib/iomgr/wakeup_fd_posix.cc
  src/core/lib/json/json_writer.cc
  src/core/lib/load_balancing/lb_policy.cc
  src/core/lib/load_balancing/lb_policy_registry.cc
  src/core/lib/promise/activity.cc
  src/core/lib/promise/party.cc
  src/core/lib/promise/trace.cc
  src/core/lib/resolver/endpoint_addresses.cc
  src/core/lib/resolver/resolver.cc
  src/core/lib/resolver/resolver_registry.cc
  src/core/lib/resource_quota/api.cc
  src/core/lib/resource_quota/arena.cc
  src/core/lib/resource_quota/memory_quota.cc
  src/core/lib/resource_quota/periodic_update.cc
  src/core/lib/resource_quota/resource_quota.cc
  src/core/lib/resource_quota/thread_quota.cc
  src/core/lib/resource_quota/trace.cc
  src/core/lib/security/certificate_provider/certificate_provider_registry.cc
  src/core/lib/security/credentials/alts/check_gcp_environment.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc
  src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
  src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
  src/core/lib/service_config/service_config_parser.cc
  src/core/lib/slice/b64.cc
  src/core/lib/slice/percent_encoding.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_buffer.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  src/core/lib/surface/api_trace.cc
  src/core/lib/surface/builtins.cc
  src/core/lib/surface/byte_buffer.cc
  src/core/lib/surface/byte_buffer_reader.cc
  src/core/lib/surface/call.cc
  src/core/lib/surface/call_details.cc
  src/core/lib/surface/call_log_batch.cc
  src/core/lib/surface/call_trace.cc
  src/core/lib/surface/channel.cc
  src/core/lib/surface/channel_init.cc
  src/core/lib/surface/channel_ping.cc
  src/core/lib/surface/channel_stack_type.cc
  src/core/lib/surface/completion_queue.cc
  src/core/lib/surface/completion_queue_factory.cc
  src/core/lib/surface/event_string.cc
  src/core/lib/surface/init_internally.cc
  src/core/lib/surface/lame_client.cc
  src/core/lib/surface/metadata_array.cc
  src/core/lib/surface/server.cc
  src/core/lib/surface/validate_metadata.cc
  src/core/lib/surface/version.cc
  src/core/lib/transport/batch_builder.cc
  src/core/lib/transport/connectivity_state.cc
  src/core/lib/transport/error_utils.cc
  src/core/lib/transport/handshaker_registry.cc
  src/core/lib/transport/metadata_batch.cc
  src/core/lib/transport/parsed_metadata.cc
  src/core/lib/transport/status_conversion.cc
  src/core/lib/transport/timeout_encoding.cc
  src/core/lib/transport/transport.cc
  src/core/lib/transport/transport_op_string.cc
  src/core/lib/uri/uri_parser.cc
  src/core/tsi/alts/handshaker/transport_security_common_api.cc
  test/core/transport/chaotic_good/frame_test.cc
  third_party/upb/upb/hash/common.c
  third_party/upb/upb/message/accessors.c
  third_party/upb/upb/message/array.c
  third_party/upb/upb/message/map.c
  third_party/upb/upb/message/map_sorter.c
  third_party/upb/upb/message/message.c
  third_party/upb/upb/mini_descriptor/build_enum.c
  third_party/upb/upb/mini_descriptor/decode.c
  third_party/upb/upb/mini_descriptor/internal/base92.c
  third_party/upb/upb/mini_descriptor/internal/encode.c
  third_party/upb/upb/mini_descriptor/link.c
  third_party/upb/upb/mini_table/extension_registry.c
  third_party/upb/upb/mini_table/internal/message.c
  third_party/upb/upb/mini_table/message.c
  third_party/upb/upb/wire/decode.c
  third_party/upb/upb/wire/decode_fast.c
  third_party/upb/upb/wire/encode.c
  third_party/upb/upb/wire/eps_copy_input_stream.c
  third_party/upb/upb/wire/reader.c
)
target_compile_features(test_core_transport_chaotic_good_frame_test PUBLIC cxx_std_14)
target_include_directories(test_core_transport_chaotic_good_frame_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(test_core_transport_chaotic_good_frame_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  upb
  utf8_range_lib
  ${_gRPC_ZLIB_LIBRARIES}
  absl::cleanup
  absl::flat_hash_map
  absl::inlined_vector
  absl::function_ref
  absl::hash
  absl::type_traits
  absl::random_bit_gen_ref
  absl::random_distributions
  absl::statusor
  absl::span
  absl::utility
  ${_gRPC_CARES_LIBRARIES}
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_core_transport_chttp2_frame_test
  src/core/ext/transport/chttp2/transport/frame.cc
  src/core/lib/debug/trace.cc
  src/core/lib/slice/slice.cc
  src/core/lib/slice/slice_buffer.cc
  src/core/lib/slice/slice_refcount.cc
  src/core/lib/slice/slice_string_helpers.cc
  test/core/transport/chttp2/frame_test.cc
)
target_compile_features(test_core_transport_chttp2_frame_test PUBLIC cxx_std_14)
target_include_directories(test_core_transport_chttp2_frame_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(test_core_transport_chttp2_frame_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::statusor
  absl::span
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_cpp_client_credentials_test
  test/cpp/client/credentials_test.cc
  test/cpp/util/tls_test_utils.cc
)
target_compile_features(test_cpp_client_credentials_test PUBLIC cxx_std_14)
target_include_directories(test_cpp_client_credentials_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(test_cpp_client_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_cpp_end2end_ssl_credentials_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/ssl_credentials_test.cc
  test/cpp/end2end/test_service_impl.cc
)
target_compile_features(test_cpp_end2end_ssl_credentials_test PUBLIC cxx_std_14)
target_include_directories(test_cpp_end2end_ssl_credentials_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(test_cpp_end2end_ssl_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_cpp_server_credentials_test
  test/cpp/server/credentials_test.cc
  test/cpp/util/tls_test_utils.cc
)
target_compile_features(test_cpp_server_credentials_test PUBLIC cxx_std_14)
target_include_directories(test_cpp_server_credentials_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(test_cpp_server_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_cpp_util_slice_test
  test/cpp/util/slice_test.cc
)
target_compile_features(test_cpp_util_slice_test PUBLIC cxx_std_14)
target_include_directories(test_cpp_util_slice_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(test_cpp_util_slice_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(test_cpp_util_time_test
  test/cpp/util/time_test.cc
)
target_compile_features(test_cpp_util_time_test PUBLIC cxx_std_14)
target_include_directories(test_cpp_util_time_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(test_cpp_util_time_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(thd_test
  test/core/gprpp/thd_test.cc
)
target_compile_features(thd_test PUBLIC cxx_std_14)
target_include_directories(thd_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(thd_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(thread_manager_test
  test/cpp/thread_manager/thread_manager_test.cc
)
target_compile_features(thread_manager_test PUBLIC cxx_std_14)
target_include_directories(thread_manager_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(thread_manager_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(thread_pool_test
  test/core/event_engine/thread_pool_test.cc
)
target_compile_features(thread_pool_test PUBLIC cxx_std_14)
target_include_directories(thread_pool_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(thread_pool_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(thread_quota_test
  src/core/lib/resource_quota/thread_quota.cc
  test/core/resource_quota/thread_quota_test.cc
)
target_compile_features(thread_quota_test PUBLIC cxx_std_14)
target_include_directories(thread_quota_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(thread_quota_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  gpr
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(thread_stress_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/cpp/end2end/thread_stress_test.cc
  )
  target_compile_features(thread_stress_test PUBLIC cxx_std_14)
  target_include_directories(thread_stress_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(thread_stress_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(thready_posix_event_engine_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/event_engine/test_suite/event_engine_test_framework.cc
    test/core/event_engine/test_suite/posix/oracle_event_engine_posix.cc
    test/core/event_engine/test_suite/tests/client_test.cc
    test/core/event_engine/test_suite/tests/server_test.cc
    test/core/event_engine/test_suite/tests/timer_test.cc
    test/core/event_engine/test_suite/thready_posix_event_engine_test.cc
  )
  target_compile_features(thready_posix_event_engine_test PUBLIC cxx_std_14)
  target_include_directories(thready_posix_event_engine_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(thready_posix_event_engine_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(time_jump_test
    test/cpp/common/time_jump_test.cc
  )
  target_compile_features(time_jump_test PUBLIC cxx_std_14)
  target_include_directories(time_jump_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(time_jump_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(time_util_test
  test/core/gprpp/time_util_test.cc
)
target_compile_features(time_util_test PUBLIC cxx_std_14)
target_include_directories(time_util_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(time_util_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(timeout_before_request_call_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/timeout_before_request_call.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(timeout_before_request_call_test PUBLIC cxx_std_14)
target_include_directories(timeout_before_request_call_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(timeout_before_request_call_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(timeout_encoding_test
  test/core/transport/timeout_encoding_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(timeout_encoding_test PUBLIC cxx_std_14)
target_include_directories(timeout_encoding_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(timeout_encoding_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(timer_manager_test
  test/core/event_engine/posix/timer_manager_test.cc
)
target_compile_features(timer_manager_test PUBLIC cxx_std_14)
target_include_directories(timer_manager_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(timer_manager_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(timer_test
  test/cpp/common/timer_test.cc
)
target_compile_features(timer_test PUBLIC cxx_std_14)
target_include_directories(timer_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(timer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(tls_certificate_verifier_test
  test/cpp/security/tls_certificate_verifier_test.cc
  test/cpp/util/tls_test_utils.cc
)
target_compile_features(tls_certificate_verifier_test PUBLIC cxx_std_14)
target_include_directories(tls_certificate_verifier_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(tls_certificate_verifier_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(tls_credentials_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/test_service_impl.cc
  test/cpp/end2end/tls_credentials_test.cc
)
target_compile_features(tls_credentials_test PUBLIC cxx_std_14)
target_include_directories(tls_credentials_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(tls_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(tls_key_export_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/tls_key_export_test.cc
)
target_compile_features(tls_key_export_test PUBLIC cxx_std_14)
target_include_directories(tls_key_export_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(tls_key_export_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(tls_security_connector_test
  test/core/security/tls_security_connector_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(tls_security_connector_test PUBLIC cxx_std_14)
target_include_directories(tls_security_connector_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(tls_security_connector_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(too_many_pings_test
  test/core/end2end/cq_verifier.cc
  test/core/transport/chttp2/too_many_pings_test.cc
)
target_compile_features(too_many_pings_test PUBLIC cxx_std_14)
target_include_directories(too_many_pings_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(too_many_pings_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_config
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(traced_buffer_list_test
    test/core/event_engine/posix/traced_buffer_list_test.cc
  )
  target_compile_features(traced_buffer_list_test PUBLIC cxx_std_14)
  target_include_directories(traced_buffer_list_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(traced_buffer_list_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(trailing_metadata_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/trailing_metadata.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(trailing_metadata_test PUBLIC cxx_std_14)
target_include_directories(trailing_metadata_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(trailing_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(transport_security_common_api_test
  test/core/tsi/alts/handshaker/transport_security_common_api_test.cc
)
target_compile_features(transport_security_common_api_test PUBLIC cxx_std_14)
target_include_directories(transport_security_common_api_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(transport_security_common_api_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(transport_security_test
  test/core/tsi/transport_security_test.cc
)
target_compile_features(transport_security_test PUBLIC cxx_std_14)
target_include_directories(transport_security_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(transport_security_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(transport_stream_receiver_test
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  test/core/transport/binder/transport_stream_receiver_test.cc
)
target_compile_features(transport_stream_receiver_test PUBLIC cxx_std_14)
target_include_directories(transport_stream_receiver_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(transport_stream_receiver_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(try_join_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/trace.cc
  test/core/promise/try_join_test.cc
)
target_compile_features(try_join_test PUBLIC cxx_std_14)
target_include_directories(try_join_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(try_join_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::statusor
  absl::utility
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(try_seq_metadata_test
  test/core/promise/try_seq_metadata_test.cc
)
target_compile_features(try_seq_metadata_test PUBLIC cxx_std_14)
target_include_directories(try_seq_metadata_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(try_seq_metadata_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(try_seq_test
  src/core/lib/debug/trace.cc
  src/core/lib/promise/trace.cc
  test/core/promise/try_seq_test.cc
)
target_compile_features(try_seq_test PUBLIC cxx_std_14)
target_include_directories(try_seq_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(try_seq_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(unique_type_name_test
  test/core/gprpp/unique_type_name_test.cc
)
target_compile_features(unique_type_name_test PUBLIC cxx_std_14)
target_include_directories(unique_type_name_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(unique_type_name_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::str_format
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(unknown_frame_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/unknown_frame.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(unknown_frame_bad_client_test PUBLIC cxx_std_14)
target_include_directories(unknown_frame_bad_client_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(unknown_frame_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(uri_parser_test
  test/core/uri/uri_parser_test.cc
)
target_compile_features(uri_parser_test PUBLIC cxx_std_14)
target_include_directories(uri_parser_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(uri_parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util_unsecure
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(useful_test
  test/core/gpr/useful_test.cc
)
target_compile_features(useful_test PUBLIC cxx_std_14)
target_include_directories(useful_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(useful_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(uuid_v4_test
  src/core/lib/gprpp/uuid_v4.cc
  test/core/gprpp/uuid_v4_test.cc
)
target_compile_features(uuid_v4_test PUBLIC cxx_std_14)
target_include_directories(uuid_v4_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(uuid_v4_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(validation_errors_test
  test/core/gprpp/validation_errors_test.cc
)
target_compile_features(validation_errors_test PUBLIC cxx_std_14)
target_include_directories(validation_errors_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(validation_errors_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(varint_test
  test/core/transport/chttp2/varint_test.cc
)
target_compile_features(varint_test PUBLIC cxx_std_14)
target_include_directories(varint_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(varint_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(wait_for_callback_test
  src/core/lib/promise/activity.cc
  test/core/promise/wait_for_callback_test.cc
)
target_compile_features(wait_for_callback_test PUBLIC cxx_std_14)
target_include_directories(wait_for_callback_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(wait_for_callback_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::hash
  absl::type_traits
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(wakeup_fd_posix_test
    test/core/event_engine/posix/wakeup_fd_posix_test.cc
  )
  target_compile_features(wakeup_fd_posix_test PUBLIC cxx_std_14)
  target_include_directories(wakeup_fd_posix_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(wakeup_fd_posix_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(weighted_round_robin_config_test
  test/core/client_channel/lb_policy/weighted_round_robin_config_test.cc
)
target_compile_features(weighted_round_robin_config_test PUBLIC cxx_std_14)
target_include_directories(weighted_round_robin_config_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(weighted_round_robin_config_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(weighted_round_robin_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/client_channel/lb_policy/weighted_round_robin_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
)
target_compile_features(weighted_round_robin_test PUBLIC cxx_std_14)
target_include_directories(weighted_round_robin_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(weighted_round_robin_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)

  add_executable(win_socket_test
    test/core/event_engine/windows/create_sockpair.cc
    test/core/event_engine/windows/win_socket_test.cc
  )
  target_compile_features(win_socket_test PUBLIC cxx_std_14)
  target_include_directories(win_socket_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(win_socket_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(window_overflow_bad_client_test
  test/core/bad_client/bad_client.cc
  test/core/bad_client/tests/window_overflow.cc
  test/core/end2end/cq_verifier.cc
)
target_compile_features(window_overflow_bad_client_test PUBLIC cxx_std_14)
target_include_directories(window_overflow_bad_client_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(window_overflow_bad_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX OR _gRPC_PLATFORM_WINDOWS)

  add_executable(windows_endpoint_test
    test/core/event_engine/windows/create_sockpair.cc
    test/core/event_engine/windows/windows_endpoint_test.cc
  )
  target_compile_features(windows_endpoint_test PUBLIC cxx_std_14)
  target_include_directories(windows_endpoint_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(windows_endpoint_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(wire_reader_test
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  test/core/transport/binder/mock_objects.cc
  test/core/transport/binder/wire_reader_test.cc
)
target_compile_features(wire_reader_test PUBLIC cxx_std_14)
target_include_directories(wire_reader_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(wire_reader_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(wire_writer_test
  src/core/ext/transport/binder/client/binder_connector.cc
  src/core/ext/transport/binder/client/channel_create.cc
  src/core/ext/transport/binder/client/channel_create_impl.cc
  src/core/ext/transport/binder/client/connection_id_generator.cc
  src/core/ext/transport/binder/client/endpoint_binder_pool.cc
  src/core/ext/transport/binder/client/jni_utils.cc
  src/core/ext/transport/binder/client/security_policy_setting.cc
  src/core/ext/transport/binder/security_policy/binder_security_policy.cc
  src/core/ext/transport/binder/server/binder_server.cc
  src/core/ext/transport/binder/server/binder_server_credentials.cc
  src/core/ext/transport/binder/transport/binder_transport.cc
  src/core/ext/transport/binder/utils/ndk_binder.cc
  src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc
  src/core/ext/transport/binder/wire_format/binder_android.cc
  src/core/ext/transport/binder/wire_format/binder_constants.cc
  src/core/ext/transport/binder/wire_format/transaction.cc
  src/core/ext/transport/binder/wire_format/wire_reader_impl.cc
  src/core/ext/transport/binder/wire_format/wire_writer.cc
  src/cpp/client/channel_cc.cc
  src/cpp/client/client_callback.cc
  src/cpp/client/client_context.cc
  src/cpp/client/client_interceptor.cc
  src/cpp/client/client_stats_interceptor.cc
  src/cpp/client/create_channel.cc
  src/cpp/client/create_channel_internal.cc
  src/cpp/client/create_channel_posix.cc
  src/cpp/client/insecure_credentials.cc
  src/cpp/client/secure_credentials.cc
  src/cpp/common/alarm.cc
  src/cpp/common/auth_property_iterator.cc
  src/cpp/common/channel_arguments.cc
  src/cpp/common/completion_queue_cc.cc
  src/cpp/common/resource_quota_cc.cc
  src/cpp/common/rpc_method.cc
  src/cpp/common/secure_auth_context.cc
  src/cpp/common/secure_channel_arguments.cc
  src/cpp/common/secure_create_auth_context.cc
  src/cpp/common/tls_certificate_provider.cc
  src/cpp/common/tls_certificate_verifier.cc
  src/cpp/common/tls_credentials_options.cc
  src/cpp/common/validate_service_config.cc
  src/cpp/common/version_cc.cc
  src/cpp/server/async_generic_service.cc
  src/cpp/server/backend_metric_recorder.cc
  src/cpp/server/channel_argument_option.cc
  src/cpp/server/create_default_thread_pool.cc
  src/cpp/server/external_connection_acceptor_impl.cc
  src/cpp/server/health/default_health_check_service.cc
  src/cpp/server/health/health_check_service.cc
  src/cpp/server/health/health_check_service_server_builder_option.cc
  src/cpp/server/insecure_server_credentials.cc
  src/cpp/server/secure_server_credentials.cc
  src/cpp/server/server_builder.cc
  src/cpp/server/server_callback.cc
  src/cpp/server/server_cc.cc
  src/cpp/server/server_context.cc
  src/cpp/server/server_posix.cc
  src/cpp/thread_manager/thread_manager.cc
  src/cpp/util/byte_buffer_cc.cc
  src/cpp/util/status.cc
  src/cpp/util/string_ref.cc
  src/cpp/util/time_cc.cc
  test/core/transport/binder/mock_objects.cc
  test/core/transport/binder/wire_writer_test.cc
)
target_compile_features(wire_writer_test PUBLIC cxx_std_14)
target_include_directories(wire_writer_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(wire_writer_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(work_serializer_test
    test/core/event_engine/event_engine_test_utils.cc
    test/core/gprpp/work_serializer_test.cc
  )
  target_compile_features(work_serializer_test PUBLIC cxx_std_14)
  target_include_directories(work_serializer_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(work_serializer_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(write_buffering_at_end_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/write_buffering_at_end.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(write_buffering_at_end_test PUBLIC cxx_std_14)
target_include_directories(write_buffering_at_end_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(write_buffering_at_end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(write_buffering_test
  test/core/end2end/cq_verifier.cc
  test/core/end2end/end2end_test_main.cc
  test/core/end2end/end2end_test_suites.cc
  test/core/end2end/end2end_tests.cc
  test/core/end2end/fixtures/http_proxy_fixture.cc
  test/core/end2end/fixtures/local_util.cc
  test/core/end2end/fixtures/proxy.cc
  test/core/end2end/tests/write_buffering.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/util/test_lb_policies.cc
)
target_compile_features(write_buffering_test PUBLIC cxx_std_14)
target_include_directories(write_buffering_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(write_buffering_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_authorization_provider
  grpc_unsecure
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(write_size_policy_test
  src/core/ext/transport/chttp2/transport/write_size_policy.cc
  src/core/lib/gprpp/time.cc
  test/core/transport/chttp2/write_size_policy_test.cc
)
target_compile_features(write_size_policy_test PUBLIC cxx_std_14)
target_include_directories(write_size_policy_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(write_size_policy_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  absl::statusor
  gpr
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(writes_per_rpc_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    test/core/util/cmdline.cc
    test/core/util/fuzzer_util.cc
    test/core/util/grpc_profiler.cc
    test/core/util/histogram.cc
    test/core/util/mock_endpoint.cc
    test/core/util/parse_hexstring.cc
    test/core/util/passthru_endpoint.cc
    test/core/util/resolve_localhost_ip46.cc
    test/core/util/slice_splitter.cc
    test/core/util/tracer_util.cc
    test/cpp/performance/writes_per_rpc_test.cc
  )
  target_compile_features(writes_per_rpc_test PUBLIC cxx_std_14)
  target_include_directories(writes_per_rpc_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(writes_per_rpc_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++
    grpc_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_audit_logger_registry_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/audit_logger_stream.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/audit_logger_stream.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/audit_logger_stream.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/audit_logger_stream.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  test/core/xds/xds_audit_logger_registry_test.cc
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(xds_audit_logger_registry_test PUBLIC cxx_std_14)
target_include_directories(xds_audit_logger_registry_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(xds_audit_logger_registry_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_bootstrap_test
  test/core/xds/xds_bootstrap_test.cc
)
target_compile_features(xds_bootstrap_test PUBLIC cxx_std_14)
target_include_directories(xds_bootstrap_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(xds_bootstrap_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_certificate_provider_test
  test/core/xds/xds_certificate_provider_test.cc
)
target_compile_features(xds_certificate_provider_test PUBLIC cxx_std_14)
target_include_directories(xds_certificate_provider_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(xds_certificate_provider_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_client_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  src/cpp/util/status.cc
  test/core/xds/xds_client_test.cc
  test/core/xds/xds_transport_fake.cc
)
target_compile_features(xds_client_test PUBLIC cxx_std_14)
target_include_directories(xds_client_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(xds_client_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_cluster_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/connection_attempt_injector.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_cluster_end2end_test.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_cluster_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_cluster_end2end_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(xds_cluster_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_cluster_resource_type_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.h
  src/cpp/util/status.cc
  test/core/xds/xds_cluster_resource_type_test.cc
)
target_compile_features(xds_cluster_resource_type_test PUBLIC cxx_std_14)
target_include_directories(xds_cluster_resource_type_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(xds_cluster_resource_type_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_cluster_type_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/connection_attempt_injector.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_cluster_type_end2end_test.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_cluster_type_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_cluster_type_end2end_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(xds_cluster_type_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_common_types_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.grpc.pb.h
  test/core/xds/xds_common_types_test.cc
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(xds_common_types_test PUBLIC cxx_std_14)
target_include_directories(xds_common_types_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(xds_common_types_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_core_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_core_end2end_test.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_core_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_core_end2end_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(xds_core_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_credentials_end2end_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
  ${_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
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
  test/cpp/end2end/test_service_impl.cc
  test/cpp/end2end/xds/xds_credentials_end2end_test.cc
)
target_compile_features(xds_credentials_end2end_test PUBLIC cxx_std_14)
target_include_directories(xds_credentials_end2end_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(xds_credentials_end2end_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_credentials_test
  test/core/security/xds_credentials_test.cc
  test/core/util/cmdline.cc
  test/core/util/fuzzer_util.cc
  test/core/util/grpc_profiler.cc
  test/core/util/histogram.cc
  test/core/util/mock_endpoint.cc
  test/core/util/parse_hexstring.cc
  test/core/util/passthru_endpoint.cc
  test/core/util/resolve_localhost_ip46.cc
  test/core/util/slice_splitter.cc
  test/core/util/tracer_util.cc
)
target_compile_features(xds_credentials_test PUBLIC cxx_std_14)
target_include_directories(xds_credentials_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(xds_credentials_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_csds_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    src/cpp/server/csds/csds.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_csds_end2end_test.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_csds_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_csds_end2end_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(xds_csds_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
    test/core/util/audit_logging_utils.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_end2end_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(xds_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_config
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_endpoint_resource_type_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  src/cpp/util/status.cc
  test/core/xds/xds_endpoint_resource_type_test.cc
)
target_compile_features(xds_endpoint_resource_type_test PUBLIC cxx_std_14)
target_include_directories(xds_endpoint_resource_type_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(xds_endpoint_resource_type_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_fault_injection_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_fault_injection_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_fault_injection_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_fault_injection_end2end_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(xds_fault_injection_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_http_filters_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  test/core/xds/xds_http_filters_test.cc
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(xds_http_filters_test PUBLIC cxx_std_14)
target_include_directories(xds_http_filters_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(xds_http_filters_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_lb_policy_registry_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ring_hash.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ring_hash.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ring_hash.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ring_hash.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/round_robin.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/udpa_typed_struct.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.h
  test/core/xds/xds_lb_policy_registry_test.cc
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(xds_lb_policy_registry_test PUBLIC cxx_std_14)
target_include_directories(xds_lb_policy_registry_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(xds_lb_policy_registry_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_listener_resource_type_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  test/core/xds/xds_listener_resource_type_test.cc
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(xds_listener_resource_type_test PUBLIC cxx_std_14)
target_include_directories(xds_listener_resource_type_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(xds_listener_resource_type_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_outlier_detection_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_outlier_detection_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_outlier_detection_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_outlier_detection_end2end_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(xds_outlier_detection_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_override_host_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cookie.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/stateful_session_cookie.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_override_host_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_override_host_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_override_host_end2end_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(xds_override_host_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_override_host_lb_config_parser_test
  test/core/client_channel/lb_policy/xds_override_host_lb_config_parser_test.cc
)
target_compile_features(xds_override_host_lb_config_parser_test PUBLIC cxx_std_14)
target_include_directories(xds_override_host_lb_config_parser_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(xds_override_host_lb_config_parser_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_override_host_test
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h
  ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h
  test/core/client_channel/lb_policy/xds_override_host_test.cc
  test/core/event_engine/event_engine_test_utils.cc
  test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc
)
target_compile_features(xds_override_host_test PUBLIC cxx_std_14)
target_include_directories(xds_override_host_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(xds_override_host_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  ${_gRPC_PROTOBUF_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_pick_first_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/pick_first.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/connection_attempt_injector.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_pick_first_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_pick_first_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_pick_first_end2end_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(xds_pick_first_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_ring_hash_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/connection_attempt_injector.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_ring_hash_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_ring_hash_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_ring_hash_end2end_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(xds_ring_hash_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_rls_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/rls_server.cc
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_rls_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_rls_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_rls_end2end_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(xds_rls_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_route_config_resource_type_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls_config.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/typed_struct.grpc.pb.h
  test/core/xds/xds_route_config_resource_type_test.cc
  test/cpp/util/cli_call.cc
  test/cpp/util/cli_credentials.cc
  test/cpp/util/proto_file_parser.cc
  test/cpp/util/proto_reflection_descriptor_database.cc
  test/cpp/util/service_describer.cc
)
target_compile_features(xds_route_config_resource_type_test PUBLIC cxx_std_14)
target_include_directories(xds_route_config_resource_type_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(xds_route_config_resource_type_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++
  ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
  grpc_test_util
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_routing_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/fault_common.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_routing_end2end_test.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_routing_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_routing_end2end_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(xds_routing_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()
if(gRPC_BUILD_TESTS)

add_executable(xds_stats_watcher_test
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/empty.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/messages.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
  ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
  src/cpp/server/admin/admin_services.cc
  src/cpp/server/csds/csds.cc
  test/cpp/interop/rpc_behavior_lb_policy.cc
  test/cpp/interop/xds_stats_watcher.cc
  test/cpp/interop/xds_stats_watcher_test.cc
)
target_compile_features(xds_stats_watcher_test PUBLIC cxx_std_14)
target_include_directories(xds_stats_watcher_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(xds_stats_watcher_test
  ${_gRPC_ALLTARGETS_LIBRARIES}
  gtest
  grpc++_reflection
  grpcpp_channelz
  grpc_test_util
  grpc++_test_config
)


endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

  add_executable(xds_wrr_end2end_test
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc
    ${_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
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/address.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/ads.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/base.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/client_side_weighted_round_robin.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/expr.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/extension.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_connection_manager.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_filter_rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/listener.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/lrs.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/metadata.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/path.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/range.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/rbac.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/route.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/router.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/string.grpc.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.cc
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.h
    ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.h
    test/cpp/end2end/test_service_impl.cc
    test/cpp/end2end/xds/xds_end2end_test_lib.cc
    test/cpp/end2end/xds/xds_server.cc
    test/cpp/end2end/xds/xds_utils.cc
    test/cpp/end2end/xds/xds_wrr_end2end_test.cc
    test/cpp/util/tls_test_utils.cc
  )
  target_compile_features(xds_wrr_end2end_test PUBLIC cxx_std_14)
  target_include_directories(xds_wrr_end2end_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(xds_wrr_end2end_test
    ${_gRPC_ALLTARGETS_LIBRARIES}
    gtest
    grpc++_test_util
  )


endif()
endif()







if(gRPC_INSTALL)
  install(EXPORT gRPCTargets
    DESTINATION ${gRPC_INSTALL_CMAKEDIR}
    NAMESPACE gRPC::
  )
  if(gRPC_BUILD_CODEGEN)
    install(EXPORT gRPCPluginTargets
      DESTINATION ${gRPC_INSTALL_CMAKEDIR}
      NAMESPACE gRPC::
    )
  endif()
endif()

include(CMakePackageConfigHelpers)

configure_file(cmake/gRPCConfig.cmake.in
  gRPCConfig.cmake @ONLY)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/gRPCConfigVersion.cmake
  VERSION ${gRPC_CPP_VERSION}
  COMPATIBILITY AnyNewerVersion)
install(FILES
    ${CMAKE_CURRENT_BINARY_DIR}/gRPCConfig.cmake
    ${CMAKE_CURRENT_BINARY_DIR}/gRPCConfigVersion.cmake
  DESTINATION ${gRPC_INSTALL_CMAKEDIR}
)
install(FILES
    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/Findc-ares.cmake
    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/Findre2.cmake
    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/Findsystemd.cmake
  DESTINATION ${gRPC_INSTALL_CMAKEDIR}/modules
)

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/etc/roots.pem
  DESTINATION ${gRPC_INSTALL_SHAREDIR})

# Function to generate pkg-config files.
function(generate_pkgconfig name description version requires requires_private
                            libs libs_private output_filename)
  set(PC_NAME "${name}")
  set(PC_DESCRIPTION "${description}")
  set(PC_VERSION "${version}")
  set(PC_REQUIRES "${requires}")
  set(PC_REQUIRES_PRIVATE "${requires_private}")
  set(PC_LIB "${libs}")
  set(PC_LIBS_PRIVATE "${libs_private}")
  set(output_filepath "${grpc_BINARY_DIR}/libs/opt/pkgconfig/${output_filename}")
  configure_file(
    "${grpc_SOURCE_DIR}/cmake/pkg-config-template.pc.in"
    "${output_filepath}"
    @ONLY)
  install(FILES "${output_filepath}"
    DESTINATION "${gRPC_INSTALL_LIBDIR}/pkgconfig")
endfunction()

# gpr .pc file
generate_pkgconfig(
  "gpr"
  "gRPC platform support library"
  "${gRPC_CORE_VERSION}"
  "absl_any_invocable absl_base absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_memory absl_optional absl_random_random absl_status absl_str_format absl_strings absl_synchronization absl_time absl_variant"
  ""
  "-lgpr"
  ""
  "gpr.pc")

# grpc .pc file
generate_pkgconfig(
  "gRPC"
  "high performance general RPC framework"
  "${gRPC_CORE_VERSION}"
  "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_memory absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant gpr"
  "libcares openssl re2 zlib"
  "-lgrpc"
  "-laddress_sorting -lupb -lupb_textformat_lib -lupb_json_lib -lutf8_range_lib -lupb_collections_lib"
  "grpc.pc")

# grpc_unsecure .pc file
generate_pkgconfig(
  "gRPC unsecure"
  "high performance general RPC framework without SSL"
  "${gRPC_CORE_VERSION}"
  "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_memory absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant gpr"
  "libcares zlib"
  "-lgrpc_unsecure"
  "-laddress_sorting -lutf8_range_lib -lupb -lupb_collections_lib"
  "grpc_unsecure.pc")

# grpc++ .pc file
generate_pkgconfig(
  "gRPC++"
  "C++ wrapper for gRPC"
  "${gRPC_CPP_VERSION}"
  "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_memory absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant gpr grpc"
  "libcares openssl re2 zlib"
  "-lgrpc++"
  "-laddress_sorting -lupb -lupb_textformat_lib -lupb_json_lib -lutf8_range_lib -lupb_collections_lib"
  "grpc++.pc")

# grpc++_unsecure .pc file
generate_pkgconfig(
  "gRPC++ unsecure"
  "C++ wrapper for gRPC without SSL"
  "${gRPC_CPP_VERSION}"
  "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_cleanup absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_memory absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility absl_variant gpr grpc_unsecure"
  "libcares zlib"
  "-lgrpc++_unsecure"
  "-laddress_sorting -lutf8_range_lib -lupb -lupb_collections_lib"
  "grpc++_unsecure.pc")
