aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorCraig Tiller <ctiller@google.com>2024-01-02 09:45:45 -0800
committerCopybara-Service <copybara-worker@google.com>2024-01-02 09:59:38 -0800
commit75e5ebcb14a7a16e1cb5994853e2a6215dbf97e8 (patch)
tree50145b942427cdbbef3d3d6d1af89a3f11e76a13 /CMakeLists.txt
parent1383c4629bcc9c74da5133286734ab28e88eabd3 (diff)
downloadgrpc-grpc-75e5ebcb14a7a16e1cb5994853e2a6215dbf97e8.tar.gz
[promises] Add a switch primitive (#35424)
Remove the old `switch` library - this used to be an implementation detail of `Seq`, `TrySeq` - but has become unused. Add a new user facing primitive `Switch` that fills a similar role to `switch` in C++ - selecting a promise to execute based on a primitive discriminator - much like `If` allows selection based on a boolean discriminator now. A future change will optimize this to actually lower the `Switch` into an actual `switch` statement, but for right now I want to get the functionality in. Closes #35424 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35424 from ctiller:switchy 5308a914c689b79e5e83f218ae0cd7e88bc0034e PiperOrigin-RevId: 595140965
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt36
1 files changed, 36 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d15ae57b0f..939249812d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1372,6 +1372,7 @@ if(gRPC_BUILD_TESTS)
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 switch_test)
add_dependencies(buildtests_cxx sync_test)
add_dependencies(buildtests_cxx system_roots_test)
add_dependencies(buildtests_cxx table_test)
@@ -23774,6 +23775,41 @@ target_link_libraries(string_test
endif()
if(gRPC_BUILD_TESTS)
+add_executable(switch_test
+ test/core/promise/switch_test.cc
+)
+target_compile_features(switch_test PUBLIC cxx_std_14)
+target_include_directories(switch_test
+ PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
+ ${_gRPC_RE2_INCLUDE_DIR}
+ ${_gRPC_SSL_INCLUDE_DIR}
+ ${_gRPC_UPB_GENERATED_DIR}
+ ${_gRPC_UPB_GRPC_GENERATED_DIR}
+ ${_gRPC_UPB_INCLUDE_DIR}
+ ${_gRPC_XXHASH_INCLUDE_DIR}
+ ${_gRPC_ZLIB_INCLUDE_DIR}
+ third_party/googletest/googletest/include
+ third_party/googletest/googletest
+ third_party/googletest/googlemock/include
+ third_party/googletest/googlemock
+ ${_gRPC_PROTO_GENS_DIR}
+)
+
+target_link_libraries(switch_test
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gtest
+ absl::type_traits
+ absl::statusor
+ gpr
+)
+
+
+endif()
+if(gRPC_BUILD_TESTS)
+
add_executable(sync_test
test/core/gpr/sync_test.cc
)