gtest_unittest: Call FAIL() in lambda, fix incorrect fatality expectation

FAIL() evaluates into a return statement: 5b909beeec/googletest/include/gtest/internal/gtest-internal.h (L1347)
Calling it from the body of the test case turns all subsequent expectations into no-ops.

Fixes #3941

PiperOrigin-RevId: 466104977
Change-Id: Ic15f43acb734295a5c9690a2b5eec6f65e8c0814
This commit is contained in:
Dino Radakovic 2022-08-08 11:47:36 -07:00 committed by Copybara-Service
parent 5b909beeec
commit 4c9a3bb62b

View File

@ -3454,10 +3454,10 @@ TEST_F(NoFatalFailureTest, MessageIsStreamable) {
TestPartResultArray gtest_failures; TestPartResultArray gtest_failures;
{ {
ScopedFakeTestPartResultReporter gtest_reporter(&gtest_failures); ScopedFakeTestPartResultReporter gtest_reporter(&gtest_failures);
EXPECT_NO_FATAL_FAILURE(FAIL() << "foo") << "my message"; EXPECT_NO_FATAL_FAILURE([] { FAIL() << "foo"; }()) << "my message";
} }
ASSERT_EQ(2, gtest_failures.size()); ASSERT_EQ(2, gtest_failures.size());
EXPECT_EQ(TestPartResult::kNonFatalFailure, EXPECT_EQ(TestPartResult::kFatalFailure,
gtest_failures.GetTestPartResult(0).type()); gtest_failures.GetTestPartResult(0).type());
EXPECT_EQ(TestPartResult::kNonFatalFailure, EXPECT_EQ(TestPartResult::kNonFatalFailure,
gtest_failures.GetTestPartResult(1).type()); gtest_failures.GetTestPartResult(1).type());