diff options
author | Craig Tiller <ctiller@google.com> | 2024-01-02 09:45:45 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-01-02 09:59:38 -0800 |
commit | 75e5ebcb14a7a16e1cb5994853e2a6215dbf97e8 (patch) | |
tree | 50145b942427cdbbef3d3d6d1af89a3f11e76a13 /CMakeLists.txt | |
parent | 1383c4629bcc9c74da5133286734ab28e88eabd3 (diff) | |
download | grpc-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.txt | 36 |
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 ) |