| Index: testing/gmock/test/gmock-spec-builders_test.cc
|
| diff --git a/testing/gmock/test/gmock-spec-builders_test.cc b/testing/gmock/test/gmock-spec-builders_test.cc
|
| index 707d896883e922f9b4677bfd13cb4da3e0049d6d..c1e77381532f91fdeb51393cb5f8d1c6ae984fc5 100644
|
| --- a/testing/gmock/test/gmock-spec-builders_test.cc
|
| +++ b/testing/gmock/test/gmock-spec-builders_test.cc
|
| @@ -97,16 +97,26 @@ class Result {};
|
|
|
| class MockA {
|
| public:
|
| + MockA() {}
|
| +
|
| MOCK_METHOD1(DoA, void(int n)); // NOLINT
|
| MOCK_METHOD1(ReturnResult, Result(int n)); // NOLINT
|
| MOCK_METHOD2(Binary, bool(int x, int y)); // NOLINT
|
| MOCK_METHOD2(ReturnInt, int(int x, int y)); // NOLINT
|
| +
|
| + private:
|
| + GTEST_DISALLOW_COPY_AND_ASSIGN_(MockA);
|
| };
|
|
|
| class MockB {
|
| public:
|
| + MockB() {}
|
| +
|
| MOCK_CONST_METHOD0(DoB, int()); // NOLINT
|
| MOCK_METHOD1(DoB, int(int n)); // NOLINT
|
| +
|
| + private:
|
| + GTEST_DISALLOW_COPY_AND_ASSIGN_(MockB);
|
| };
|
|
|
| // Tests that EXPECT_CALL and ON_CALL compile in a presence of macro
|
| @@ -123,7 +133,12 @@ class CC {
|
| };
|
| class MockCC : public CC {
|
| public:
|
| + MockCC() {}
|
| +
|
| MOCK_METHOD0(Method, int());
|
| +
|
| + private:
|
| + GTEST_DISALLOW_COPY_AND_ASSIGN_(MockCC);
|
| };
|
|
|
| // Tests that a method with expanded name compiles.
|
| @@ -571,29 +586,34 @@ TEST(ExpectCallSyntaxTest, WarnsOnTooManyActions) {
|
| b.DoB(2);
|
| }
|
| const string& output = GetCapturedTestStdout();
|
| - EXPECT_PRED_FORMAT2(IsSubstring,
|
| - "Too many actions specified.\n"
|
| - "Expected to be never called, but has 1 WillOnce().",
|
| - output); // #1
|
| - EXPECT_PRED_FORMAT2(IsSubstring,
|
| - "Too many actions specified.\n"
|
| - "Expected to be called at most once, "
|
| - "but has 2 WillOnce()s.",
|
| - output); // #2
|
| - EXPECT_PRED_FORMAT2(IsSubstring,
|
| - "Too many actions specified.\n"
|
| - "Expected to be called once, but has 2 WillOnce()s.",
|
| - output); // #3
|
| - EXPECT_PRED_FORMAT2(IsSubstring,
|
| - "Too many actions specified.\n"
|
| - "Expected to be never called, but has 0 WillOnce()s "
|
| - "and a WillRepeatedly().",
|
| - output); // #4
|
| - EXPECT_PRED_FORMAT2(IsSubstring,
|
| - "Too many actions specified.\n"
|
| - "Expected to be called once, but has 1 WillOnce() "
|
| - "and a WillRepeatedly().",
|
| - output); // #5
|
| + EXPECT_PRED_FORMAT2(
|
| + IsSubstring,
|
| + "Too many actions specified in EXPECT_CALL(b, DoB())...\n"
|
| + "Expected to be never called, but has 1 WillOnce().",
|
| + output); // #1
|
| + EXPECT_PRED_FORMAT2(
|
| + IsSubstring,
|
| + "Too many actions specified in EXPECT_CALL(b, DoB())...\n"
|
| + "Expected to be called at most once, "
|
| + "but has 2 WillOnce()s.",
|
| + output); // #2
|
| + EXPECT_PRED_FORMAT2(
|
| + IsSubstring,
|
| + "Too many actions specified in EXPECT_CALL(b, DoB(1))...\n"
|
| + "Expected to be called once, but has 2 WillOnce()s.",
|
| + output); // #3
|
| + EXPECT_PRED_FORMAT2(
|
| + IsSubstring,
|
| + "Too many actions specified in EXPECT_CALL(b, DoB())...\n"
|
| + "Expected to be never called, but has 0 WillOnce()s "
|
| + "and a WillRepeatedly().",
|
| + output); // #4
|
| + EXPECT_PRED_FORMAT2(
|
| + IsSubstring,
|
| + "Too many actions specified in EXPECT_CALL(b, DoB(2))...\n"
|
| + "Expected to be called once, but has 1 WillOnce() "
|
| + "and a WillRepeatedly().",
|
| + output); // #5
|
| }
|
|
|
| // Tests that Google Mock warns on having too few actions in an
|
| @@ -608,11 +628,12 @@ TEST(ExpectCallSyntaxTest, WarnsOnTooFewActions) {
|
| CaptureTestStdout();
|
| b.DoB();
|
| const string& output = GetCapturedTestStdout();
|
| - EXPECT_PRED_FORMAT2(IsSubstring,
|
| - "Too few actions specified.\n"
|
| - "Expected to be called between 2 and 3 times, "
|
| - "but has only 1 WillOnce().",
|
| - output);
|
| + EXPECT_PRED_FORMAT2(
|
| + IsSubstring,
|
| + "Too few actions specified in EXPECT_CALL(b, DoB())...\n"
|
| + "Expected to be called between 2 and 3 times, "
|
| + "but has only 1 WillOnce().",
|
| + output);
|
| b.DoB();
|
| }
|
|
|
| @@ -688,7 +709,7 @@ TEST(ExpectCallTest, CatchesTooFewCalls) {
|
| .Times(AtLeast(2));
|
|
|
| b.DoB(5);
|
| - }, "Actual function call count doesn't match this expectation.\n"
|
| + }, "Actual function call count doesn't match EXPECT_CALL(b, DoB(5))...\n"
|
| " Expected: to be called at least twice\n"
|
| " Actual: called once - unsatisfied and active");
|
| }
|
| @@ -895,14 +916,14 @@ TEST(UnexpectedCallTest, GeneratesFailureForVoidFunction) {
|
| "Google Mock tried the following 2 expectations, but none matched:");
|
| EXPECT_NONFATAL_FAILURE(
|
| a2.DoA(2),
|
| - "tried expectation #0\n"
|
| + "tried expectation #0: EXPECT_CALL(a2, DoA(1))...\n"
|
| " Expected arg #0: is equal to 1\n"
|
| " Actual: 2\n"
|
| " Expected: to be called once\n"
|
| " Actual: called once - saturated and active");
|
| EXPECT_NONFATAL_FAILURE(
|
| a2.DoA(2),
|
| - "tried expectation #1\n"
|
| + "tried expectation #1: EXPECT_CALL(a2, DoA(3))...\n"
|
| " Expected arg #0: is equal to 3\n"
|
| " Actual: 2\n"
|
| " Expected: to be called once\n"
|
| @@ -1611,8 +1632,19 @@ TEST(DeletingMockEarlyTest, Success2) {
|
|
|
| // Tests that it's OK to delete a mock object itself in its action.
|
|
|
| +// Suppresses warning on unreferenced formal parameter in MSVC with
|
| +// -W4.
|
| +#ifdef _MSC_VER
|
| +#pragma warning(push)
|
| +#pragma warning(disable:4100)
|
| +#endif
|
| +
|
| ACTION_P(Delete, ptr) { delete ptr; }
|
|
|
| +#ifdef _MSC_VER
|
| +#pragma warning(pop)
|
| +#endif
|
| +
|
| TEST(DeletingMockEarlyTest, CanDeleteSelfInActionReturningVoid) {
|
| MockA* const a = new MockA;
|
| EXPECT_CALL(*a, DoA(_)).WillOnce(Delete(a));
|
| @@ -1685,7 +1717,9 @@ class EvenNumberCardinality : public CardinalityInterface {
|
| }
|
|
|
| // Returns true iff call_count calls will saturate this cardinality.
|
| - virtual bool IsSaturatedByCallCount(int call_count) const { return false; }
|
| + virtual bool IsSaturatedByCallCount(int /* call_count */) const {
|
| + return false;
|
| + }
|
|
|
| // Describes self to an ostream.
|
| virtual void DescribeTo(::std::ostream* os) const {
|
| @@ -1734,9 +1768,14 @@ struct Unprintable {
|
|
|
| class MockC {
|
| public:
|
| + MockC() {}
|
| +
|
| MOCK_METHOD6(VoidMethod, void(bool cond, int n, string s, void* p,
|
| const Printable& x, Unprintable y));
|
| MOCK_METHOD0(NonVoidMethod, int()); // NOLINT
|
| +
|
| + private:
|
| + GTEST_DISALLOW_COPY_AND_ASSIGN_(MockC);
|
| };
|
|
|
| // TODO(wan@google.com): find a way to re-enable these tests.
|
| @@ -1929,7 +1968,12 @@ void PrintTo(PrintMeNot /* dummy */, ::std::ostream* /* os */) {
|
|
|
| class LogTestHelper {
|
| public:
|
| + LogTestHelper() {}
|
| +
|
| MOCK_METHOD1(Foo, PrintMeNot(PrintMeNot));
|
| +
|
| + private:
|
| + GTEST_DISALLOW_COPY_AND_ASSIGN_(LogTestHelper);
|
| };
|
|
|
| class GMockLogTest : public ::testing::Test {
|
| @@ -2046,7 +2090,7 @@ TEST(VerifyAndClearExpectationsTest, SomeMethodsHaveExpectationsAndFail) {
|
| MockB b;
|
| EXPECT_CALL(b, DoB())
|
| .WillOnce(Return(1));
|
| - bool result;
|
| + bool result = true;
|
| EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClearExpectations(&b),
|
| "Actual: never called");
|
| ASSERT_FALSE(result);
|
| @@ -2084,7 +2128,7 @@ TEST(VerifyAndClearExpectationsTest, AMethodHasManyExpectations) {
|
| EXPECT_CALL(b, DoB(_))
|
| .WillOnce(Return(2));
|
| b.DoB(1);
|
| - bool result;
|
| + bool result = true;
|
| EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClearExpectations(&b),
|
| "Actual: never called");
|
| ASSERT_FALSE(result);
|
| @@ -2216,7 +2260,7 @@ TEST(VerifyAndClearTest, Failure) {
|
| .WillOnce(Return(2));
|
|
|
| b.DoB(1);
|
| - bool result;
|
| + bool result = true;
|
| EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClear(&b),
|
| "Actual: never called");
|
| ASSERT_FALSE(result);
|
|
|