Commit b007c54f authored by Abseil Team's avatar Abseil Team Committed by Copybara-Service
Browse files

Running clang-format over all of GoogleTest

A few tests are examining code locations and looking af the resulting line
numbers to verify that GoogleTest shows those to users correctly. Some of those
locations change when clang-format is run. For those locations, I've wrapped
portions in:
// clang-format off
...
// clang-format on

There may be other locations that are currently not tickled by running
clang-format.

PiperOrigin-RevId: 434844712
Change-Id: I3a9f0a6f39eff741c576b6de389bef9b1d11139d
parent 8a422b83
...@@ -27,23 +27,18 @@ ...@@ -27,23 +27,18 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "gtest/gtest.h" #include "gtest/gtest.h"
class SetupFailTest : public ::testing::Test { class SetupFailTest : public ::testing::Test {
protected: protected:
static void SetUpTestSuite() { static void SetUpTestSuite() { ASSERT_EQ("", "SET_UP_FAIL"); }
ASSERT_EQ("", "SET_UP_FAIL");
}
}; };
TEST_F(SetupFailTest, NoopPassingTest) {} TEST_F(SetupFailTest, NoopPassingTest) {}
class TearDownFailTest : public ::testing::Test { class TearDownFailTest : public ::testing::Test {
protected: protected:
static void TearDownTestSuite() { static void TearDownTestSuite() { ASSERT_EQ("", "TEAR_DOWN_FAIL"); }
ASSERT_EQ("", "TEAR_DOWN_FAIL");
}
}; };
TEST_F(TearDownFailTest, NoopPassingTest) {} TEST_F(TearDownFailTest, NoopPassingTest) {}
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Verifies that test shuffling works. // Verifies that test shuffling works.
#include "gtest/gtest.h" #include "gtest/gtest.h"
...@@ -88,7 +87,7 @@ class TestNamePrinter : public EmptyTestEventListener { ...@@ -88,7 +87,7 @@ class TestNamePrinter : public EmptyTestEventListener {
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char** argv) {
InitGoogleTest(&argc, argv); InitGoogleTest(&argc, argv);
// Replaces the default printer with TestNamePrinter, which prints // Replaces the default printer with TestNamePrinter, which prints
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "gtest/gtest-test-part.h" #include "gtest/gtest-test-part.h"
#include "gtest/gtest.h" #include "gtest/gtest.h"
using testing::Message; using testing::Message;
...@@ -52,17 +51,14 @@ class TestPartResultTest : public Test { ...@@ -52,17 +51,14 @@ class TestPartResultTest : public Test {
TestPartResult r1_, r2_, r3_, r4_; TestPartResult r1_, r2_, r3_, r4_;
}; };
TEST_F(TestPartResultTest, ConstructorWorks) { TEST_F(TestPartResultTest, ConstructorWorks) {
Message message; Message message;
message << "something is terribly wrong"; message << "something is terribly wrong";
message << static_cast<const char*>(testing::internal::kStackTraceMarker); message << static_cast<const char*>(testing::internal::kStackTraceMarker);
message << "some unimportant stack trace"; message << "some unimportant stack trace";
const TestPartResult result(TestPartResult::kNonFatalFailure, const TestPartResult result(TestPartResult::kNonFatalFailure, "some_file.cc",
"some_file.cc", 42, message.GetString().c_str());
42,
message.GetString().c_str());
EXPECT_EQ(TestPartResult::kNonFatalFailure, result.type()); EXPECT_EQ(TestPartResult::kNonFatalFailure, result.type());
EXPECT_STREQ("some_file.cc", result.file_name()); EXPECT_STREQ("some_file.cc", result.file_name());
...@@ -72,9 +68,7 @@ TEST_F(TestPartResultTest, ConstructorWorks) { ...@@ -72,9 +68,7 @@ TEST_F(TestPartResultTest, ConstructorWorks) {
} }
TEST_F(TestPartResultTest, ResultAccessorsWork) { TEST_F(TestPartResultTest, ResultAccessorsWork) {
const TestPartResult success(TestPartResult::kSuccess, const TestPartResult success(TestPartResult::kSuccess, "file.cc", 42,
"file.cc",
42,
"message"); "message");
EXPECT_TRUE(success.passed()); EXPECT_TRUE(success.passed());
EXPECT_FALSE(success.failed()); EXPECT_FALSE(success.failed());
...@@ -83,19 +77,15 @@ TEST_F(TestPartResultTest, ResultAccessorsWork) { ...@@ -83,19 +77,15 @@ TEST_F(TestPartResultTest, ResultAccessorsWork) {
EXPECT_FALSE(success.skipped()); EXPECT_FALSE(success.skipped());
const TestPartResult nonfatal_failure(TestPartResult::kNonFatalFailure, const TestPartResult nonfatal_failure(TestPartResult::kNonFatalFailure,
"file.cc", "file.cc", 42, "message");
42,
"message");
EXPECT_FALSE(nonfatal_failure.passed()); EXPECT_FALSE(nonfatal_failure.passed());
EXPECT_TRUE(nonfatal_failure.failed()); EXPECT_TRUE(nonfatal_failure.failed());
EXPECT_TRUE(nonfatal_failure.nonfatally_failed()); EXPECT_TRUE(nonfatal_failure.nonfatally_failed());
EXPECT_FALSE(nonfatal_failure.fatally_failed()); EXPECT_FALSE(nonfatal_failure.fatally_failed());
EXPECT_FALSE(nonfatal_failure.skipped()); EXPECT_FALSE(nonfatal_failure.skipped());
const TestPartResult fatal_failure(TestPartResult::kFatalFailure, const TestPartResult fatal_failure(TestPartResult::kFatalFailure, "file.cc",
"file.cc", 42, "message");
42,
"message");
EXPECT_FALSE(fatal_failure.passed()); EXPECT_FALSE(fatal_failure.passed());
EXPECT_TRUE(fatal_failure.failed()); EXPECT_TRUE(fatal_failure.failed());
EXPECT_FALSE(fatal_failure.nonfatally_failed()); EXPECT_FALSE(fatal_failure.nonfatally_failed());
......
...@@ -27,18 +27,18 @@ ...@@ -27,18 +27,18 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Tests Google Test's throw-on-failure mode with exceptions disabled. // Tests Google Test's throw-on-failure mode with exceptions disabled.
// //
// This program must be compiled with exceptions disabled. It will be // This program must be compiled with exceptions disabled. It will be
// invoked by googletest-throw-on-failure-test.py, and is expected to exit // invoked by googletest-throw-on-failure-test.py, and is expected to exit
// with non-zero in the throw-on-failure mode or 0 otherwise. // with non-zero in the throw-on-failure mode or 0 otherwise.
#include "gtest/gtest.h" #include <stdio.h> // for fflush, fprintf, NULL, etc.
#include <stdlib.h> // for exit
#include <stdio.h> // for fflush, fprintf, NULL, etc. #include <exception> // for set_terminate
#include <stdlib.h> // for exit
#include <exception> // for set_terminate #include "gtest/gtest.h"
// This terminate handler aborts the program using exit() rather than abort(). // This terminate handler aborts the program using exit() rather than abort().
// This avoids showing pop-ups on Windows systems and core dumps on Unix-like // This avoids showing pop-ups on Windows systems and core dumps on Unix-like
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "gtest/gtest.h" #include "gtest/gtest.h"
TEST(DummyTest, Dummy) { TEST(DummyTest, Dummy) {
...@@ -37,6 +36,4 @@ TEST(DummyTest, Dummy) { ...@@ -37,6 +36,4 @@ TEST(DummyTest, Dummy) {
// testing::InitGoogleTest() being called first. // testing::InitGoogleTest() being called first.
} }
int main() { int main() { return RUN_ALL_TESTS(); }
return RUN_ALL_TESTS();
}
...@@ -27,11 +27,10 @@ ...@@ -27,11 +27,10 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <vector> #include <vector>
#include "test/gtest-typed-test_test.h"
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "test/gtest-typed-test_test.h"
// Tests that the same type-parameterized test case can be // Tests that the same type-parameterized test case can be
// instantiated in different translation units linked together. // instantiated in different translation units linked together.
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "test/gtest-typed-test_test.h" #include "test/gtest-typed-test_test.h"
#include <set> #include <set>
...@@ -50,9 +49,7 @@ class CommonTest : public Test { ...@@ -50,9 +49,7 @@ class CommonTest : public Test {
// For some technical reason, SetUpTestSuite() and TearDownTestSuite() // For some technical reason, SetUpTestSuite() and TearDownTestSuite()
// must be public. // must be public.
public: public:
static void SetUpTestSuite() { static void SetUpTestSuite() { shared_ = new T(5); }
shared_ = new T(5);
}
static void TearDownTestSuite() { static void TearDownTestSuite() {
delete shared_; delete shared_;
...@@ -130,8 +127,7 @@ TYPED_TEST(CommonTest, ValuesAreStillCorrect) { ...@@ -130,8 +127,7 @@ TYPED_TEST(CommonTest, ValuesAreStillCorrect) {
// translation unit. // translation unit.
template <typename T> template <typename T>
class TypedTest1 : public Test { class TypedTest1 : public Test {};
};
// Verifies that the second argument of TYPED_TEST_SUITE can be a // Verifies that the second argument of TYPED_TEST_SUITE can be a
// single type. // single type.
...@@ -139,8 +135,7 @@ TYPED_TEST_SUITE(TypedTest1, int); ...@@ -139,8 +135,7 @@ TYPED_TEST_SUITE(TypedTest1, int);
TYPED_TEST(TypedTest1, A) {} TYPED_TEST(TypedTest1, A) {}
template <typename T> template <typename T>
class TypedTest2 : public Test { class TypedTest2 : public Test {};
};
// Verifies that the second argument of TYPED_TEST_SUITE can be a // Verifies that the second argument of TYPED_TEST_SUITE can be a
// Types<...> type list. // Types<...> type list.
...@@ -155,15 +150,12 @@ TYPED_TEST(TypedTest2, A) {} ...@@ -155,15 +150,12 @@ TYPED_TEST(TypedTest2, A) {}
namespace library1 { namespace library1 {
template <typename T> template <typename T>
class NumericTest : public Test { class NumericTest : public Test {};
};
typedef Types<int, long> NumericTypes; typedef Types<int, long> NumericTypes;
TYPED_TEST_SUITE(NumericTest, NumericTypes); TYPED_TEST_SUITE(NumericTest, NumericTypes);
TYPED_TEST(NumericTest, DefaultIsZero) { TYPED_TEST(NumericTest, DefaultIsZero) { EXPECT_EQ(0, TypeParam()); }
EXPECT_EQ(0, TypeParam());
}
} // namespace library1 } // namespace library1
...@@ -265,8 +257,7 @@ TEST_F(TypedTestSuitePStateDeathTest, DetectsTestAfterRegistration) { ...@@ -265,8 +257,7 @@ TEST_F(TypedTestSuitePStateDeathTest, DetectsTestAfterRegistration) {
// and SetUp()/TearDown() work correctly in type-parameterized tests. // and SetUp()/TearDown() work correctly in type-parameterized tests.
template <typename T> template <typename T>
class DerivedTest : public CommonTest<T> { class DerivedTest : public CommonTest<T> {};
};
TYPED_TEST_SUITE_P(DerivedTest); TYPED_TEST_SUITE_P(DerivedTest);
...@@ -290,8 +281,8 @@ TYPED_TEST_P(DerivedTest, ValuesAreStillCorrect) { ...@@ -290,8 +281,8 @@ TYPED_TEST_P(DerivedTest, ValuesAreStillCorrect) {
EXPECT_EQ(2, this->value_); EXPECT_EQ(2, this->value_);
} }
REGISTER_TYPED_TEST_SUITE_P(DerivedTest, REGISTER_TYPED_TEST_SUITE_P(DerivedTest, ValuesAreCorrect,
ValuesAreCorrect, ValuesAreStillCorrect); ValuesAreStillCorrect);
typedef Types<short, long> MyTwoTypes; typedef Types<short, long> MyTwoTypes;
INSTANTIATE_TYPED_TEST_SUITE_P(My, DerivedTest, MyTwoTypes); INSTANTIATE_TYPED_TEST_SUITE_P(My, DerivedTest, MyTwoTypes);
...@@ -334,14 +325,13 @@ class TypeParametrizedTestNames { ...@@ -334,14 +325,13 @@ class TypeParametrizedTestNames {
}; };
INSTANTIATE_TYPED_TEST_SUITE_P(CustomName, TypeParametrizedTestWithNames, INSTANTIATE_TYPED_TEST_SUITE_P(CustomName, TypeParametrizedTestWithNames,
TwoTypes, TypeParametrizedTestNames); TwoTypes, TypeParametrizedTestNames);
// Tests that multiple TYPED_TEST_SUITE_P's can be defined in the same // Tests that multiple TYPED_TEST_SUITE_P's can be defined in the same
// translation unit. // translation unit.
template <typename T> template <typename T>
class TypedTestP1 : public Test { class TypedTestP1 : public Test {};
};
TYPED_TEST_SUITE_P(TypedTestP1); TYPED_TEST_SUITE_P(TypedTestP1);
...@@ -359,8 +349,7 @@ using IntBeforeRegisterTypedTestSuiteP = int; ...@@ -359,8 +349,7 @@ using IntBeforeRegisterTypedTestSuiteP = int;
REGISTER_TYPED_TEST_SUITE_P(TypedTestP1, A, B); REGISTER_TYPED_TEST_SUITE_P(TypedTestP1, A, B);
template <typename T> template <typename T>
class TypedTestP2 : public Test { class TypedTestP2 : public Test {};
};
TYPED_TEST_SUITE_P(TypedTestP2); TYPED_TEST_SUITE_P(TypedTestP2);
...@@ -396,21 +385,17 @@ INSTANTIATE_TYPED_TEST_SUITE_P(My, ContainerTest, MyContainers); ...@@ -396,21 +385,17 @@ INSTANTIATE_TYPED_TEST_SUITE_P(My, ContainerTest, MyContainers);
namespace library2 { namespace library2 {
template <typename T> template <typename T>
class NumericTest : public Test { class NumericTest : public Test {};
};
TYPED_TEST_SUITE_P(NumericTest); TYPED_TEST_SUITE_P(NumericTest);
TYPED_TEST_P(NumericTest, DefaultIsZero) { TYPED_TEST_P(NumericTest, DefaultIsZero) { EXPECT_EQ(0, TypeParam()); }
EXPECT_EQ(0, TypeParam());
}
TYPED_TEST_P(NumericTest, ZeroIsLessThanOne) { TYPED_TEST_P(NumericTest, ZeroIsLessThanOne) {
EXPECT_LT(TypeParam(0), TypeParam(1)); EXPECT_LT(TypeParam(0), TypeParam(1));
} }
REGISTER_TYPED_TEST_SUITE_P(NumericTest, REGISTER_TYPED_TEST_SUITE_P(NumericTest, DefaultIsZero, ZeroIsLessThanOne);
DefaultIsZero, ZeroIsLessThanOne);
typedef Types<int, double> NumericTypes; typedef Types<int, double> NumericTypes;
INSTANTIATE_TYPED_TEST_SUITE_P(My, NumericTest, NumericTypes); INSTANTIATE_TYPED_TEST_SUITE_P(My, NumericTest, NumericTypes);
...@@ -418,20 +403,20 @@ static const char* GetTestName() { ...@@ -418,20 +403,20 @@ static const char* GetTestName() {
return testing::UnitTest::GetInstance()->current_test_info()->name(); return testing::UnitTest::GetInstance()->current_test_info()->name();
} }
// Test the stripping of space from test names // Test the stripping of space from test names
template <typename T> class TrimmedTest : public Test { }; template <typename T>
class TrimmedTest : public Test {};
TYPED_TEST_SUITE_P(TrimmedTest); TYPED_TEST_SUITE_P(TrimmedTest);
TYPED_TEST_P(TrimmedTest, Test1) { EXPECT_STREQ("Test1", GetTestName()); } TYPED_TEST_P(TrimmedTest, Test1) { EXPECT_STREQ("Test1", GetTestName()); }
TYPED_TEST_P(TrimmedTest, Test2) { EXPECT_STREQ("Test2", GetTestName()); } TYPED_TEST_P(TrimmedTest, Test2) { EXPECT_STREQ("Test2", GetTestName()); }
TYPED_TEST_P(TrimmedTest, Test3) { EXPECT_STREQ("Test3", GetTestName()); } TYPED_TEST_P(TrimmedTest, Test3) { EXPECT_STREQ("Test3", GetTestName()); }
TYPED_TEST_P(TrimmedTest, Test4) { EXPECT_STREQ("Test4", GetTestName()); } TYPED_TEST_P(TrimmedTest, Test4) { EXPECT_STREQ("Test4", GetTestName()); }
TYPED_TEST_P(TrimmedTest, Test5) { EXPECT_STREQ("Test5", GetTestName()); } TYPED_TEST_P(TrimmedTest, Test5) { EXPECT_STREQ("Test5", GetTestName()); }
REGISTER_TYPED_TEST_SUITE_P( REGISTER_TYPED_TEST_SUITE_P(TrimmedTest, Test1, Test2, Test3, Test4,
TrimmedTest, Test5); // NOLINT
Test1, Test2,Test3 , Test4 ,Test5 ); // NOLINT template <typename T1, typename T2>
template <typename T1, typename T2> struct MyPair {}; struct MyPair {};
// Be sure to try a type with a comma in its name just in case it matters. // Be sure to try a type with a comma in its name just in case it matters.
typedef Types<int, double, MyPair<int, int> > TrimTypes; typedef Types<int, double, MyPair<int, int> > TrimTypes;
INSTANTIATE_TYPED_TEST_SUITE_P(My, TrimmedTest, TrimTypes); INSTANTIATE_TYPED_TEST_SUITE_P(My, TrimmedTest, TrimTypes);
} // namespace library2 } // namespace library2
...@@ -40,21 +40,18 @@ using testing::Test; ...@@ -40,21 +40,18 @@ using testing::Test;
// and gtest-typed-test2_test.cc. // and gtest-typed-test2_test.cc.
template <typename T> template <typename T>
class ContainerTest : public Test { class ContainerTest : public Test {};
};
TYPED_TEST_SUITE_P(ContainerTest); TYPED_TEST_SUITE_P(ContainerTest);
TYPED_TEST_P(ContainerTest, CanBeDefaultConstructed) { TYPED_TEST_P(ContainerTest, CanBeDefaultConstructed) { TypeParam container; }
TypeParam container;
}
TYPED_TEST_P(ContainerTest, InitialSizeIsZero) { TYPED_TEST_P(ContainerTest, InitialSizeIsZero) {
TypeParam container; TypeParam container;
EXPECT_EQ(0U, container.size()); EXPECT_EQ(0U, container.size());
} }
REGISTER_TYPED_TEST_SUITE_P(ContainerTest, REGISTER_TYPED_TEST_SUITE_P(ContainerTest, CanBeDefaultConstructed,
CanBeDefaultConstructed, InitialSizeIsZero); InitialSizeIsZero);
#endif // GOOGLETEST_TEST_GTEST_TYPED_TEST_TEST_H_ #endif // GOOGLETEST_TEST_GTEST_TYPED_TEST_TEST_H_
...@@ -32,11 +32,12 @@ ...@@ -32,11 +32,12 @@
// This file contains tests verifying correctness of data provided via // This file contains tests verifying correctness of data provided via
// UnitTest's public methods. // UnitTest's public methods.
#include "gtest/gtest.h"
#include <string.h> // For strcmp. #include <string.h> // For strcmp.
#include <algorithm> #include <algorithm>
#include "gtest/gtest.h"
using ::testing::InitGoogleTest; using ::testing::InitGoogleTest;
namespace testing { namespace testing {
...@@ -56,13 +57,12 @@ class UnitTestHelper { ...@@ -56,13 +57,12 @@ class UnitTestHelper {
static TestSuite const** GetSortedTestSuites() { static TestSuite const** GetSortedTestSuites() {
UnitTest& unit_test = *UnitTest::GetInstance(); UnitTest& unit_test = *UnitTest::GetInstance();
auto const** const test_suites = new const TestSuite*[static_cast<size_t>( auto const** const test_suites = new const TestSuite*[static_cast<size_t>(
unit_test.total_test_suite_count())]; unit_test.total_test_suite_count())];
for (int i = 0; i < unit_test.total_test_suite_count(); ++i) for (int i = 0; i < unit_test.total_test_suite_count(); ++i)
test_suites[i] = unit_test.GetTestSuite(i); test_suites[i] = unit_test.GetTestSuite(i);
std::sort(test_suites, std::sort(test_suites, test_suites + unit_test.total_test_suite_count(),
test_suites + unit_test.total_test_suite_count(),
LessByName<TestSuite>()); LessByName<TestSuite>());
return test_suites; return test_suites;
} }
...@@ -73,8 +73,7 @@ class UnitTestHelper { ...@@ -73,8 +73,7 @@ class UnitTestHelper {
UnitTest& unit_test = *UnitTest::GetInstance(); UnitTest& unit_test = *UnitTest::GetInstance();
for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
const TestSuite* test_suite = unit_test.GetTestSuite(i); const TestSuite* test_suite = unit_test.GetTestSuite(i);
if (0 == strcmp(test_suite->name(), name)) if (0 == strcmp(test_suite->name(), name)) return test_suite;
return test_suite;
} }
return nullptr; return nullptr;
} }
...@@ -84,7 +83,7 @@ class UnitTestHelper { ...@@ -84,7 +83,7 @@ class UnitTestHelper {
// array. // array.
static TestInfo const** GetSortedTests(const TestSuite* test_suite) { static TestInfo const** GetSortedTests(const TestSuite* test_suite) {
TestInfo const** const tests = new const TestInfo*[static_cast<size_t>( TestInfo const** const tests = new const TestInfo*[static_cast<size_t>(
test_suite->total_test_count())]; test_suite->total_test_count())];
for (int i = 0; i < test_suite->total_test_count(); ++i) for (int i = 0; i < test_suite->total_test_count(); ++i)
tests[i] = test_suite->GetTestInfo(i); tests[i] = test_suite->GetTestInfo(i);
...@@ -95,7 +94,8 @@ class UnitTestHelper { ...@@ -95,7 +94,8 @@ class UnitTestHelper {
} }
}; };
template <typename T> class TestSuiteWithCommentTest : public Test {}; template <typename T>
class TestSuiteWithCommentTest : public Test {};
TYPED_TEST_SUITE(TestSuiteWithCommentTest, Types<int>); TYPED_TEST_SUITE(TestSuiteWithCommentTest, Types<int>);
TYPED_TEST(TestSuiteWithCommentTest, Dummy) {} TYPED_TEST(TestSuiteWithCommentTest, Dummy) {}
...@@ -319,7 +319,7 @@ class FinalSuccessChecker : public Environment { ...@@ -319,7 +319,7 @@ class FinalSuccessChecker : public Environment {
} // namespace internal } // namespace internal
} // namespace testing } // namespace testing
int main(int argc, char **argv) { int main(int argc, char** argv) {
InitGoogleTest(&argc, argv); InitGoogleTest(&argc, argv);
AddGlobalTestEnvironment(new testing::internal::FinalSuccessChecker()); AddGlobalTestEnvironment(new testing::internal::FinalSuccessChecker());
......
...@@ -27,16 +27,16 @@ ...@@ -27,16 +27,16 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Tests Google Test's assert-by-exception mode with exceptions enabled. // Tests Google Test's assert-by-exception mode with exceptions enabled.
#include "gtest/gtest.h"
#include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <string.h> #include <string.h>
#include <stdexcept> #include <stdexcept>
#include "gtest/gtest.h"
class ThrowListener : public testing::EmptyTestEventListener { class ThrowListener : public testing::EmptyTestEventListener {
void OnTestPartResult(const testing::TestPartResult& result) override { void OnTestPartResult(const testing::TestPartResult& result) override {
if (result.type() == testing::TestPartResult::kFatalFailure) { if (result.type() == testing::TestPartResult::kFatalFailure) {
...@@ -55,9 +55,7 @@ void Fail(const char* msg) { ...@@ -55,9 +55,7 @@ void Fail(const char* msg) {
exit(1); exit(1);
} }
static void AssertFalse() { static void AssertFalse() { ASSERT_EQ(2, 3) << "Expected failure"; }
ASSERT_EQ(2, 3) << "Expected failure";
}
// Tests that an assertion failure throws a subclass of // Tests that an assertion failure throws a subclass of
// std::runtime_error. // std::runtime_error.
...@@ -65,21 +63,21 @@ TEST(Test, Test) { ...@@ -65,21 +63,21 @@ TEST(Test, Test) {
// A successful assertion shouldn't throw. // A successful assertion shouldn't throw.
try { try {
EXPECT_EQ(3, 3); EXPECT_EQ(3, 3);
} catch(...) { } catch (...) {
Fail("A successful assertion wrongfully threw."); Fail("A successful assertion wrongfully threw.");
} }
// A successful assertion shouldn't throw. // A successful assertion shouldn't throw.
try { try {
EXPECT_EQ(3, 4); EXPECT_EQ(3, 4);
} catch(...) { } catch (...) {
Fail("A failed non-fatal assertion wrongfully threw."); Fail("A failed non-fatal assertion wrongfully threw.");
} }
// A failed assertion should throw. // A failed assertion should throw.
try { try {
AssertFalse(); AssertFalse();
} catch(const testing::AssertionException& e) { } catch (const testing::AssertionException& e) {
if (strstr(e.what(), "Expected failure") != nullptr) throw; if (strstr(e.what(), "Expected failure") != nullptr) throw;
printf("%s", printf("%s",
...@@ -87,7 +85,7 @@ TEST(Test, Test) { ...@@ -87,7 +85,7 @@ TEST(Test, Test) {
"but the message is incorrect. Instead of containing \"Expected " "but the message is incorrect. Instead of containing \"Expected "
"failure\", it is:\n"); "failure\", it is:\n");
Fail(e.what()); Fail(e.what());
} catch(...) { } catch (...) {
Fail("A failed assertion threw the wrong type of exception."); Fail("A failed assertion threw the wrong type of exception.");
} }
Fail("A failed assertion should've thrown but didn't."); Fail("A failed assertion should've thrown but didn't.");
...@@ -95,9 +93,7 @@ TEST(Test, Test) { ...@@ -95,9 +93,7 @@ TEST(Test, Test) {
int kTestForContinuingTest = 0; int kTestForContinuingTest = 0;
TEST(Test, Test2) { TEST(Test, Test2) { kTestForContinuingTest = 1; }
kTestForContinuingTest = 1;
}
int main(int argc, char** argv) { int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
......
...@@ -30,16 +30,15 @@ ...@@ -30,16 +30,15 @@
// //
// Tests using global test environments. // Tests using global test environments.
#include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "src/gtest-internal-inl.h" #include "src/gtest-internal-inl.h"
namespace { namespace {
enum FailureType { enum FailureType { NO_FAILURE, NON_FATAL_FAILURE, FATAL_FAILURE };
NO_FAILURE, NON_FATAL_FAILURE, FATAL_FAILURE
};
// For testing using global test environments. // For testing using global test environments.
class MyEnvironment : public testing::Environment { class MyEnvironment : public testing::Environment {
...@@ -79,9 +78,7 @@ class MyEnvironment : public testing::Environment { ...@@ -79,9 +78,7 @@ class MyEnvironment : public testing::Environment {
// We call this function to set the type of failure SetUp() should // We call this function to set the type of failure SetUp() should
// generate. // generate.
void set_failure_in_set_up(FailureType type) { void set_failure_in_set_up(FailureType type) { failure_in_set_up_ = type; }
failure_in_set_up_ = type;
}
// Was SetUp() run? // Was SetUp() run?
bool set_up_was_run() const { return set_up_was_run_; } bool set_up_was_run() const { return set_up_was_run_; }
...@@ -100,9 +97,7 @@ bool test_was_run; ...@@ -100,9 +97,7 @@ bool test_was_run;
// The sole purpose of this TEST is to enable us to check whether it // The sole purpose of this TEST is to enable us to check whether it
// was run. // was run.
TEST(FooTest, Bar) { TEST(FooTest, Bar) { test_was_run = true; }
test_was_run = true;
}
// Prints the message and aborts the program if condition is false. // Prints the message and aborts the program if condition is false.
void Check(bool condition, const char* msg) { void Check(bool condition, const char* msg) {
...@@ -126,7 +121,7 @@ int RunAllTests(MyEnvironment* env, FailureType failure) { ...@@ -126,7 +121,7 @@ int RunAllTests(MyEnvironment* env, FailureType failure) {
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
// Registers a global test environment, and verifies that the // Registers a global test environment, and verifies that the
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This program is meant to be run by gtest_help_test.py. Do not run // This program is meant to be run by gtest_help_test.py. Do not run
// it directly. // it directly.
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "gtest/gtest.h" #include "gtest/gtest.h"
// Tests that we don't have to define main() when we link to // Tests that we don't have to define main() when we link to
...@@ -35,8 +34,7 @@ ...@@ -35,8 +34,7 @@
namespace { namespace {
TEST(GTestMainTest, ShouldSucceed) { TEST(GTestMainTest, ShouldSucceed) {}
}
} // namespace } // namespace
......
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
#include <iostream> #include <iostream>
#include "gtest/gtest.h"
#include "gtest/gtest-spi.h" #include "gtest/gtest-spi.h"
#include "gtest/gtest.h"
// A user-defined data type. // A user-defined data type.
struct Bool { struct Bool {
...@@ -77,12 +77,8 @@ bool PredFunction1(T1 v1) { ...@@ -77,12 +77,8 @@ bool PredFunction1(T1 v1) {
// The following two functions are needed because a compiler doesn't have // The following two functions are needed because a compiler doesn't have
// a context yet to know which template function must be instantiated. // a context yet to know which template function must be instantiated.
bool PredFunction1Int(int v1) { bool PredFunction1Int(int v1) { return v1 > 0; }
return v1 > 0; bool PredFunction1Bool(Bool v1) { return v1 > 0; }
}
bool PredFunction1Bool(Bool v1) {
return v1 > 0;
}
// A unary predicate functor. // A unary predicate functor.
struct PredFunctor1 { struct PredFunctor1 {
...@@ -94,22 +90,17 @@ struct PredFunctor1 { ...@@ -94,22 +90,17 @@ struct PredFunctor1 {
// A unary predicate-formatter function. // A unary predicate-formatter function.
template <typename T1> template <typename T1>
testing::AssertionResult PredFormatFunction1(const char* e1, testing::AssertionResult PredFormatFunction1(const char* e1, const T1& v1) {
const T1& v1) { if (PredFunction1(v1)) return testing::AssertionSuccess();
if (PredFunction1(v1))
return testing::AssertionSuccess();
return testing::AssertionFailure() return testing::AssertionFailure()
<< e1 << e1 << " is expected to be positive, but evaluates to " << v1 << ".";
<< " is expected to be positive, but evaluates to "
<< v1 << ".";
} }
// A unary predicate-formatter functor. // A unary predicate-formatter functor.
struct PredFormatFunctor1 { struct PredFormatFunctor1 {
template <typename T1> template <typename T1>
testing::AssertionResult operator()(const char* e1, testing::AssertionResult operator()(const char* e1, const T1& v1) const {
const T1& v1) const {
return PredFormatFunction1(e1, v1); return PredFormatFunction1(e1, v1);
} }
}; };
...@@ -127,9 +118,8 @@ class Predicate1Test : public testing::Test { ...@@ -127,9 +118,8 @@ class Predicate1Test : public testing::Test {
void TearDown() override { void TearDown() override {
// Verifies that each of the predicate's arguments was evaluated // Verifies that each of the predicate's arguments was evaluated
// exactly once. // exactly once.
EXPECT_EQ(1, n1_) << EXPECT_EQ(1, n1_) << "The predicate assertion didn't evaluate argument 2 "
"The predicate assertion didn't evaluate argument 2 " "exactly once.";
"exactly once.";
// Verifies that the control flow in the test function is expected. // Verifies that the control flow in the test function is expected.
if (expected_to_finish_ && !finished_) { if (expected_to_finish_ && !finished_) {
...@@ -161,104 +151,100 @@ typedef Predicate1Test ASSERT_PRED1Test; ...@@ -161,104 +151,100 @@ typedef Predicate1Test ASSERT_PRED1Test;
// Tests a successful EXPECT_PRED1 where the // Tests a successful EXPECT_PRED1 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED1(PredFunction1Int, EXPECT_PRED1(PredFunction1Int, ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED1 where the // Tests a successful EXPECT_PRED1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED1Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED1Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED1(PredFunction1Bool, EXPECT_PRED1(PredFunction1Bool, Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED1 where the // Tests a successful EXPECT_PRED1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED1(PredFunctor1(), EXPECT_PRED1(PredFunctor1(), ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED1 where the // Tests a successful EXPECT_PRED1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED1Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED1Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED1(PredFunctor1(), EXPECT_PRED1(PredFunctor1(), Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED1 where the // Tests a failed EXPECT_PRED1 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED1(PredFunction1Int, { // NOLINT
n1_++); EXPECT_PRED1(PredFunction1Int, n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed EXPECT_PRED1 where the // Tests a failed EXPECT_PRED1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED1Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED1Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED1(PredFunction1Bool, { // NOLINT
Bool(n1_++)); EXPECT_PRED1(PredFunction1Bool, Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed EXPECT_PRED1 where the // Tests a failed EXPECT_PRED1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED1(PredFunctor1(), { // NOLINT
n1_++); EXPECT_PRED1(PredFunctor1(), n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed EXPECT_PRED1 where the // Tests a failed EXPECT_PRED1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED1Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED1Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED1(PredFunctor1(), { // NOLINT
Bool(n1_++)); EXPECT_PRED1(PredFunctor1(), Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a successful ASSERT_PRED1 where the // Tests a successful ASSERT_PRED1 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED1(PredFunction1Int, ASSERT_PRED1(PredFunction1Int, ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED1 where the // Tests a successful ASSERT_PRED1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED1Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED1Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED1(PredFunction1Bool, ASSERT_PRED1(PredFunction1Bool, Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED1 where the // Tests a successful ASSERT_PRED1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED1(PredFunctor1(), ASSERT_PRED1(PredFunctor1(), ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED1 where the // Tests a successful ASSERT_PRED1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED1(PredFunctor1(), ASSERT_PRED1(PredFunctor1(), Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
...@@ -266,147 +252,147 @@ TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeSuccess) { ...@@ -266,147 +252,147 @@ TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED1(PredFunction1Int, { // NOLINT
n1_++); ASSERT_PRED1(PredFunction1Int, n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed ASSERT_PRED1 where the // Tests a failed ASSERT_PRED1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED1Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED1Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED1(PredFunction1Bool, { // NOLINT
Bool(n1_++)); ASSERT_PRED1(PredFunction1Bool, Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed ASSERT_PRED1 where the // Tests a failed ASSERT_PRED1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED1(PredFunctor1(), { // NOLINT
n1_++); ASSERT_PRED1(PredFunctor1(), n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed ASSERT_PRED1 where the // Tests a failed ASSERT_PRED1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED1(PredFunctor1(), { // NOLINT
Bool(n1_++)); ASSERT_PRED1(PredFunctor1(), Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a successful EXPECT_PRED_FORMAT1 where the // Tests a successful EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT1(PredFormatFunction1, EXPECT_PRED_FORMAT1(PredFormatFunction1, ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT1 where the // Tests a successful EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED_FORMAT1(PredFormatFunction1, EXPECT_PRED_FORMAT1(PredFormatFunction1, Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT1 where the // Tests a successful EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT1(PredFormatFunctor1(), EXPECT_PRED_FORMAT1(PredFormatFunctor1(), ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT1 where the // Tests a successful EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED_FORMAT1(PredFormatFunctor1(), EXPECT_PRED_FORMAT1(PredFormatFunctor1(), Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED_FORMAT1 where the // Tests a failed EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT1(PredFormatFunction1, { // NOLINT
n1_++); EXPECT_PRED_FORMAT1(PredFormatFunction1, n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed EXPECT_PRED_FORMAT1 where the // Tests a failed EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT1(PredFormatFunction1, { // NOLINT
Bool(n1_++)); EXPECT_PRED_FORMAT1(PredFormatFunction1, Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed EXPECT_PRED_FORMAT1 where the // Tests a failed EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT1(PredFormatFunctor1(), { // NOLINT
n1_++); EXPECT_PRED_FORMAT1(PredFormatFunctor1(), n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed EXPECT_PRED_FORMAT1 where the // Tests a failed EXPECT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT1(PredFormatFunctor1(), { // NOLINT
Bool(n1_++)); EXPECT_PRED_FORMAT1(PredFormatFunctor1(), Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a successful ASSERT_PRED_FORMAT1 where the // Tests a successful ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT1(PredFormatFunction1, ASSERT_PRED_FORMAT1(PredFormatFunction1, ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT1 where the // Tests a successful ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED_FORMAT1(PredFormatFunction1, ASSERT_PRED_FORMAT1(PredFormatFunction1, Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT1 where the // Tests a successful ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT1(PredFormatFunctor1(), ASSERT_PRED_FORMAT1(PredFormatFunctor1(), ++n1_);
++n1_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT1 where the // Tests a successful ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED_FORMAT1(PredFormatFunctor1(), ASSERT_PRED_FORMAT1(PredFormatFunctor1(), Bool(++n1_));
Bool(++n1_));
finished_ = true; finished_ = true;
} }
...@@ -414,44 +400,48 @@ TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) { ...@@ -414,44 +400,48 @@ TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT1(PredFormatFunction1, { // NOLINT
n1_++); ASSERT_PRED_FORMAT1(PredFormatFunction1, n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed ASSERT_PRED_FORMAT1 where the // Tests a failed ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT1(PredFormatFunction1, { // NOLINT
Bool(n1_++)); ASSERT_PRED_FORMAT1(PredFormatFunction1, Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed ASSERT_PRED_FORMAT1 where the // Tests a failed ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT1(PredFormatFunctor1(), { // NOLINT
n1_++); ASSERT_PRED_FORMAT1(PredFormatFunctor1(), n1_++);
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Tests a failed ASSERT_PRED_FORMAT1 where the // Tests a failed ASSERT_PRED_FORMAT1 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT1(PredFormatFunctor1(), { // NOLINT
Bool(n1_++)); ASSERT_PRED_FORMAT1(PredFormatFunctor1(), Bool(n1_++));
finished_ = true; finished_ = true;
}, ""); },
"");
} }
// Sample functions/functors for testing binary predicate assertions. // Sample functions/functors for testing binary predicate assertions.
...@@ -463,44 +453,33 @@ bool PredFunction2(T1 v1, T2 v2) { ...@@ -463,44 +453,33 @@ bool PredFunction2(T1 v1, T2 v2) {
// The following two functions are needed because a compiler doesn't have // The following two functions are needed because a compiler doesn't have
// a context yet to know which template function must be instantiated. // a context yet to know which template function must be instantiated.
bool PredFunction2Int(int v1, int v2) { bool PredFunction2Int(int v1, int v2) { return v1 + v2 > 0; }
return v1 + v2 > 0; bool PredFunction2Bool(Bool v1, Bool v2) { return v1 + v2 > 0; }
}
bool PredFunction2Bool(Bool v1, Bool v2) {
return v1 + v2 > 0;
}
// A binary predicate functor. // A binary predicate functor.
struct PredFunctor2 { struct PredFunctor2 {
template <typename T1, typename T2> template <typename T1, typename T2>
bool operator()(const T1& v1, bool operator()(const T1& v1, const T2& v2) {
const T2& v2) {
return v1 + v2 > 0; return v1 + v2 > 0;
} }
}; };
// A binary predicate-formatter function. // A binary predicate-formatter function.
template <typename T1, typename T2> template <typename T1, typename T2>
testing::AssertionResult PredFormatFunction2(const char* e1, testing::AssertionResult PredFormatFunction2(const char* e1, const char* e2,
const char* e2, const T1& v1, const T2& v2) {
const T1& v1, if (PredFunction2(v1, v2)) return testing::AssertionSuccess();
const T2& v2) {
if (PredFunction2(v1, v2))
return testing::AssertionSuccess();
return testing::AssertionFailure() return testing::AssertionFailure()
<< e1 << " + " << e2 << e1 << " + " << e2
<< " is expected to be positive, but evaluates to " << " is expected to be positive, but evaluates to " << v1 + v2 << ".";
<< v1 + v2 << ".";
} }
// A binary predicate-formatter functor. // A binary predicate-formatter functor.
struct PredFormatFunctor2 { struct PredFormatFunctor2 {
template <typename T1, typename T2> template <typename T1, typename T2>
testing::AssertionResult operator()(const char* e1, testing::AssertionResult operator()(const char* e1, const char* e2,
const char* e2, const T1& v1, const T2& v2) const {
const T1& v1,
const T2& v2) const {
return PredFormatFunction2(e1, e2, v1, v2); return PredFormatFunction2(e1, e2, v1, v2);
} }
}; };
...@@ -518,12 +497,10 @@ class Predicate2Test : public testing::Test { ...@@ -518,12 +497,10 @@ class Predicate2Test : public testing::Test {
void TearDown() override { void TearDown() override {
// Verifies that each of the predicate's arguments was evaluated // Verifies that each of the predicate's arguments was evaluated
// exactly once. // exactly once.
EXPECT_EQ(1, n1_) << EXPECT_EQ(1, n1_) << "The predicate assertion didn't evaluate argument 2 "
"The predicate assertion didn't evaluate argument 2 " "exactly once.";
"exactly once."; EXPECT_EQ(1, n2_) << "The predicate assertion didn't evaluate argument 3 "
EXPECT_EQ(1, n2_) << "exactly once.";
"The predicate assertion didn't evaluate argument 3 "
"exactly once.";
// Verifies that the control flow in the test function is expected. // Verifies that the control flow in the test function is expected.
if (expected_to_finish_ && !finished_) { if (expected_to_finish_ && !finished_) {
...@@ -557,116 +534,100 @@ typedef Predicate2Test ASSERT_PRED2Test; ...@@ -557,116 +534,100 @@ typedef Predicate2Test ASSERT_PRED2Test;
// Tests a successful EXPECT_PRED2 where the // Tests a successful EXPECT_PRED2 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED2(PredFunction2Int, EXPECT_PRED2(PredFunction2Int, ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED2 where the // Tests a successful EXPECT_PRED2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED2(PredFunction2Bool, EXPECT_PRED2(PredFunction2Bool, Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED2 where the // Tests a successful EXPECT_PRED2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED2(PredFunctor2(), EXPECT_PRED2(PredFunctor2(), ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED2 where the // Tests a successful EXPECT_PRED2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED2(PredFunctor2(), EXPECT_PRED2(PredFunctor2(), Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED2 where the // Tests a failed EXPECT_PRED2 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED2(PredFunction2Int, { // NOLINT
n1_++, EXPECT_PRED2(PredFunction2Int, n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED2 where the // Tests a failed EXPECT_PRED2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED2(PredFunction2Bool, { // NOLINT
Bool(n1_++), EXPECT_PRED2(PredFunction2Bool, Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED2 where the // Tests a failed EXPECT_PRED2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED2(PredFunctor2(), { // NOLINT
n1_++, EXPECT_PRED2(PredFunctor2(), n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED2 where the // Tests a failed EXPECT_PRED2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED2(PredFunctor2(), { // NOLINT
Bool(n1_++), EXPECT_PRED2(PredFunctor2(), Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a successful ASSERT_PRED2 where the // Tests a successful ASSERT_PRED2 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED2(PredFunction2Int, ASSERT_PRED2(PredFunction2Int, ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED2 where the // Tests a successful ASSERT_PRED2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED2(PredFunction2Bool, ASSERT_PRED2(PredFunction2Bool, Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED2 where the // Tests a successful ASSERT_PRED2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED2(PredFunctor2(), ASSERT_PRED2(PredFunctor2(), ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED2 where the // Tests a successful ASSERT_PRED2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED2(PredFunctor2(), ASSERT_PRED2(PredFunctor2(), Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
...@@ -674,163 +635,147 @@ TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) { ...@@ -674,163 +635,147 @@ TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED2(PredFunction2Int, { // NOLINT
n1_++, ASSERT_PRED2(PredFunction2Int, n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED2 where the // Tests a failed ASSERT_PRED2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED2(PredFunction2Bool, { // NOLINT
Bool(n1_++), ASSERT_PRED2(PredFunction2Bool, Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED2 where the // Tests a failed ASSERT_PRED2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED2(PredFunctor2(), { // NOLINT
n1_++, ASSERT_PRED2(PredFunctor2(), n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED2 where the // Tests a failed ASSERT_PRED2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED2(PredFunctor2(), { // NOLINT
Bool(n1_++), ASSERT_PRED2(PredFunctor2(), Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a successful EXPECT_PRED_FORMAT2 where the // Tests a successful EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT2(PredFormatFunction2, EXPECT_PRED_FORMAT2(PredFormatFunction2, ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT2 where the // Tests a successful EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED_FORMAT2(PredFormatFunction2, EXPECT_PRED_FORMAT2(PredFormatFunction2, Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT2 where the // Tests a successful EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT2(PredFormatFunctor2(), EXPECT_PRED_FORMAT2(PredFormatFunctor2(), ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT2 where the // Tests a successful EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED_FORMAT2(PredFormatFunctor2(), EXPECT_PRED_FORMAT2(PredFormatFunctor2(), Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED_FORMAT2 where the // Tests a failed EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT2(PredFormatFunction2, { // NOLINT
n1_++, EXPECT_PRED_FORMAT2(PredFormatFunction2, n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED_FORMAT2 where the // Tests a failed EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT2(PredFormatFunction2, { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT2(PredFormatFunction2, Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED_FORMAT2 where the // Tests a failed EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT2(PredFormatFunctor2(), { // NOLINT
n1_++, EXPECT_PRED_FORMAT2(PredFormatFunctor2(), n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED_FORMAT2 where the // Tests a failed EXPECT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT2(PredFormatFunctor2(), { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT2(PredFormatFunctor2(), Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a successful ASSERT_PRED_FORMAT2 where the // Tests a successful ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT2(PredFormatFunction2, ASSERT_PRED_FORMAT2(PredFormatFunction2, ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT2 where the // Tests a successful ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED_FORMAT2(PredFormatFunction2, ASSERT_PRED_FORMAT2(PredFormatFunction2, Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT2 where the // Tests a successful ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT2(PredFormatFunctor2(), ASSERT_PRED_FORMAT2(PredFormatFunctor2(), ++n1_, ++n2_);
++n1_,
++n2_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT2 where the // Tests a successful ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED_FORMAT2(PredFormatFunctor2(), ASSERT_PRED_FORMAT2(PredFormatFunctor2(), Bool(++n1_), Bool(++n2_));
Bool(++n1_),
Bool(++n2_));
finished_ = true; finished_ = true;
} }
...@@ -838,48 +783,48 @@ TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) { ...@@ -838,48 +783,48 @@ TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT2(PredFormatFunction2, { // NOLINT
n1_++, ASSERT_PRED_FORMAT2(PredFormatFunction2, n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED_FORMAT2 where the // Tests a failed ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT2(PredFormatFunction2, { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT2(PredFormatFunction2, Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED_FORMAT2 where the // Tests a failed ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT2(PredFormatFunctor2(), { // NOLINT
n1_++, ASSERT_PRED_FORMAT2(PredFormatFunctor2(), n1_++, n2_++);
n2_++); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED_FORMAT2 where the // Tests a failed ASSERT_PRED_FORMAT2 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT2(PredFormatFunctor2(), { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT2(PredFormatFunctor2(), Bool(n1_++), Bool(n2_++));
Bool(n2_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Sample functions/functors for testing ternary predicate assertions. // Sample functions/functors for testing ternary predicate assertions.
...@@ -891,49 +836,36 @@ bool PredFunction3(T1 v1, T2 v2, T3 v3) { ...@@ -891,49 +836,36 @@ bool PredFunction3(T1 v1, T2 v2, T3 v3) {
// The following two functions are needed because a compiler doesn't have // The following two functions are needed because a compiler doesn't have
// a context yet to know which template function must be instantiated. // a context yet to know which template function must be instantiated.
bool PredFunction3Int(int v1, int v2, int v3) { bool PredFunction3Int(int v1, int v2, int v3) { return v1 + v2 + v3 > 0; }
return v1 + v2 + v3 > 0; bool PredFunction3Bool(Bool v1, Bool v2, Bool v3) { return v1 + v2 + v3 > 0; }
}
bool PredFunction3Bool(Bool v1, Bool v2, Bool v3) {
return v1 + v2 + v3 > 0;
}
// A ternary predicate functor. // A ternary predicate functor.
struct PredFunctor3 { struct PredFunctor3 {
template <typename T1, typename T2, typename T3> template <typename T1, typename T2, typename T3>
bool operator()(const T1& v1, bool operator()(const T1& v1, const T2& v2, const T3& v3) {
const T2& v2,
const T3& v3) {
return v1 + v2 + v3 > 0; return v1 + v2 + v3 > 0;
} }
}; };
// A ternary predicate-formatter function. // A ternary predicate-formatter function.
template <typename T1, typename T2, typename T3> template <typename T1, typename T2, typename T3>
testing::AssertionResult PredFormatFunction3(const char* e1, testing::AssertionResult PredFormatFunction3(const char* e1, const char* e2,
const char* e2, const char* e3, const T1& v1,
const char* e3, const T2& v2, const T3& v3) {
const T1& v1, if (PredFunction3(v1, v2, v3)) return testing::AssertionSuccess();
const T2& v2,
const T3& v3) {
if (PredFunction3(v1, v2, v3))
return testing::AssertionSuccess();
return testing::AssertionFailure() return testing::AssertionFailure()
<< e1 << " + " << e2 << " + " << e3 << e1 << " + " << e2 << " + " << e3
<< " is expected to be positive, but evaluates to " << " is expected to be positive, but evaluates to " << v1 + v2 + v3
<< v1 + v2 + v3 << "."; << ".";
} }
// A ternary predicate-formatter functor. // A ternary predicate-formatter functor.
struct PredFormatFunctor3 { struct PredFormatFunctor3 {
template <typename T1, typename T2, typename T3> template <typename T1, typename T2, typename T3>
testing::AssertionResult operator()(const char* e1, testing::AssertionResult operator()(const char* e1, const char* e2,
const char* e2, const char* e3, const T1& v1,
const char* e3, const T2& v2, const T3& v3) const {
const T1& v1,
const T2& v2,
const T3& v3) const {
return PredFormatFunction3(e1, e2, e3, v1, v2, v3); return PredFormatFunction3(e1, e2, e3, v1, v2, v3);
} }
}; };
...@@ -951,15 +883,12 @@ class Predicate3Test : public testing::Test { ...@@ -951,15 +883,12 @@ class Predicate3Test : public testing::Test {
void TearDown() override { void TearDown() override {
// Verifies that each of the predicate's arguments was evaluated // Verifies that each of the predicate's arguments was evaluated
// exactly once. // exactly once.
EXPECT_EQ(1, n1_) << EXPECT_EQ(1, n1_) << "The predicate assertion didn't evaluate argument 2 "
"The predicate assertion didn't evaluate argument 2 " "exactly once.";
"exactly once."; EXPECT_EQ(1, n2_) << "The predicate assertion didn't evaluate argument 3 "
EXPECT_EQ(1, n2_) << "exactly once.";
"The predicate assertion didn't evaluate argument 3 " EXPECT_EQ(1, n3_) << "The predicate assertion didn't evaluate argument 4 "
"exactly once."; "exactly once.";
EXPECT_EQ(1, n3_) <<
"The predicate assertion didn't evaluate argument 4 "
"exactly once.";
// Verifies that the control flow in the test function is expected. // Verifies that the control flow in the test function is expected.
if (expected_to_finish_ && !finished_) { if (expected_to_finish_ && !finished_) {
...@@ -995,128 +924,100 @@ typedef Predicate3Test ASSERT_PRED3Test; ...@@ -995,128 +924,100 @@ typedef Predicate3Test ASSERT_PRED3Test;
// Tests a successful EXPECT_PRED3 where the // Tests a successful EXPECT_PRED3 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED3(PredFunction3Int, EXPECT_PRED3(PredFunction3Int, ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED3 where the // Tests a successful EXPECT_PRED3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED3(PredFunction3Bool, EXPECT_PRED3(PredFunction3Bool, Bool(++n1_), Bool(++n2_), Bool(++n3_));
Bool(++n1_),
Bool(++n2_),
Bool(++n3_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED3 where the // Tests a successful EXPECT_PRED3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED3(PredFunctor3(), EXPECT_PRED3(PredFunctor3(), ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED3 where the // Tests a successful EXPECT_PRED3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED3(PredFunctor3(), EXPECT_PRED3(PredFunctor3(), Bool(++n1_), Bool(++n2_), Bool(++n3_));
Bool(++n1_),
Bool(++n2_),
Bool(++n3_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED3 where the // Tests a failed EXPECT_PRED3 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED3(PredFunction3Int, { // NOLINT
n1_++, EXPECT_PRED3(PredFunction3Int, n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED3 where the // Tests a failed EXPECT_PRED3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED3(PredFunction3Bool, { // NOLINT
Bool(n1_++), EXPECT_PRED3(PredFunction3Bool, Bool(n1_++), Bool(n2_++), Bool(n3_++));
Bool(n2_++), finished_ = true;
Bool(n3_++)); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED3 where the // Tests a failed EXPECT_PRED3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED3(PredFunctor3(), { // NOLINT
n1_++, EXPECT_PRED3(PredFunctor3(), n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED3 where the // Tests a failed EXPECT_PRED3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED3(PredFunctor3(), { // NOLINT
Bool(n1_++), EXPECT_PRED3(PredFunctor3(), Bool(n1_++), Bool(n2_++), Bool(n3_++));
Bool(n2_++), finished_ = true;
Bool(n3_++)); },
finished_ = true; "");
}, "");
} }
// Tests a successful ASSERT_PRED3 where the // Tests a successful ASSERT_PRED3 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED3(PredFunction3Int, ASSERT_PRED3(PredFunction3Int, ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED3 where the // Tests a successful ASSERT_PRED3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED3(PredFunction3Bool, ASSERT_PRED3(PredFunction3Bool, Bool(++n1_), Bool(++n2_), Bool(++n3_));
Bool(++n1_),
Bool(++n2_),
Bool(++n3_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED3 where the // Tests a successful ASSERT_PRED3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED3(PredFunctor3(), ASSERT_PRED3(PredFunctor3(), ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED3 where the // Tests a successful ASSERT_PRED3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED3(PredFunctor3(), ASSERT_PRED3(PredFunctor3(), Bool(++n1_), Bool(++n2_), Bool(++n3_));
Bool(++n1_),
Bool(++n2_),
Bool(++n3_));
finished_ = true; finished_ = true;
} }
...@@ -1124,70 +1025,61 @@ TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) { ...@@ -1124,70 +1025,61 @@ TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED3(PredFunction3Int, { // NOLINT
n1_++, ASSERT_PRED3(PredFunction3Int, n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED3 where the // Tests a failed ASSERT_PRED3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED3(PredFunction3Bool, { // NOLINT
Bool(n1_++), ASSERT_PRED3(PredFunction3Bool, Bool(n1_++), Bool(n2_++), Bool(n3_++));
Bool(n2_++), finished_ = true;
Bool(n3_++)); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED3 where the // Tests a failed ASSERT_PRED3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED3(PredFunctor3(), { // NOLINT
n1_++, ASSERT_PRED3(PredFunctor3(), n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED3 where the // Tests a failed ASSERT_PRED3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED3(PredFunctor3(), { // NOLINT
Bool(n1_++), ASSERT_PRED3(PredFunctor3(), Bool(n1_++), Bool(n2_++), Bool(n3_++));
Bool(n2_++), finished_ = true;
Bool(n3_++)); },
finished_ = true; "");
}, "");
} }
// Tests a successful EXPECT_PRED_FORMAT3 where the // Tests a successful EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT3(PredFormatFunction3, EXPECT_PRED_FORMAT3(PredFormatFunction3, ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT3 where the // Tests a successful EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED_FORMAT3(PredFormatFunction3, EXPECT_PRED_FORMAT3(PredFormatFunction3, Bool(++n1_), Bool(++n2_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_)); Bool(++n3_));
finished_ = true; finished_ = true;
} }
...@@ -1195,19 +1087,14 @@ TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) { ...@@ -1195,19 +1087,14 @@ TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
// Tests a successful EXPECT_PRED_FORMAT3 where the // Tests a successful EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT3(PredFormatFunctor3(), EXPECT_PRED_FORMAT3(PredFormatFunctor3(), ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT3 where the // Tests a successful EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED_FORMAT3(PredFormatFunctor3(), EXPECT_PRED_FORMAT3(PredFormatFunctor3(), Bool(++n1_), Bool(++n2_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_)); Bool(++n3_));
finished_ = true; finished_ = true;
} }
...@@ -1215,67 +1102,60 @@ TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) { ...@@ -1215,67 +1102,60 @@ TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
// Tests a failed EXPECT_PRED_FORMAT3 where the // Tests a failed EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT3(PredFormatFunction3, { // NOLINT
n1_++, EXPECT_PRED_FORMAT3(PredFormatFunction3, n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT3 where the // Tests a failed EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT3(PredFormatFunction3, { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT3(PredFormatFunction3, Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++));
Bool(n3_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed EXPECT_PRED_FORMAT3 where the // Tests a failed EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT3(PredFormatFunctor3(), { // NOLINT
n1_++, EXPECT_PRED_FORMAT3(PredFormatFunctor3(), n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT3 where the // Tests a failed EXPECT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT3(PredFormatFunctor3(), { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT3(PredFormatFunctor3(), Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++));
Bool(n3_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a successful ASSERT_PRED_FORMAT3 where the // Tests a successful ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT3(PredFormatFunction3, ASSERT_PRED_FORMAT3(PredFormatFunction3, ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT3 where the // Tests a successful ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED_FORMAT3(PredFormatFunction3, ASSERT_PRED_FORMAT3(PredFormatFunction3, Bool(++n1_), Bool(++n2_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_)); Bool(++n3_));
finished_ = true; finished_ = true;
} }
...@@ -1283,19 +1163,14 @@ TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) { ...@@ -1283,19 +1163,14 @@ TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
// Tests a successful ASSERT_PRED_FORMAT3 where the // Tests a successful ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT3(PredFormatFunctor3(), ASSERT_PRED_FORMAT3(PredFormatFunctor3(), ++n1_, ++n2_, ++n3_);
++n1_,
++n2_,
++n3_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT3 where the // Tests a successful ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED_FORMAT3(PredFormatFunctor3(), ASSERT_PRED_FORMAT3(PredFormatFunctor3(), Bool(++n1_), Bool(++n2_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_)); Bool(++n3_));
finished_ = true; finished_ = true;
} }
...@@ -1304,52 +1179,50 @@ TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) { ...@@ -1304,52 +1179,50 @@ TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT3(PredFormatFunction3, { // NOLINT
n1_++, ASSERT_PRED_FORMAT3(PredFormatFunction3, n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT3 where the // Tests a failed ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT3(PredFormatFunction3, { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT3(PredFormatFunction3, Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++));
Bool(n3_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Tests a failed ASSERT_PRED_FORMAT3 where the // Tests a failed ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT3(PredFormatFunctor3(), { // NOLINT
n1_++, ASSERT_PRED_FORMAT3(PredFormatFunctor3(), n1_++, n2_++, n3_++);
n2_++, finished_ = true;
n3_++); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT3 where the // Tests a failed ASSERT_PRED_FORMAT3 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT3(PredFormatFunctor3(), { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT3(PredFormatFunctor3(), Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++));
Bool(n3_++)); finished_ = true;
finished_ = true; },
}, ""); "");
} }
// Sample functions/functors for testing 4-ary predicate assertions. // Sample functions/functors for testing 4-ary predicate assertions.
...@@ -1371,43 +1244,31 @@ bool PredFunction4Bool(Bool v1, Bool v2, Bool v3, Bool v4) { ...@@ -1371,43 +1244,31 @@ bool PredFunction4Bool(Bool v1, Bool v2, Bool v3, Bool v4) {
// A 4-ary predicate functor. // A 4-ary predicate functor.
struct PredFunctor4 { struct PredFunctor4 {
template <typename T1, typename T2, typename T3, typename T4> template <typename T1, typename T2, typename T3, typename T4>
bool operator()(const T1& v1, bool operator()(const T1& v1, const T2& v2, const T3& v3, const T4& v4) {
const T2& v2,
const T3& v3,
const T4& v4) {
return v1 + v2 + v3 + v4 > 0; return v1 + v2 + v3 + v4 > 0;
} }
}; };
// A 4-ary predicate-formatter function. // A 4-ary predicate-formatter function.
template <typename T1, typename T2, typename T3, typename T4> template <typename T1, typename T2, typename T3, typename T4>
testing::AssertionResult PredFormatFunction4(const char* e1, testing::AssertionResult PredFormatFunction4(const char* e1, const char* e2,
const char* e2, const char* e3, const char* e4,
const char* e3, const T1& v1, const T2& v2,
const char* e4, const T3& v3, const T4& v4) {
const T1& v1, if (PredFunction4(v1, v2, v3, v4)) return testing::AssertionSuccess();
const T2& v2,
const T3& v3,
const T4& v4) {
if (PredFunction4(v1, v2, v3, v4))
return testing::AssertionSuccess();
return testing::AssertionFailure() return testing::AssertionFailure()
<< e1 << " + " << e2 << " + " << e3 << " + " << e4 << e1 << " + " << e2 << " + " << e3 << " + " << e4
<< " is expected to be positive, but evaluates to " << " is expected to be positive, but evaluates to "
<< v1 + v2 + v3 + v4 << "."; << v1 + v2 + v3 + v4 << ".";
} }
// A 4-ary predicate-formatter functor. // A 4-ary predicate-formatter functor.
struct PredFormatFunctor4 { struct PredFormatFunctor4 {
template <typename T1, typename T2, typename T3, typename T4> template <typename T1, typename T2, typename T3, typename T4>
testing::AssertionResult operator()(const char* e1, testing::AssertionResult operator()(const char* e1, const char* e2,
const char* e2, const char* e3, const char* e4,
const char* e3, const T1& v1, const T2& v2, const T3& v3,
const char* e4,
const T1& v1,
const T2& v2,
const T3& v3,
const T4& v4) const { const T4& v4) const {
return PredFormatFunction4(e1, e2, e3, e4, v1, v2, v3, v4); return PredFormatFunction4(e1, e2, e3, e4, v1, v2, v3, v4);
} }
...@@ -1426,18 +1287,14 @@ class Predicate4Test : public testing::Test { ...@@ -1426,18 +1287,14 @@ class Predicate4Test : public testing::Test {
void TearDown() override { void TearDown() override {
// Verifies that each of the predicate's arguments was evaluated // Verifies that each of the predicate's arguments was evaluated
// exactly once. // exactly once.
EXPECT_EQ(1, n1_) << EXPECT_EQ(1, n1_) << "The predicate assertion didn't evaluate argument 2 "
"The predicate assertion didn't evaluate argument 2 " "exactly once.";
"exactly once."; EXPECT_EQ(1, n2_) << "The predicate assertion didn't evaluate argument 3 "
EXPECT_EQ(1, n2_) << "exactly once.";
"The predicate assertion didn't evaluate argument 3 " EXPECT_EQ(1, n3_) << "The predicate assertion didn't evaluate argument 4 "
"exactly once."; "exactly once.";
EXPECT_EQ(1, n3_) << EXPECT_EQ(1, n4_) << "The predicate assertion didn't evaluate argument 5 "
"The predicate assertion didn't evaluate argument 4 " "exactly once.";
"exactly once.";
EXPECT_EQ(1, n4_) <<
"The predicate assertion didn't evaluate argument 5 "
"exactly once.";
// Verifies that the control flow in the test function is expected. // Verifies that the control flow in the test function is expected.
if (expected_to_finish_ && !finished_) { if (expected_to_finish_ && !finished_) {
...@@ -1475,21 +1332,14 @@ typedef Predicate4Test ASSERT_PRED4Test; ...@@ -1475,21 +1332,14 @@ typedef Predicate4Test ASSERT_PRED4Test;
// Tests a successful EXPECT_PRED4 where the // Tests a successful EXPECT_PRED4 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED4(PredFunction4Int, EXPECT_PRED4(PredFunction4Int, ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED4 where the // Tests a successful EXPECT_PRED4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED4(PredFunction4Bool, EXPECT_PRED4(PredFunction4Bool, Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_),
Bool(++n4_)); Bool(++n4_));
finished_ = true; finished_ = true;
} }
...@@ -1497,21 +1347,14 @@ TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) { ...@@ -1497,21 +1347,14 @@ TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) {
// Tests a successful EXPECT_PRED4 where the // Tests a successful EXPECT_PRED4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED4(PredFunctor4(), EXPECT_PRED4(PredFunctor4(), ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED4 where the // Tests a successful EXPECT_PRED4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED4(PredFunctor4(), EXPECT_PRED4(PredFunctor4(), Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_),
Bool(++n4_)); Bool(++n4_));
finished_ = true; finished_ = true;
} }
...@@ -1519,73 +1362,60 @@ TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) { ...@@ -1519,73 +1362,60 @@ TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) {
// Tests a failed EXPECT_PRED4 where the // Tests a failed EXPECT_PRED4 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED4(PredFunction4Int, { // NOLINT
n1_++, EXPECT_PRED4(PredFunction4Int, n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED4 where the // Tests a failed EXPECT_PRED4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED4(PredFunction4Bool, { // NOLINT
Bool(n1_++), EXPECT_PRED4(PredFunction4Bool, Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED4 where the // Tests a failed EXPECT_PRED4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED4(PredFunctor4(), { // NOLINT
n1_++, EXPECT_PRED4(PredFunctor4(), n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED4 where the // Tests a failed EXPECT_PRED4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED4(PredFunctor4(), { // NOLINT
Bool(n1_++), EXPECT_PRED4(PredFunctor4(), Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a successful ASSERT_PRED4 where the // Tests a successful ASSERT_PRED4 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED4(PredFunction4Int, ASSERT_PRED4(PredFunction4Int, ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED4 where the // Tests a successful ASSERT_PRED4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED4(PredFunction4Bool, ASSERT_PRED4(PredFunction4Bool, Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_),
Bool(++n4_)); Bool(++n4_));
finished_ = true; finished_ = true;
} }
...@@ -1593,21 +1423,14 @@ TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) { ...@@ -1593,21 +1423,14 @@ TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) {
// Tests a successful ASSERT_PRED4 where the // Tests a successful ASSERT_PRED4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED4(PredFunctor4(), ASSERT_PRED4(PredFunctor4(), ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED4 where the // Tests a successful ASSERT_PRED4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED4(PredFunctor4(), ASSERT_PRED4(PredFunctor4(), Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_),
Bool(++n2_),
Bool(++n3_),
Bool(++n4_)); Bool(++n4_));
finished_ = true; finished_ = true;
} }
...@@ -1616,195 +1439,155 @@ TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) { ...@@ -1616,195 +1439,155 @@ TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED4(PredFunction4Int, { // NOLINT
n1_++, ASSERT_PRED4(PredFunction4Int, n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED4 where the // Tests a failed ASSERT_PRED4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED4(PredFunction4Bool, { // NOLINT
Bool(n1_++), ASSERT_PRED4(PredFunction4Bool, Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED4 where the // Tests a failed ASSERT_PRED4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED4(PredFunctor4(), { // NOLINT
n1_++, ASSERT_PRED4(PredFunctor4(), n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED4 where the // Tests a failed ASSERT_PRED4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED4(PredFunctor4(), { // NOLINT
Bool(n1_++), ASSERT_PRED4(PredFunctor4(), Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a successful EXPECT_PRED_FORMAT4 where the // Tests a successful EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT4(PredFormatFunction4, EXPECT_PRED_FORMAT4(PredFormatFunction4, ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT4 where the // Tests a successful EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED_FORMAT4(PredFormatFunction4, EXPECT_PRED_FORMAT4(PredFormatFunction4, Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT4 where the // Tests a successful EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT4(PredFormatFunctor4(), EXPECT_PRED_FORMAT4(PredFormatFunctor4(), ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT4 where the // Tests a successful EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED_FORMAT4(PredFormatFunctor4(), EXPECT_PRED_FORMAT4(PredFormatFunctor4(), Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED_FORMAT4 where the // Tests a failed EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT4(PredFormatFunction4, { // NOLINT
n1_++, EXPECT_PRED_FORMAT4(PredFormatFunction4, n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT4 where the // Tests a failed EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT4(PredFormatFunction4, { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT4(PredFormatFunction4, Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT4 where the // Tests a failed EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT4(PredFormatFunctor4(), { // NOLINT
n1_++, EXPECT_PRED_FORMAT4(PredFormatFunctor4(), n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT4 where the // Tests a failed EXPECT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT4(PredFormatFunctor4(), { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT4(PredFormatFunctor4(), Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a successful ASSERT_PRED_FORMAT4 where the // Tests a successful ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT4(PredFormatFunction4, ASSERT_PRED_FORMAT4(PredFormatFunction4, ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT4 where the // Tests a successful ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED_FORMAT4(PredFormatFunction4, ASSERT_PRED_FORMAT4(PredFormatFunction4, Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT4 where the // Tests a successful ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT4(PredFormatFunctor4(), ASSERT_PRED_FORMAT4(PredFormatFunctor4(), ++n1_, ++n2_, ++n3_, ++n4_);
++n1_,
++n2_,
++n3_,
++n4_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT4 where the // Tests a successful ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED_FORMAT4(PredFormatFunctor4(), ASSERT_PRED_FORMAT4(PredFormatFunctor4(), Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_));
finished_ = true; finished_ = true;
} }
...@@ -1812,56 +1595,50 @@ TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) { ...@@ -1812,56 +1595,50 @@ TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT4(PredFormatFunction4, { // NOLINT
n1_++, ASSERT_PRED_FORMAT4(PredFormatFunction4, n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT4 where the // Tests a failed ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT4(PredFormatFunction4, { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT4(PredFormatFunction4, Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT4 where the // Tests a failed ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT4(PredFormatFunctor4(), { // NOLINT
n1_++, ASSERT_PRED_FORMAT4(PredFormatFunctor4(), n1_++, n2_++, n3_++, n4_++);
n2_++, finished_ = true;
n3_++, },
n4_++); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT4 where the // Tests a failed ASSERT_PRED_FORMAT4 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT4(PredFormatFunctor4(), { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT4(PredFormatFunctor4(), Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++));
Bool(n3_++), finished_ = true;
Bool(n4_++)); },
finished_ = true; "");
}, "");
} }
// Sample functions/functors for testing 5-ary predicate assertions. // Sample functions/functors for testing 5-ary predicate assertions.
...@@ -1883,10 +1660,7 @@ bool PredFunction5Bool(Bool v1, Bool v2, Bool v3, Bool v4, Bool v5) { ...@@ -1883,10 +1660,7 @@ bool PredFunction5Bool(Bool v1, Bool v2, Bool v3, Bool v4, Bool v5) {
// A 5-ary predicate functor. // A 5-ary predicate functor.
struct PredFunctor5 { struct PredFunctor5 {
template <typename T1, typename T2, typename T3, typename T4, typename T5> template <typename T1, typename T2, typename T3, typename T4, typename T5>
bool operator()(const T1& v1, bool operator()(const T1& v1, const T2& v2, const T3& v3, const T4& v4,
const T2& v2,
const T3& v3,
const T4& v4,
const T5& v5) { const T5& v5) {
return v1 + v2 + v3 + v4 + v5 > 0; return v1 + v2 + v3 + v4 + v5 > 0;
} }
...@@ -1894,37 +1668,26 @@ struct PredFunctor5 { ...@@ -1894,37 +1668,26 @@ struct PredFunctor5 {
// A 5-ary predicate-formatter function. // A 5-ary predicate-formatter function.
template <typename T1, typename T2, typename T3, typename T4, typename T5> template <typename T1, typename T2, typename T3, typename T4, typename T5>
testing::AssertionResult PredFormatFunction5(const char* e1, testing::AssertionResult PredFormatFunction5(const char* e1, const char* e2,
const char* e2, const char* e3, const char* e4,
const char* e3, const char* e5, const T1& v1,
const char* e4, const T2& v2, const T3& v3,
const char* e5, const T4& v4, const T5& v5) {
const T1& v1, if (PredFunction5(v1, v2, v3, v4, v5)) return testing::AssertionSuccess();
const T2& v2,
const T3& v3,
const T4& v4,
const T5& v5) {
if (PredFunction5(v1, v2, v3, v4, v5))
return testing::AssertionSuccess();
return testing::AssertionFailure() return testing::AssertionFailure()
<< e1 << " + " << e2 << " + " << e3 << " + " << e4 << " + " << e5 << e1 << " + " << e2 << " + " << e3 << " + " << e4 << " + " << e5
<< " is expected to be positive, but evaluates to " << " is expected to be positive, but evaluates to "
<< v1 + v2 + v3 + v4 + v5 << "."; << v1 + v2 + v3 + v4 + v5 << ".";
} }
// A 5-ary predicate-formatter functor. // A 5-ary predicate-formatter functor.
struct PredFormatFunctor5 { struct PredFormatFunctor5 {
template <typename T1, typename T2, typename T3, typename T4, typename T5> template <typename T1, typename T2, typename T3, typename T4, typename T5>
testing::AssertionResult operator()(const char* e1, testing::AssertionResult operator()(const char* e1, const char* e2,
const char* e2, const char* e3, const char* e4,
const char* e3, const char* e5, const T1& v1,
const char* e4, const T2& v2, const T3& v3, const T4& v4,
const char* e5,
const T1& v1,
const T2& v2,
const T3& v3,
const T4& v4,
const T5& v5) const { const T5& v5) const {
return PredFormatFunction5(e1, e2, e3, e4, e5, v1, v2, v3, v4, v5); return PredFormatFunction5(e1, e2, e3, e4, e5, v1, v2, v3, v4, v5);
} }
...@@ -1943,21 +1706,16 @@ class Predicate5Test : public testing::Test { ...@@ -1943,21 +1706,16 @@ class Predicate5Test : public testing::Test {
void TearDown() override { void TearDown() override {
// Verifies that each of the predicate's arguments was evaluated // Verifies that each of the predicate's arguments was evaluated
// exactly once. // exactly once.
EXPECT_EQ(1, n1_) << EXPECT_EQ(1, n1_) << "The predicate assertion didn't evaluate argument 2 "
"The predicate assertion didn't evaluate argument 2 " "exactly once.";
"exactly once."; EXPECT_EQ(1, n2_) << "The predicate assertion didn't evaluate argument 3 "
EXPECT_EQ(1, n2_) << "exactly once.";
"The predicate assertion didn't evaluate argument 3 " EXPECT_EQ(1, n3_) << "The predicate assertion didn't evaluate argument 4 "
"exactly once."; "exactly once.";
EXPECT_EQ(1, n3_) << EXPECT_EQ(1, n4_) << "The predicate assertion didn't evaluate argument 5 "
"The predicate assertion didn't evaluate argument 4 " "exactly once.";
"exactly once."; EXPECT_EQ(1, n5_) << "The predicate assertion didn't evaluate argument 6 "
EXPECT_EQ(1, n4_) << "exactly once.";
"The predicate assertion didn't evaluate argument 5 "
"exactly once.";
EXPECT_EQ(1, n5_) <<
"The predicate assertion didn't evaluate argument 6 "
"exactly once.";
// Verifies that the control flow in the test function is expected. // Verifies that the control flow in the test function is expected.
if (expected_to_finish_ && !finished_) { if (expected_to_finish_ && !finished_) {
...@@ -1997,152 +1755,106 @@ typedef Predicate5Test ASSERT_PRED5Test; ...@@ -1997,152 +1755,106 @@ typedef Predicate5Test ASSERT_PRED5Test;
// Tests a successful EXPECT_PRED5 where the // Tests a successful EXPECT_PRED5 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED5(PredFunction5Int, EXPECT_PRED5(PredFunction5Int, ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED5 where the // Tests a successful EXPECT_PRED5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED5(PredFunction5Bool, EXPECT_PRED5(PredFunction5Bool, Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED5 where the // Tests a successful EXPECT_PRED5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED5(PredFunctor5(), EXPECT_PRED5(PredFunctor5(), ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED5 where the // Tests a successful EXPECT_PRED5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED5(PredFunctor5(), EXPECT_PRED5(PredFunctor5(), Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED5 where the // Tests a failed EXPECT_PRED5 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED5(PredFunction5Int, { // NOLINT
n1_++, EXPECT_PRED5(PredFunction5Int, n1_++, n2_++, n3_++, n4_++, n5_++);
n2_++, finished_ = true;
n3_++, },
n4_++, "");
n5_++);
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED5 where the // Tests a failed EXPECT_PRED5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED5(PredFunction5Bool, { // NOLINT
Bool(n1_++), EXPECT_PRED5(PredFunction5Bool, Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED5 where the // Tests a failed EXPECT_PRED5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED5(PredFunctor5(), { // NOLINT
n1_++, EXPECT_PRED5(PredFunctor5(), n1_++, n2_++, n3_++, n4_++, n5_++);
n2_++, finished_ = true;
n3_++, },
n4_++, "");
n5_++);
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED5 where the // Tests a failed EXPECT_PRED5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED5(PredFunctor5(), { // NOLINT
Bool(n1_++), EXPECT_PRED5(PredFunctor5(), Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a successful ASSERT_PRED5 where the // Tests a successful ASSERT_PRED5 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED5(PredFunction5Int, ASSERT_PRED5(PredFunction5Int, ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED5 where the // Tests a successful ASSERT_PRED5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED5(PredFunction5Bool, ASSERT_PRED5(PredFunction5Bool, Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED5 where the // Tests a successful ASSERT_PRED5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED5(PredFunctor5(), ASSERT_PRED5(PredFunctor5(), ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED5 where the // Tests a successful ASSERT_PRED5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED5(PredFunctor5(), ASSERT_PRED5(PredFunctor5(), Bool(++n1_), Bool(++n2_), Bool(++n3_),
Bool(++n1_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
...@@ -2150,211 +1862,157 @@ TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) { ...@@ -2150,211 +1862,157 @@ TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED5(PredFunction5Int, { // NOLINT
n1_++, ASSERT_PRED5(PredFunction5Int, n1_++, n2_++, n3_++, n4_++, n5_++);
n2_++, finished_ = true;
n3_++, },
n4_++, "");
n5_++);
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED5 where the // Tests a failed ASSERT_PRED5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED5(PredFunction5Bool, { // NOLINT
Bool(n1_++), ASSERT_PRED5(PredFunction5Bool, Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED5 where the // Tests a failed ASSERT_PRED5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED5(PredFunctor5(), { // NOLINT
n1_++, ASSERT_PRED5(PredFunctor5(), n1_++, n2_++, n3_++, n4_++, n5_++);
n2_++, finished_ = true;
n3_++, },
n4_++, "");
n5_++);
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED5 where the // Tests a failed ASSERT_PRED5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED5(PredFunctor5(), { // NOLINT
Bool(n1_++), ASSERT_PRED5(PredFunctor5(), Bool(n1_++), Bool(n2_++), Bool(n3_++),
Bool(n2_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a successful EXPECT_PRED_FORMAT5 where the // Tests a successful EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT5(PredFormatFunction5, EXPECT_PRED_FORMAT5(PredFormatFunction5, ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT5 where the // Tests a successful EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) {
EXPECT_PRED_FORMAT5(PredFormatFunction5, EXPECT_PRED_FORMAT5(PredFormatFunction5, Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT5 where the // Tests a successful EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) {
EXPECT_PRED_FORMAT5(PredFormatFunctor5(), EXPECT_PRED_FORMAT5(PredFormatFunctor5(), ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful EXPECT_PRED_FORMAT5 where the // Tests a successful EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
EXPECT_PRED_FORMAT5(PredFormatFunctor5(), EXPECT_PRED_FORMAT5(PredFormatFunctor5(), Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
// Tests a failed EXPECT_PRED_FORMAT5 where the // Tests a failed EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT5(PredFormatFunction5, { // NOLINT
n1_++, EXPECT_PRED_FORMAT5(PredFormatFunction5, n1_++, n2_++, n3_++, n4_++,
n2_++, n5_++);
n3_++, finished_ = true;
n4_++, },
n5_++); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT5 where the // Tests a failed EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT5(PredFormatFunction5, { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT5(PredFormatFunction5, Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT5 where the // Tests a failed EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT5(PredFormatFunctor5(), { // NOLINT
n1_++, EXPECT_PRED_FORMAT5(PredFormatFunctor5(), n1_++, n2_++, n3_++, n4_++,
n2_++, n5_++);
n3_++, finished_ = true;
n4_++, },
n5_++); "");
finished_ = true;
}, "");
} }
// Tests a failed EXPECT_PRED_FORMAT5 where the // Tests a failed EXPECT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) { TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) {
EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_NONFATAL_FAILURE(
EXPECT_PRED_FORMAT5(PredFormatFunctor5(), { // NOLINT
Bool(n1_++), EXPECT_PRED_FORMAT5(PredFormatFunctor5(), Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a successful ASSERT_PRED_FORMAT5 where the // Tests a successful ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT5(PredFormatFunction5, ASSERT_PRED_FORMAT5(PredFormatFunction5, ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT5 where the // Tests a successful ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) {
ASSERT_PRED_FORMAT5(PredFormatFunction5, ASSERT_PRED_FORMAT5(PredFormatFunction5, Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT5 where the // Tests a successful ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) {
ASSERT_PRED_FORMAT5(PredFormatFunctor5(), ASSERT_PRED_FORMAT5(PredFormatFunctor5(), ++n1_, ++n2_, ++n3_, ++n4_, ++n5_);
++n1_,
++n2_,
++n3_,
++n4_,
++n5_);
finished_ = true; finished_ = true;
} }
// Tests a successful ASSERT_PRED_FORMAT5 where the // Tests a successful ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
ASSERT_PRED_FORMAT5(PredFormatFunctor5(), ASSERT_PRED_FORMAT5(PredFormatFunctor5(), Bool(++n1_), Bool(++n2_),
Bool(++n1_), Bool(++n3_), Bool(++n4_), Bool(++n5_));
Bool(++n2_),
Bool(++n3_),
Bool(++n4_),
Bool(++n5_));
finished_ = true; finished_ = true;
} }
...@@ -2362,58 +2020,50 @@ TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) { ...@@ -2362,58 +2020,50 @@ TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
// predicate-formatter is a function on a built-in type (int). // predicate-formatter is a function on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT5(PredFormatFunction5, { // NOLINT
n1_++, ASSERT_PRED_FORMAT5(PredFormatFunction5, n1_++, n2_++, n3_++, n4_++,
n2_++, n5_++);
n3_++, finished_ = true;
n4_++, },
n5_++); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT5 where the // Tests a failed ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a function on a user-defined type (Bool). // predicate-formatter is a function on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT5(PredFormatFunction5, { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT5(PredFormatFunction5, Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT5 where the // Tests a failed ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a built-in type (int). // predicate-formatter is a functor on a built-in type (int).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT5(PredFormatFunctor5(), { // NOLINT
n1_++, ASSERT_PRED_FORMAT5(PredFormatFunctor5(), n1_++, n2_++, n3_++, n4_++,
n2_++, n5_++);
n3_++, finished_ = true;
n4_++, },
n5_++); "");
finished_ = true;
}, "");
} }
// Tests a failed ASSERT_PRED_FORMAT5 where the // Tests a failed ASSERT_PRED_FORMAT5 where the
// predicate-formatter is a functor on a user-defined type (Bool). // predicate-formatter is a functor on a user-defined type (Bool).
TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) { TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) {
expected_to_finish_ = false; expected_to_finish_ = false;
EXPECT_FATAL_FAILURE({ // NOLINT EXPECT_FATAL_FAILURE(
ASSERT_PRED_FORMAT5(PredFormatFunctor5(), { // NOLINT
Bool(n1_++), ASSERT_PRED_FORMAT5(PredFormatFunctor5(), Bool(n1_++), Bool(n2_++),
Bool(n2_++), Bool(n3_++), Bool(n4_++), Bool(n5_++));
Bool(n3_++), finished_ = true;
Bool(n4_++), },
Bool(n5_++)); "");
finished_ = true;
}, "");
} }
...@@ -81,15 +81,17 @@ TEST_F(PrematureExitDeathTest, FileExistsDuringExecutionOfDeathTest) { ...@@ -81,15 +81,17 @@ TEST_F(PrematureExitDeathTest, FileExistsDuringExecutionOfDeathTest) {
return; return;
} }
EXPECT_DEATH_IF_SUPPORTED({ EXPECT_DEATH_IF_SUPPORTED(
// If the file exists, crash the process such that the main test {
// process will catch the (expected) crash and report a success; // If the file exists, crash the process such that the main test
// otherwise don't crash, which will cause the main test process // process will catch the (expected) crash and report a success;
// to report that the death test has failed. // otherwise don't crash, which will cause the main test process
if (PrematureExitFileExists()) { // to report that the death test has failed.
exit(1); if (PrematureExitFileExists()) {
} exit(1);
}, ""); }
},
"");
} }
// Tests that the premature-exit file exists during the execution of a // Tests that the premature-exit file exists during the execution of a
...@@ -106,7 +108,7 @@ TEST_F(PrematureExitTest, PrematureExitFileExistsDuringTestExecution) { ...@@ -106,7 +108,7 @@ TEST_F(PrematureExitTest, PrematureExitFileExistsDuringTestExecution) {
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char** argv) {
InitGoogleTest(&argc, argv); InitGoogleTest(&argc, argv);
const int exit_code = RUN_ALL_TESTS(); const int exit_code = RUN_ALL_TESTS();
......
...@@ -27,11 +27,12 @@ ...@@ -27,11 +27,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Tests the --gtest_repeat=number flag. // Tests the --gtest_repeat=number flag.
#include <stdlib.h> #include <stdlib.h>
#include <iostream> #include <iostream>
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "src/gtest-internal-inl.h" #include "src/gtest-internal-inl.h"
...@@ -39,20 +40,19 @@ namespace { ...@@ -39,20 +40,19 @@ namespace {
// We need this when we are testing Google Test itself and therefore // We need this when we are testing Google Test itself and therefore
// cannot use Google Test assertions. // cannot use Google Test assertions.
#define GTEST_CHECK_INT_EQ_(expected, actual) \ #define GTEST_CHECK_INT_EQ_(expected, actual) \
do {\ do { \
const int expected_val = (expected);\ const int expected_val = (expected); \
const int actual_val = (actual);\ const int actual_val = (actual); \
if (::testing::internal::IsTrue(expected_val != actual_val)) {\ if (::testing::internal::IsTrue(expected_val != actual_val)) { \
::std::cout << "Value of: " #actual "\n"\ ::std::cout << "Value of: " #actual "\n" \
<< " Actual: " << actual_val << "\n"\ << " Actual: " << actual_val << "\n" \
<< "Expected: " #expected "\n"\ << "Expected: " #expected "\n" \
<< "Which is: " << expected_val << "\n";\ << "Which is: " << expected_val << "\n"; \
::testing::internal::posix::Abort();\ ::testing::internal::posix::Abort(); \
}\ } \
} while (::testing::internal::AlwaysFalse()) } while (::testing::internal::AlwaysFalse())
// Used for verifying that global environment set-up and tear-down are // Used for verifying that global environment set-up and tear-down are
// inside the --gtest_repeat loop. // inside the --gtest_repeat loop.
...@@ -79,9 +79,7 @@ TEST(FooTest, ShouldFail) { ...@@ -79,9 +79,7 @@ TEST(FooTest, ShouldFail) {
int g_should_pass_count = 0; int g_should_pass_count = 0;
TEST(FooTest, ShouldPass) { TEST(FooTest, ShouldPass) { g_should_pass_count++; }
g_should_pass_count++;
}
// A test that contains a thread-safe death test and a fast death // A test that contains a thread-safe death test and a fast death
// test. It should pass. // test. It should pass.
...@@ -108,8 +106,7 @@ TEST_P(MyParamTest, ShouldPass) { ...@@ -108,8 +106,7 @@ TEST_P(MyParamTest, ShouldPass) {
GTEST_CHECK_INT_EQ_(g_param_test_count % kNumberOfParamTests, GetParam()); GTEST_CHECK_INT_EQ_(g_param_test_count % kNumberOfParamTests, GetParam());
g_param_test_count++; g_param_test_count++;
} }
INSTANTIATE_TEST_SUITE_P(MyParamSequence, INSTANTIATE_TEST_SUITE_P(MyParamSequence, MyParamTest,
MyParamTest,
testing::Range(0, kNumberOfParamTests)); testing::Range(0, kNumberOfParamTests));
// Resets the count for each test. // Resets the count for each test.
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
// testcases being skipped. // testcases being skipped.
#include <iostream> #include <iostream>
#include "gtest/gtest.h" #include "gtest/gtest.h"
class SetupEnvironment : public testing::Environment { class SetupEnvironment : public testing::Environment {
......
...@@ -46,10 +46,6 @@ class Fixture : public Test { ...@@ -46,10 +46,6 @@ class Fixture : public Test {
} }
}; };
TEST_F(Fixture, SkipsOneTest) { TEST_F(Fixture, SkipsOneTest) { EXPECT_EQ(5, 7); }
EXPECT_EQ(5, 7);
}
TEST_F(Fixture, SkipsAnotherTest) { TEST_F(Fixture, SkipsAnotherTest) { EXPECT_EQ(99, 100); }
EXPECT_EQ(99, 100);
}
...@@ -35,9 +35,7 @@ ...@@ -35,9 +35,7 @@
namespace { namespace {
void Subroutine() { void Subroutine() { EXPECT_EQ(42, 42); }
EXPECT_EQ(42, 42);
}
TEST(NoFatalFailureTest, ExpectNoFatalFailure) { TEST(NoFatalFailureTest, ExpectNoFatalFailure) {
EXPECT_NO_FATAL_FAILURE(;); EXPECT_NO_FATAL_FAILURE(;);
......
...@@ -27,14 +27,12 @@ ...@@ -27,14 +27,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Tests that SCOPED_TRACE() and various Google Test assertions can be // Tests that SCOPED_TRACE() and various Google Test assertions can be
// used in a large number of threads concurrently. // used in a large number of threads concurrently.
#include "gtest/gtest.h"
#include <vector> #include <vector>
#include "gtest/gtest.h"
#include "src/gtest-internal-inl.h" #include "src/gtest-internal-inl.h"
#if GTEST_IS_THREADSAFE #if GTEST_IS_THREADSAFE
...@@ -66,8 +64,7 @@ std::string IdToString(int id) { ...@@ -66,8 +64,7 @@ std::string IdToString(int id) {
} }
void ExpectKeyAndValueWereRecordedForId( void ExpectKeyAndValueWereRecordedForId(
const std::vector<TestProperty>& properties, const std::vector<TestProperty>& properties, int id, const char* suffix) {
int id, const char* suffix) {
TestPropertyKeyIs matches_key(IdToKey(id, suffix).c_str()); TestPropertyKeyIs matches_key(IdToKey(id, suffix).c_str());
const std::vector<TestProperty>::const_iterator property = const std::vector<TestProperty>::const_iterator property =
std::find_if(properties.begin(), properties.end(), matches_key); std::find_if(properties.begin(), properties.end(), matches_key);
...@@ -121,15 +118,13 @@ TEST(StressTest, CanUseScopedTraceAndAssertionsInManyThreads) { ...@@ -121,15 +118,13 @@ TEST(StressTest, CanUseScopedTraceAndAssertionsInManyThreads) {
std::unique_ptr<ThreadWithParam<int> > threads[kThreadCount]; std::unique_ptr<ThreadWithParam<int> > threads[kThreadCount];
Notification threads_can_start; Notification threads_can_start;
for (int i = 0; i != kThreadCount; i++) for (int i = 0; i != kThreadCount; i++)
threads[i].reset(new ThreadWithParam<int>(&ManyAsserts, threads[i].reset(
i, new ThreadWithParam<int>(&ManyAsserts, i, &threads_can_start));
&threads_can_start));
threads_can_start.Notify(); threads_can_start.Notify();
// Blocks until all the threads are done. // Blocks until all the threads are done.
for (int i = 0; i != kThreadCount; i++) for (int i = 0; i != kThreadCount; i++) threads[i]->Join();
threads[i]->Join();
} }
// Ensures that kThreadCount*kThreadCount failures have been reported. // Ensures that kThreadCount*kThreadCount failures have been reported.
...@@ -149,7 +144,7 @@ TEST(StressTest, CanUseScopedTraceAndAssertionsInManyThreads) { ...@@ -149,7 +144,7 @@ TEST(StressTest, CanUseScopedTraceAndAssertionsInManyThreads) {
ExpectKeyAndValueWereRecordedForId(properties, i, "string"); ExpectKeyAndValueWereRecordedForId(properties, i, "string");
ExpectKeyAndValueWereRecordedForId(properties, i, "int"); ExpectKeyAndValueWereRecordedForId(properties, i, "int");
} }
CheckTestFailureCount(kThreadCount*kThreadCount); CheckTestFailureCount(kThreadCount * kThreadCount);
} }
void FailingThread(bool is_fatal) { void FailingThread(bool is_fatal) {
...@@ -196,8 +191,8 @@ TEST(FatalFailureTest, ExpectFatalFailureIgnoresFailuresInOtherThreads) { ...@@ -196,8 +191,8 @@ TEST(FatalFailureTest, ExpectFatalFailureIgnoresFailuresInOtherThreads) {
TEST(FatalFailureOnAllThreadsTest, ExpectFatalFailureOnAllThreads) { TEST(FatalFailureOnAllThreadsTest, ExpectFatalFailureOnAllThreads) {
// This statement should succeed, because failures in all threads are // This statement should succeed, because failures in all threads are
// considered. // considered.
EXPECT_FATAL_FAILURE_ON_ALL_THREADS( EXPECT_FATAL_FAILURE_ON_ALL_THREADS(GenerateFatalFailureInAnotherThread(true),
GenerateFatalFailureInAnotherThread(true), "expected"); "expected");
CheckTestFailureCount(0); CheckTestFailureCount(0);
// We need to add a failure, because main() checks that there are failures. // We need to add a failure, because main() checks that there are failures.
// But when only this test is run, we shouldn't have any failures. // But when only this test is run, we shouldn't have any failures.
...@@ -226,7 +221,7 @@ TEST(NonFatalFailureOnAllThreadsTest, ExpectNonFatalFailureOnAllThreads) { ...@@ -226,7 +221,7 @@ TEST(NonFatalFailureOnAllThreadsTest, ExpectNonFatalFailureOnAllThreads) {
} // namespace } // namespace
} // namespace testing } // namespace testing
int main(int argc, char **argv) { int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
const int result = RUN_ALL_TESTS(); // Expected to fail. const int result = RUN_ALL_TESTS(); // Expected to fail.
...@@ -238,8 +233,7 @@ int main(int argc, char **argv) { ...@@ -238,8 +233,7 @@ int main(int argc, char **argv) {
#else #else
TEST(StressTest, TEST(StressTest,
DISABLED_ThreadSafetyTestsAreSkippedWhenGoogleTestIsNotThreadSafe) { DISABLED_ThreadSafetyTestsAreSkippedWhenGoogleTestIsNotThreadSafe) {}
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment