loop_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 
21 
22 namespace grpc_core {
23 
24 TEST(LoopTest, CountToFive) {
25  int i = 0;
26  Loop([&i]() -> LoopCtl<int> {
27  i++;
28  if (i < 5) return Continue();
29  return i;
30  })();
31  EXPECT_EQ(i, 5);
32 }
33 
34 TEST(LoopTest, FactoryCountToFive) {
35  int i = 0;
36  Loop([&i]() {
37  return [&i]() -> LoopCtl<int> {
38  i++;
39  if (i < 5) return Continue();
40  return i;
41  };
42  })();
43  EXPECT_EQ(i, 5);
44 }
45 
46 TEST(LoopTest, LoopOfSeq) {
47  auto x =
48  Loop(Seq([]() { return 42; }, [](int i) -> LoopCtl<int> { return i; }))();
49  EXPECT_EQ(x, Poll<int>(42));
50 }
51 
52 } // namespace grpc_core
53 
54 int main(int argc, char** argv) {
55  ::testing::InitGoogleTest(&argc, argv);
56  return RUN_ALL_TESTS();
57 }
grpc_core::Continue
Definition: loop.h:35
grpc_core
Definition: call_metric_recorder.h:31
main
int main(int argc, char **argv)
Definition: loop_test.cc:54
grpc_core::TEST
TEST(AvlTest, NoOp)
Definition: avl_test.cc:21
seq.h
EXPECT_EQ
#define EXPECT_EQ(a, b)
Definition: iomgr/time_averaged_stats_test.cc:27
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
grpc_core::Loop
promise_detail::Loop< F > Loop(F f)
Definition: loop.h:130
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
loop.h
grpc_core::Seq
promise_detail::Seq< Functors... > Seq(Functors... functors)
Definition: seq.h:62
absl::variant
Definition: abseil-cpp/absl/types/internal/variant.h:46
basic_seq.h
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230


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