grpc
test
core
promise
if_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
15
#include "
src/core/lib/promise/if.h
"
16
17
#include <utility>
18
19
#include "gtest/gtest.h"
20
21
namespace
grpc_core
{
22
23
TEST
(IfTest, ChooseTrue) {
24
EXPECT_EQ
(
If
([]() {
return
true
; }, []() {
return
1; }, []() {
return
2; })(),
25
Poll<int>
(1));
26
}
27
28
TEST
(IfTest, ChooseFalse) {
29
EXPECT_EQ
(
30
If
([]() {
return
false
; }, []() {
return
1; }, []() {
return
2; })(),
31
Poll<int>
(2));
32
}
33
34
TEST
(IfTest, ChooseSuccesfulTrue) {
35
EXPECT_EQ
(
If
([]() {
return
absl::StatusOr<bool>
(
true
); },
36
[]() {
return
absl::StatusOr<int>
(1); },
37
[]() {
return
absl::StatusOr<int>
(2); })(),
38
Poll<absl::StatusOr<int>
>(
absl::StatusOr<int>
(1)));
39
}
40
41
TEST
(IfTest, ChooseSuccesfulFalse) {
42
EXPECT_EQ
(
If
([]() {
return
absl::StatusOr<bool>
(
false
); },
43
[]() {
return
absl::StatusOr<int>
(1); },
44
[]() {
return
absl::StatusOr<int>
(2); })(),
45
Poll<absl::StatusOr<int>
>(
absl::StatusOr<int>
(2)));
46
}
47
48
TEST
(IfTest, ChooseFailure) {
49
EXPECT_EQ
(
If
([]() {
return
absl::StatusOr<bool>
(); },
50
[]() {
return
absl::StatusOr<int>
(1); },
51
[]() {
return
absl::StatusOr<int>
(2); })(),
52
Poll<absl::StatusOr<int>
>(
absl::StatusOr<int>
()));
53
}
54
55
}
// namespace grpc_core
56
57
int
main
(
int
argc,
char
** argv) {
58
::testing::InitGoogleTest
(&argc, argv);
59
return
RUN_ALL_TESTS
();
60
}
grpc_core
Definition:
call_metric_recorder.h:31
grpc_core::TEST
TEST(AvlTest, NoOp)
Definition:
avl_test.cc:21
EXPECT_EQ
#define EXPECT_EQ(a, b)
Definition:
iomgr/time_averaged_stats_test.cc:27
if.h
main
int main(int argc, char **argv)
Definition:
if_test.cc:57
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition:
bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition:
bloaty/third_party/googletest/googletest/src/gtest.cc:6106
grpc_core::If
promise_detail::If< C, T, F > If(C condition, T if_true, F if_false)
Definition:
if.h:127
absl::StatusOr
Definition:
abseil-cpp/absl/status/statusor.h:187
absl::variant
Definition:
abseil-cpp/absl/types/internal/variant.h:46
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:02