error_utils_test.cc
Go to the documentation of this file.
1 //
2 // Copyright 2021 gRPC authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
18 
19 #include <gtest/gtest.h>
20 
21 #include "absl/status/status.h"
22 
26 
27 namespace {
28 
29 TEST(ErrorUtilsTest, GetErrorGetStatusNone) {
34  nullptr);
36  ASSERT_EQ(message, "");
37 }
38 
39 TEST(ErrorUtilsTest, GetErrorGetStatusFlat) {
46  nullptr);
48  ASSERT_EQ(message, "Msg");
50 }
51 
52 TEST(ErrorUtilsTest, GetErrorGetStatusChild) {
53  std::vector<grpc_error_handle> children = {
58  };
63  nullptr);
65  ASSERT_EQ(message, "Child2");
67 }
68 
69 // ---- Ok Status ----
70 TEST(ErrorUtilsTest, AbslOkToGrpcError) {
74 }
75 
76 TEST(ErrorUtilsTest, GrpcSpecialErrorNoneToAbslStatus) {
79  ASSERT_EQ(status.message(), "");
80 }
81 
82 // ---- Asymmetry of conversions of "Special" errors ----
83 TEST(ErrorUtilsTest, AbslStatusToGrpcErrorDoesNotReturnSpecialVariables) {
88 }
89 
90 TEST(ErrorUtilsTest, GrpcSpecialErrorCancelledToAbslStatus) {
93  ASSERT_EQ(status.message(), "CANCELLED");
94 }
95 
96 TEST(ErrorUtilsTest, GrpcSpecialErrorOOMToAbslStatus) {
99  ASSERT_EQ(status.message(), "RESOURCE_EXHAUSTED");
100 }
101 
102 // ---- Ordinary statuses ----
103 TEST(ErrorUtilsTest, AbslUnavailableToGrpcError) {
106  // Status code checks
107  intptr_t code;
110  // Status message checks
113  ASSERT_EQ(message, "Making tea");
115 }
116 
117 TEST(ErrorUtilsTest, GrpcErrorUnavailableToAbslStatus) {
120  "weighted_target: all children report state TRANSIENT_FAILURE"),
125  "weighted_target: all children report state TRANSIENT_FAILURE");
127 }
128 
129 } // namespace
130 
131 int main(int argc, char** argv) {
132  testing::InitGoogleTest(&argc, argv);
133  grpc::testing::TestEnvironment env(&argc, argv);
134  return RUN_ALL_TESTS();
135 };
ASSERT_NE
#define ASSERT_NE(val1, val2)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2060
GRPC_ERROR_NONE
#define GRPC_ERROR_NONE
Definition: error.h:234
GRPC_STATUS_UNAVAILABLE
@ GRPC_STATUS_UNAVAILABLE
Definition: include/grpc/impl/codegen/status.h:143
generate.env
env
Definition: generate.py:37
absl::IsUnavailable
bool IsUnavailable(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:439
absl::CancelledError
Status CancelledError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:331
grpc_core::Timestamp
Definition: src/core/lib/gprpp/time.h:62
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
error
grpc_error_handle error
Definition: retry_filter.cc:499
grpc_status_code
grpc_status_code
Definition: include/grpc/impl/codegen/status.h:28
absl::OkStatus
Status OkStatus()
Definition: third_party/abseil-cpp/absl/status/status.h:882
status
absl::Status status
Definition: rls.cc:251
GRPC_STATUS_CANCELLED
@ GRPC_STATUS_CANCELLED
Definition: include/grpc/impl/codegen/status.h:33
GRPC_ERROR_CANCELLED
#define GRPC_ERROR_CANCELLED
Definition: error.h:238
GRPC_STATUS_RESOURCE_EXHAUSTED
@ GRPC_STATUS_RESOURCE_EXHAUSTED
Definition: include/grpc/impl/codegen/status.h:76
GRPC_ERROR_STR_DESCRIPTION
@ GRPC_ERROR_STR_DESCRIPTION
top-level textual description of this error
Definition: error.h:106
message
char * message
Definition: libuv/docs/code/tty-gravity/main.c:12
grpc_status._async.code
code
Definition: grpcio_status/grpc_status/_async.py:34
GRPC_ERROR_CREATE_FROM_VECTOR
#define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list)
Definition: error.h:314
GRPC_STATUS_OK
@ GRPC_STATUS_OK
Definition: include/grpc/impl/codegen/status.h:30
TEST
#define TEST(name, init_size,...)
Definition: arena_test.cc:75
absl::IsCancelled
bool IsCancelled(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:395
absl::Status::message
absl::string_view message() const
Definition: third_party/abseil-cpp/absl/status/status.h:806
grpc_error_get_int
bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which, intptr_t *p)
Definition: error.cc:635
intptr_t
_W64 signed int intptr_t
Definition: stdint-msvc2008.h:118
error.h
slice_internal.h
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
GRPC_ERROR_CREATE_FROM_STATIC_STRING
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc)
Definition: error.h:291
main
int main(int argc, char **argv)
Definition: error_utils_test.cc:131
test_config.h
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
absl_status_to_grpc_error
grpc_error_handle absl_status_to_grpc_error(absl::Status status)
Definition: error_utils.cc:167
grpc_error_set_int
grpc_error_handle grpc_error_set_int(grpc_error_handle src, grpc_error_ints which, intptr_t value)
Definition: error.cc:613
absl::Status
Definition: third_party/abseil-cpp/absl/status/status.h:424
absl::IsResourceExhausted
bool IsResourceExhausted(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:431
grpc::testing::TestEnvironment
Definition: test/core/util/test_config.h:54
ASSERT_TRUE
#define ASSERT_TRUE(condition)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1973
absl::Status::ok
ABSL_MUST_USE_RESULT bool ok() const
Definition: third_party/abseil-cpp/absl/status/status.h:802
absl::UnavailableError
Status UnavailableError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:375
GRPC_ERROR_UNREF
#define GRPC_ERROR_UNREF(err)
Definition: error.h:262
grpc_error_get_status
void grpc_error_get_status(grpc_error_handle error, grpc_core::Timestamp deadline, grpc_status_code *code, std::string *message, grpc_http2_error_code *http_error, const char **error_string)
Definition: error_utils.cc:67
grpc_error_get_str
bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which, std::string *s)
Returns false if the specified string is not set.
Definition: error.cc:659
code
Definition: bloaty/third_party/zlib/contrib/infback9/inftree9.h:24
grpc_error
Definition: error_internal.h:42
GRPC_ERROR_OOM
#define GRPC_ERROR_OOM
Definition: error.h:236
grpc_error_to_absl_status
absl::Status grpc_error_to_absl_status(grpc_error_handle error)
Definition: error_utils.cc:156
children
std::map< std::string, Node * > children
Definition: bloaty/third_party/protobuf/src/google/protobuf/util/field_mask_util.cc:257
GRPC_ERROR_INT_GRPC_STATUS
@ GRPC_ERROR_INT_GRPC_STATUS
grpc status code representing this error
Definition: error.h:66
error_utils.h
ASSERT_EQ
#define ASSERT_EQ(val1, val2)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2056


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:16