promise_test.cc
Go to the documentation of this file.
1 // Copyright 2021 gRPC authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
16 
17 #include "gtest/gtest.h"
18 
19 namespace grpc_core {
20 
21 TEST(PromiseTest, Works) {
22  Promise<int> x = []() { return 42; };
23  EXPECT_EQ(x(), Poll<int>(42));
24 }
25 
26 TEST(PromiseTest, Immediate) { EXPECT_EQ(Immediate(42)(), Poll<int>(42)); }
27 
28 TEST(PromiseTest, WithResult) {
29  EXPECT_EQ(WithResult<int>(Immediate(42))(), Poll<int>(42));
30  // Fails to compile: WithResult<int>(Immediate(std::string("hello")));
31  // Fails to compile: WithResult<int>(Immediate(42.9));
32 }
33 
34 TEST(PromiseTest, NowOrNever) {
36 }
37 
38 } // namespace grpc_core
39 
40 int main(int argc, char** argv) {
41  ::testing::InitGoogleTest(&argc, argv);
42  return RUN_ALL_TESTS();
43 }
grpc_core
Definition: call_metric_recorder.h:31
grpc_core::TEST
TEST(AvlTest, NoOp)
Definition: avl_test.cc:21
grpc_core::NowOrNever
auto NowOrNever(Promise promise) -> absl::optional< typename promise_detail::PromiseLike< Promise >::Result >
Definition: promise/promise.h:42
EXPECT_EQ
#define EXPECT_EQ(a, b)
Definition: iomgr/time_averaged_stats_test.cc:27
absl::optional
Definition: abseil-cpp/absl/types/internal/optional.h:61
main
int main(int argc, char **argv)
Definition: promise_test.cc:40
x
int x
Definition: bloaty/third_party/googletest/googlemock/test/gmock-matchers_test.cc:3610
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
promise.h
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
grpc_core::WithResult
auto WithResult(F f) -> typename std::enable_if< std::is_same< decltype(f()), Poll< T >>::value, F >::type
Definition: promise/promise.h:88
grpc_core::Promise
std::function< Poll< T >()> Promise
Definition: promise/promise.h:37
grpc_core::Immediate
promise_detail::Immediate< T > Immediate(T value)
Definition: promise/promise.h:73
absl::variant
Definition: abseil-cpp/absl/types/internal/variant.h:46


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:55