Lines Matching full:status
15 #include "absl/status/status.h"
48 using Creator = absl::Status (*)(
51 using Classifier = bool (*)(const absl::Status&);
84 TEST(Status, CreateAndClassify) { in TEST() argument
88 // Ensure that the creator does, in fact, create status objects with the in TEST()
92 absl::Status status = test.creator( in TEST() local
95 EXPECT_EQ(test.code, status.code()); in TEST()
96 EXPECT_EQ(message, status.message()); in TEST()
98 // Ensure that the classifier returns true for a status produced by the in TEST()
100 EXPECT_TRUE(test.classifier(status)); in TEST()
102 // Ensure that the classifier returns false for status with a different in TEST()
106 EXPECT_FALSE(test.classifier(absl::Status(other.code, ""))) in TEST()
113 TEST(Status, DefaultConstructor) { in TEST() argument
114 absl::Status status; in TEST() local
115 EXPECT_TRUE(status.ok()); in TEST()
116 EXPECT_EQ(absl::StatusCode::kOk, status.code()); in TEST()
117 EXPECT_EQ("", status.message()); in TEST()
120 TEST(Status, OkStatus) { in TEST() argument
121 absl::Status status = absl::OkStatus(); in TEST() local
122 EXPECT_TRUE(status.ok()); in TEST()
123 EXPECT_EQ(absl::StatusCode::kOk, status.code()); in TEST()
124 EXPECT_EQ("", status.message()); in TEST()
127 TEST(Status, ConstructorWithCodeMessage) { in TEST() argument
129 absl::Status status(absl::StatusCode::kCancelled, ""); in TEST() local
130 EXPECT_FALSE(status.ok()); in TEST()
131 EXPECT_EQ(absl::StatusCode::kCancelled, status.code()); in TEST()
132 EXPECT_EQ("", status.message()); in TEST()
135 absl::Status status(absl::StatusCode::kInternal, "message"); in TEST() local
136 EXPECT_FALSE(status.ok()); in TEST()
137 EXPECT_EQ(absl::StatusCode::kInternal, status.code()); in TEST()
138 EXPECT_EQ("message", status.message()); in TEST()
142 TEST(Status, StatusMessageCStringTest) { in TEST() argument
144 absl::Status status = absl::OkStatus(); in TEST() local
145 EXPECT_EQ(status.message(), ""); in TEST()
146 EXPECT_STREQ(absl::StatusMessageAsCStr(status), ""); in TEST()
147 EXPECT_EQ(status.message(), absl::StatusMessageAsCStr(status)); in TEST()
148 EXPECT_NE(absl::StatusMessageAsCStr(status), nullptr); in TEST()
151 absl::Status status; in TEST() local
152 EXPECT_EQ(status.message(), ""); in TEST()
153 EXPECT_NE(absl::StatusMessageAsCStr(status), nullptr); in TEST()
154 EXPECT_STREQ(absl::StatusMessageAsCStr(status), ""); in TEST()
157 absl::Status status(absl::StatusCode::kInternal, "message"); in TEST() local
158 EXPECT_FALSE(status.ok()); in TEST()
159 EXPECT_EQ(absl::StatusCode::kInternal, status.code()); in TEST()
160 EXPECT_EQ("message", status.message()); in TEST()
161 EXPECT_STREQ("message", absl::StatusMessageAsCStr(status)); in TEST()
165 TEST(Status, ConstructOutOfRangeCode) { in TEST() argument
167 absl::Status status(static_cast<absl::StatusCode>(kRawCode), ""); in TEST() local
168 EXPECT_EQ(absl::StatusCode::kUnknown, status.code()); in TEST()
169 EXPECT_EQ(kRawCode, status.raw_code()); in TEST()
183 TEST(Status, TestGetSetPayload) { in TEST() argument
184 absl::Status ok_status = absl::OkStatus(); in TEST()
191 absl::Status bad_status(absl::StatusCode::kInternal, "fail"); in TEST()
209 TEST(Status, TestErasePayload) { in TEST() argument
210 absl::Status bad_status(absl::StatusCode::kInternal, "fail"); in TEST()
229 TEST(Status, TestComparePayloads) { in TEST() argument
230 absl::Status bad_status1(absl::StatusCode::kInternal, "fail"); in TEST()
235 absl::Status bad_status2(absl::StatusCode::kInternal, "fail"); in TEST()
243 TEST(Status, TestComparePayloadsAfterErase) { in TEST() argument
244 absl::Status payload_status(absl::StatusCode::kInternal, ""); in TEST()
248 absl::Status empty_status(absl::StatusCode::kInternal, ""); in TEST()
262 PayloadsVec AllVisitedPayloads(const absl::Status& s) { in AllVisitedPayloads()
272 TEST(Status, TestForEachPayload) { in TEST() argument
273 absl::Status bad_status(absl::StatusCode::kInternal, "fail"); in TEST()
289 // Test that we visit all the payloads in the status. in TEST()
294 std::vector<absl::Status> scratch; in TEST()
308 TEST(Status, ToString) { in TEST() argument
309 absl::Status status(absl::StatusCode::kInternal, "fail"); in TEST() local
310 EXPECT_EQ("INTERNAL: fail", status.ToString()); in TEST()
311 status.SetPayload("foo", absl::Cord("bar")); in TEST()
312 EXPECT_EQ("INTERNAL: fail [foo='bar']", status.ToString()); in TEST()
313 status.SetPayload("bar", absl::Cord("\377")); in TEST()
314 EXPECT_THAT(status.ToString(), in TEST()
319 TEST(Status, ToStringMode) { in TEST() argument
320 absl::Status status(absl::StatusCode::kInternal, "fail"); in TEST() local
321 status.SetPayload("foo", absl::Cord("bar")); in TEST()
322 status.SetPayload("bar", absl::Cord("\377")); in TEST()
325 status.ToString(absl::StatusToStringMode::kWithNoExtraData)); in TEST()
327 EXPECT_THAT(status.ToString(absl::StatusToStringMode::kWithPayload), in TEST()
331 EXPECT_THAT(status.ToString(absl::StatusToStringMode::kWithEverything), in TEST()
335 EXPECT_THAT(status.ToString(~absl::StatusToStringMode::kWithPayload), in TEST()
340 TEST(Status, OstreamOperator) { in TEST() argument
341 absl::Status status(absl::StatusCode::kInternal, "fail"); in TEST() local
343 stream << status; in TEST()
346 status.SetPayload("foo", absl::Cord("bar")); in TEST()
348 stream << status; in TEST()
351 status.SetPayload("bar", absl::Cord("\377")); in TEST()
353 stream << status; in TEST()
360 TEST(Status, AbslStringify) { in TEST() argument
361 absl::Status status(absl::StatusCode::kInternal, "fail"); in TEST() local
362 EXPECT_EQ("INTERNAL: fail", absl::StrCat(status)); in TEST()
363 EXPECT_EQ("INTERNAL: fail", absl::StrFormat("%v", status)); in TEST()
364 status.SetPayload("foo", absl::Cord("bar")); in TEST()
365 EXPECT_EQ("INTERNAL: fail [foo='bar']", absl::StrCat(status)); in TEST()
366 status.SetPayload("bar", absl::Cord("\377")); in TEST()
367 EXPECT_THAT(absl::StrCat(status), in TEST()
372 TEST(Status, OstreamEqStringify) { in TEST() argument
373 absl::Status status(absl::StatusCode::kUnknown, "fail"); in TEST() local
374 status.SetPayload("foo", absl::Cord("bar")); in TEST()
376 stream << status; in TEST()
377 EXPECT_EQ(stream.str(), absl::StrCat(status)); in TEST()
380 absl::Status EraseAndReturn(const absl::Status& base) { in EraseAndReturn()
381 absl::Status copy = base; in EraseAndReturn()
386 TEST(Status, CopyOnWriteForErasePayload) { in TEST() argument
388 absl::Status base(absl::StatusCode::kInvalidArgument, "fail"); in TEST()
391 absl::Status copy = EraseAndReturn(base); in TEST()
396 absl::Status base(absl::StatusCode::kInvalidArgument, "fail"); in TEST()
398 absl::Status copy = base; in TEST()
410 TEST(Status, CopyConstructor) { in TEST() argument
412 absl::Status status; in TEST() local
413 absl::Status copy(status); in TEST()
414 EXPECT_EQ(copy, status); in TEST()
417 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
418 absl::Status copy(status); in TEST()
419 EXPECT_EQ(copy, status); in TEST()
422 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
423 status.SetPayload(kUrl1, absl::Cord(kPayload1)); in TEST()
424 absl::Status copy(status); in TEST()
425 EXPECT_EQ(copy, status); in TEST()
429 TEST(Status, CopyAssignment) { in TEST() argument
430 absl::Status assignee; in TEST()
432 absl::Status status; in TEST() local
433 assignee = status; in TEST()
434 EXPECT_EQ(assignee, status); in TEST()
437 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
438 assignee = status; in TEST()
439 EXPECT_EQ(assignee, status); in TEST()
442 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
443 status.SetPayload(kUrl1, absl::Cord(kPayload1)); in TEST()
444 assignee = status; in TEST()
445 EXPECT_EQ(assignee, status); in TEST()
449 TEST(Status, CopyAssignmentIsNotRef) { in TEST() argument
450 const absl::Status status_orig(absl::StatusCode::kInvalidArgument, "message"); in TEST()
451 absl::Status status_copy = status_orig; in TEST()
457 TEST(Status, MoveConstructor) { in TEST() argument
459 absl::Status status; in TEST() local
460 absl::Status copy(absl::Status{}); in TEST()
461 EXPECT_EQ(copy, status); in TEST()
464 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
465 absl::Status copy( in TEST()
466 absl::Status(absl::StatusCode::kInvalidArgument, "message")); in TEST()
467 EXPECT_EQ(copy, status); in TEST()
470 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
471 status.SetPayload(kUrl1, absl::Cord(kPayload1)); in TEST()
472 absl::Status copy1(status); in TEST()
473 absl::Status copy2(std::move(status)); in TEST()
478 TEST(Status, MoveAssignment) { in TEST() argument
479 absl::Status assignee; in TEST()
481 absl::Status status; in TEST() local
482 assignee = absl::Status(); in TEST()
483 EXPECT_EQ(assignee, status); in TEST()
486 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
487 assignee = absl::Status(absl::StatusCode::kInvalidArgument, "message"); in TEST()
488 EXPECT_EQ(assignee, status); in TEST()
491 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
492 status.SetPayload(kUrl1, absl::Cord(kPayload1)); in TEST()
493 absl::Status copy(status); in TEST()
494 assignee = std::move(status); in TEST()
498 absl::Status status(absl::StatusCode::kInvalidArgument, "message"); in TEST() local
499 absl::Status copy(status); in TEST()
500 assignee = static_cast<absl::Status&&>(status); in TEST()
505 TEST(Status, Update) { in TEST() argument
506 absl::Status s; in TEST()
509 const absl::Status a(absl::StatusCode::kCancelled, "message"); in TEST()
512 const absl::Status b(absl::StatusCode::kInternal, "other message"); in TEST()
520 TEST(Status, Equality) { in TEST() argument
521 absl::Status ok; in TEST()
522 absl::Status no_payload = absl::CancelledError("no payload"); in TEST()
523 absl::Status one_payload = absl::InvalidArgumentError("one payload"); in TEST()
525 absl::Status two_payloads = one_payload; in TEST()
527 const std::array<absl::Status, 4> status_arr = {ok, no_payload, one_payload, in TEST()
542 TEST(Status, Swap) { in TEST() argument
543 auto test_swap = [](const absl::Status& s1, const absl::Status& s2) { in TEST()
544 absl::Status copy1 = s1, copy2 = s2; in TEST()
549 const absl::Status ok; in TEST()
550 const absl::Status no_payload(absl::StatusCode::kAlreadyExists, "no payload"); in TEST()
551 absl::Status with_payload(absl::StatusCode::kInternal, "with payload"); in TEST()
574 absl::Status status = absl::ErrnoToStatus(ENOENT, "Cannot open 'path'"); in TEST() local
575 EXPECT_EQ(status.code(), absl::StatusCode::kNotFound); in TEST()
576 EXPECT_EQ(status.message(), "Cannot open 'path': No such file or directory"); in TEST()