Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Side by Side Diff: testing/gmock/test/gmock-spec-builders_test.cc

Issue 521012: Update gmock and gtest. (Closed)
Patch Set: update readme Created 10 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « testing/gmock/test/gmock-printers_test.cc ('k') | testing/gmock/test/gmock_leak_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2007, Google Inc. 1 // Copyright 2007, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 using testing::internal::kErrorVerbosity; 90 using testing::internal::kErrorVerbosity;
91 using testing::internal::kInfoVerbosity; 91 using testing::internal::kInfoVerbosity;
92 using testing::internal::kWarningVerbosity; 92 using testing::internal::kWarningVerbosity;
93 using testing::internal::ExpectationTester; 93 using testing::internal::ExpectationTester;
94 using testing::internal::string; 94 using testing::internal::string;
95 95
96 class Result {}; 96 class Result {};
97 97
98 class MockA { 98 class MockA {
99 public: 99 public:
100 MockA() {}
101
100 MOCK_METHOD1(DoA, void(int n)); // NOLINT 102 MOCK_METHOD1(DoA, void(int n)); // NOLINT
101 MOCK_METHOD1(ReturnResult, Result(int n)); // NOLINT 103 MOCK_METHOD1(ReturnResult, Result(int n)); // NOLINT
102 MOCK_METHOD2(Binary, bool(int x, int y)); // NOLINT 104 MOCK_METHOD2(Binary, bool(int x, int y)); // NOLINT
103 MOCK_METHOD2(ReturnInt, int(int x, int y)); // NOLINT 105 MOCK_METHOD2(ReturnInt, int(int x, int y)); // NOLINT
106
107 private:
108 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockA);
104 }; 109 };
105 110
106 class MockB { 111 class MockB {
107 public: 112 public:
113 MockB() {}
114
108 MOCK_CONST_METHOD0(DoB, int()); // NOLINT 115 MOCK_CONST_METHOD0(DoB, int()); // NOLINT
109 MOCK_METHOD1(DoB, int(int n)); // NOLINT 116 MOCK_METHOD1(DoB, int(int n)); // NOLINT
117
118 private:
119 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockB);
110 }; 120 };
111 121
112 // Tests that EXPECT_CALL and ON_CALL compile in a presence of macro 122 // Tests that EXPECT_CALL and ON_CALL compile in a presence of macro
113 // redefining a mock method name. This could happen, for example, when 123 // redefining a mock method name. This could happen, for example, when
114 // the tested code #includes Win32 API headers which define many APIs 124 // the tested code #includes Win32 API headers which define many APIs
115 // as macros, e.g. #define TextOut TextOutW. 125 // as macros, e.g. #define TextOut TextOutW.
116 126
117 #define Method MethodW 127 #define Method MethodW
118 128
119 class CC { 129 class CC {
120 public: 130 public:
121 virtual ~CC() {} 131 virtual ~CC() {}
122 virtual int Method() = 0; 132 virtual int Method() = 0;
123 }; 133 };
124 class MockCC : public CC { 134 class MockCC : public CC {
125 public: 135 public:
136 MockCC() {}
137
126 MOCK_METHOD0(Method, int()); 138 MOCK_METHOD0(Method, int());
139
140 private:
141 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockCC);
127 }; 142 };
128 143
129 // Tests that a method with expanded name compiles. 144 // Tests that a method with expanded name compiles.
130 TEST(OnCallSyntaxTest, CompilesWithMethodNameExpandedFromMacro) { 145 TEST(OnCallSyntaxTest, CompilesWithMethodNameExpandedFromMacro) {
131 MockCC cc; 146 MockCC cc;
132 ON_CALL(cc, Method()); 147 ON_CALL(cc, Method());
133 } 148 }
134 149
135 // Tests that the method with expanded name not only compiles but runs 150 // Tests that the method with expanded name not only compiles but runs
136 // and returns a correct value, too. 151 // and returns a correct value, too.
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 EXPECT_CALL(b, DoB(2)) 579 EXPECT_CALL(b, DoB(2))
565 .Times(1) 580 .Times(1)
566 .WillOnce(Return(1)) 581 .WillOnce(Return(1))
567 .WillRepeatedly(Return(2)); // #5 582 .WillRepeatedly(Return(2)); // #5
568 583
569 // Satisfies the above expectations. 584 // Satisfies the above expectations.
570 b.DoB(1); 585 b.DoB(1);
571 b.DoB(2); 586 b.DoB(2);
572 } 587 }
573 const string& output = GetCapturedTestStdout(); 588 const string& output = GetCapturedTestStdout();
574 EXPECT_PRED_FORMAT2(IsSubstring, 589 EXPECT_PRED_FORMAT2(
575 "Too many actions specified.\n" 590 IsSubstring,
576 "Expected to be never called, but has 1 WillOnce().", 591 "Too many actions specified in EXPECT_CALL(b, DoB())...\n"
577 output); // #1 592 "Expected to be never called, but has 1 WillOnce().",
578 EXPECT_PRED_FORMAT2(IsSubstring, 593 output); // #1
579 "Too many actions specified.\n" 594 EXPECT_PRED_FORMAT2(
580 "Expected to be called at most once, " 595 IsSubstring,
581 "but has 2 WillOnce()s.", 596 "Too many actions specified in EXPECT_CALL(b, DoB())...\n"
582 output); // #2 597 "Expected to be called at most once, "
583 EXPECT_PRED_FORMAT2(IsSubstring, 598 "but has 2 WillOnce()s.",
584 "Too many actions specified.\n" 599 output); // #2
585 "Expected to be called once, but has 2 WillOnce()s.", 600 EXPECT_PRED_FORMAT2(
586 output); // #3 601 IsSubstring,
587 EXPECT_PRED_FORMAT2(IsSubstring, 602 "Too many actions specified in EXPECT_CALL(b, DoB(1))...\n"
588 "Too many actions specified.\n" 603 "Expected to be called once, but has 2 WillOnce()s.",
589 "Expected to be never called, but has 0 WillOnce()s " 604 output); // #3
590 "and a WillRepeatedly().", 605 EXPECT_PRED_FORMAT2(
591 output); // #4 606 IsSubstring,
592 EXPECT_PRED_FORMAT2(IsSubstring, 607 "Too many actions specified in EXPECT_CALL(b, DoB())...\n"
593 "Too many actions specified.\n" 608 "Expected to be never called, but has 0 WillOnce()s "
594 "Expected to be called once, but has 1 WillOnce() " 609 "and a WillRepeatedly().",
595 "and a WillRepeatedly().", 610 output); // #4
596 output); // #5 611 EXPECT_PRED_FORMAT2(
612 IsSubstring,
613 "Too many actions specified in EXPECT_CALL(b, DoB(2))...\n"
614 "Expected to be called once, but has 1 WillOnce() "
615 "and a WillRepeatedly().",
616 output); // #5
597 } 617 }
598 618
599 // Tests that Google Mock warns on having too few actions in an 619 // Tests that Google Mock warns on having too few actions in an
600 // expectation compared to its cardinality. 620 // expectation compared to its cardinality.
601 TEST(ExpectCallSyntaxTest, WarnsOnTooFewActions) { 621 TEST(ExpectCallSyntaxTest, WarnsOnTooFewActions) {
602 MockB b; 622 MockB b;
603 623
604 EXPECT_CALL(b, DoB()) 624 EXPECT_CALL(b, DoB())
605 .Times(Between(2, 3)) 625 .Times(Between(2, 3))
606 .WillOnce(Return(1)); 626 .WillOnce(Return(1));
607 627
608 CaptureTestStdout(); 628 CaptureTestStdout();
609 b.DoB(); 629 b.DoB();
610 const string& output = GetCapturedTestStdout(); 630 const string& output = GetCapturedTestStdout();
611 EXPECT_PRED_FORMAT2(IsSubstring, 631 EXPECT_PRED_FORMAT2(
612 "Too few actions specified.\n" 632 IsSubstring,
613 "Expected to be called between 2 and 3 times, " 633 "Too few actions specified in EXPECT_CALL(b, DoB())...\n"
614 "but has only 1 WillOnce().", 634 "Expected to be called between 2 and 3 times, "
615 output); 635 "but has only 1 WillOnce().",
636 output);
616 b.DoB(); 637 b.DoB();
617 } 638 }
618 639
619 #endif // 0 640 #endif // 0
620 641
621 // Tests the semantics of ON_CALL(). 642 // Tests the semantics of ON_CALL().
622 643
623 // Tests that the built-in default action is taken when no ON_CALL() 644 // Tests that the built-in default action is taken when no ON_CALL()
624 // is specified. 645 // is specified.
625 TEST(OnCallTest, TakesBuiltInDefaultActionWhenNoOnCall) { 646 TEST(OnCallTest, TakesBuiltInDefaultActionWhenNoOnCall) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 } 702 }
682 703
683 // Tests lower-bound violation. 704 // Tests lower-bound violation.
684 TEST(ExpectCallTest, CatchesTooFewCalls) { 705 TEST(ExpectCallTest, CatchesTooFewCalls) {
685 EXPECT_NONFATAL_FAILURE({ // NOLINT 706 EXPECT_NONFATAL_FAILURE({ // NOLINT
686 MockB b; 707 MockB b;
687 EXPECT_CALL(b, DoB(5)) 708 EXPECT_CALL(b, DoB(5))
688 .Times(AtLeast(2)); 709 .Times(AtLeast(2));
689 710
690 b.DoB(5); 711 b.DoB(5);
691 }, "Actual function call count doesn't match this expectation.\n" 712 }, "Actual function call count doesn't match EXPECT_CALL(b, DoB(5))...\n"
692 " Expected: to be called at least twice\n" 713 " Expected: to be called at least twice\n"
693 " Actual: called once - unsatisfied and active"); 714 " Actual: called once - unsatisfied and active");
694 } 715 }
695 716
696 // Tests that the cardinality can be inferred when no Times(...) is 717 // Tests that the cardinality can be inferred when no Times(...) is
697 // specified. 718 // specified.
698 TEST(ExpectCallTest, InfersCardinalityWhenThereIsNoWillRepeatedly) { 719 TEST(ExpectCallTest, InfersCardinalityWhenThereIsNoWillRepeatedly) {
699 { 720 {
700 MockB b; 721 MockB b;
701 EXPECT_CALL(b, DoB()) 722 EXPECT_CALL(b, DoB())
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 EXPECT_CALL(a2, DoA(1)); 909 EXPECT_CALL(a2, DoA(1));
889 EXPECT_CALL(a2, DoA(3)); 910 EXPECT_CALL(a2, DoA(3));
890 a2.DoA(1); 911 a2.DoA(1);
891 EXPECT_NONFATAL_FAILURE( 912 EXPECT_NONFATAL_FAILURE(
892 a2.DoA(2), 913 a2.DoA(2),
893 "Unexpected mock function call - returning directly.\n" 914 "Unexpected mock function call - returning directly.\n"
894 " Function call: DoA(2)\n" 915 " Function call: DoA(2)\n"
895 "Google Mock tried the following 2 expectations, but none matched:"); 916 "Google Mock tried the following 2 expectations, but none matched:");
896 EXPECT_NONFATAL_FAILURE( 917 EXPECT_NONFATAL_FAILURE(
897 a2.DoA(2), 918 a2.DoA(2),
898 "tried expectation #0\n" 919 "tried expectation #0: EXPECT_CALL(a2, DoA(1))...\n"
899 " Expected arg #0: is equal to 1\n" 920 " Expected arg #0: is equal to 1\n"
900 " Actual: 2\n" 921 " Actual: 2\n"
901 " Expected: to be called once\n" 922 " Expected: to be called once\n"
902 " Actual: called once - saturated and active"); 923 " Actual: called once - saturated and active");
903 EXPECT_NONFATAL_FAILURE( 924 EXPECT_NONFATAL_FAILURE(
904 a2.DoA(2), 925 a2.DoA(2),
905 "tried expectation #1\n" 926 "tried expectation #1: EXPECT_CALL(a2, DoA(3))...\n"
906 " Expected arg #0: is equal to 3\n" 927 " Expected arg #0: is equal to 3\n"
907 " Actual: 2\n" 928 " Actual: 2\n"
908 " Expected: to be called once\n" 929 " Expected: to be called once\n"
909 " Actual: never called - unsatisfied and active"); 930 " Actual: never called - unsatisfied and active");
910 a2.DoA(3); 931 a2.DoA(3);
911 } 932 }
912 933
913 // Tests that an unexpected non-void function generates the right 934 // Tests that an unexpected non-void function generates the right
914 // failure message. 935 // failure message.
915 TEST(UnexpectedCallTest, GeneartesFailureForNonVoidFunction) { 936 TEST(UnexpectedCallTest, GeneartesFailureForNonVoidFunction) {
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
1604 1625
1605 delete a; // a is trivially satisfied. 1626 delete a; // a is trivially satisfied.
1606 EXPECT_EQ(1, b1->DoB(1)); 1627 EXPECT_EQ(1, b1->DoB(1));
1607 EXPECT_EQ(2, b2->DoB(2)); 1628 EXPECT_EQ(2, b2->DoB(2));
1608 delete b1; 1629 delete b1;
1609 delete b2; 1630 delete b2;
1610 } 1631 }
1611 1632
1612 // Tests that it's OK to delete a mock object itself in its action. 1633 // Tests that it's OK to delete a mock object itself in its action.
1613 1634
1635 // Suppresses warning on unreferenced formal parameter in MSVC with
1636 // -W4.
1637 #ifdef _MSC_VER
1638 #pragma warning(push)
1639 #pragma warning(disable:4100)
1640 #endif
1641
1614 ACTION_P(Delete, ptr) { delete ptr; } 1642 ACTION_P(Delete, ptr) { delete ptr; }
1615 1643
1644 #ifdef _MSC_VER
1645 #pragma warning(pop)
1646 #endif
1647
1616 TEST(DeletingMockEarlyTest, CanDeleteSelfInActionReturningVoid) { 1648 TEST(DeletingMockEarlyTest, CanDeleteSelfInActionReturningVoid) {
1617 MockA* const a = new MockA; 1649 MockA* const a = new MockA;
1618 EXPECT_CALL(*a, DoA(_)).WillOnce(Delete(a)); 1650 EXPECT_CALL(*a, DoA(_)).WillOnce(Delete(a));
1619 a->DoA(42); // This will cause a to be deleted. 1651 a->DoA(42); // This will cause a to be deleted.
1620 } 1652 }
1621 1653
1622 TEST(DeletingMockEarlyTest, CanDeleteSelfInActionReturningValue) { 1654 TEST(DeletingMockEarlyTest, CanDeleteSelfInActionReturningValue) {
1623 MockA* const a = new MockA; 1655 MockA* const a = new MockA;
1624 EXPECT_CALL(*a, ReturnResult(_)) 1656 EXPECT_CALL(*a, ReturnResult(_))
1625 .WillOnce(DoAll(Delete(a), Return(Result()))); 1657 .WillOnce(DoAll(Delete(a), Return(Result())));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1678 } 1710 }
1679 1711
1680 class EvenNumberCardinality : public CardinalityInterface { 1712 class EvenNumberCardinality : public CardinalityInterface {
1681 public: 1713 public:
1682 // Returns true iff call_count calls will satisfy this cardinality. 1714 // Returns true iff call_count calls will satisfy this cardinality.
1683 virtual bool IsSatisfiedByCallCount(int call_count) const { 1715 virtual bool IsSatisfiedByCallCount(int call_count) const {
1684 return call_count % 2 == 0; 1716 return call_count % 2 == 0;
1685 } 1717 }
1686 1718
1687 // Returns true iff call_count calls will saturate this cardinality. 1719 // Returns true iff call_count calls will saturate this cardinality.
1688 virtual bool IsSaturatedByCallCount(int call_count) const { return false; } 1720 virtual bool IsSaturatedByCallCount(int /* call_count */) const {
1721 return false;
1722 }
1689 1723
1690 // Describes self to an ostream. 1724 // Describes self to an ostream.
1691 virtual void DescribeTo(::std::ostream* os) const { 1725 virtual void DescribeTo(::std::ostream* os) const {
1692 *os << "called even number of times"; 1726 *os << "called even number of times";
1693 } 1727 }
1694 }; 1728 };
1695 1729
1696 Cardinality EvenNumber() { 1730 Cardinality EvenNumber() {
1697 return Cardinality(new EvenNumberCardinality); 1731 return Cardinality(new EvenNumberCardinality);
1698 } 1732 }
(...skipping 28 matching lines...) Expand all
1727 os << "Printable"; 1761 os << "Printable";
1728 } 1762 }
1729 1763
1730 struct Unprintable { 1764 struct Unprintable {
1731 Unprintable() : value(0) {} 1765 Unprintable() : value(0) {}
1732 int value; 1766 int value;
1733 }; 1767 };
1734 1768
1735 class MockC { 1769 class MockC {
1736 public: 1770 public:
1771 MockC() {}
1772
1737 MOCK_METHOD6(VoidMethod, void(bool cond, int n, string s, void* p, 1773 MOCK_METHOD6(VoidMethod, void(bool cond, int n, string s, void* p,
1738 const Printable& x, Unprintable y)); 1774 const Printable& x, Unprintable y));
1739 MOCK_METHOD0(NonVoidMethod, int()); // NOLINT 1775 MOCK_METHOD0(NonVoidMethod, int()); // NOLINT
1776
1777 private:
1778 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockC);
1740 }; 1779 };
1741 1780
1742 // TODO(wan@google.com): find a way to re-enable these tests. 1781 // TODO(wan@google.com): find a way to re-enable these tests.
1743 #if 0 1782 #if 0
1744 1783
1745 // Tests that an uninteresting mock function call generates a warning 1784 // Tests that an uninteresting mock function call generates a warning
1746 // containing the stack trace. 1785 // containing the stack trace.
1747 TEST(FunctionCallMessageTest, UninterestingCallGeneratesFyiWithStackTrace) { 1786 TEST(FunctionCallMessageTest, UninterestingCallGeneratesFyiWithStackTrace) {
1748 MockC c; 1787 MockC c;
1749 CaptureTestStdout(); 1788 CaptureTestStdout();
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 // buffer) when it is not supposed to do so. 1961 // buffer) when it is not supposed to do so.
1923 class PrintMeNot {}; 1962 class PrintMeNot {};
1924 1963
1925 void PrintTo(PrintMeNot /* dummy */, ::std::ostream* /* os */) { 1964 void PrintTo(PrintMeNot /* dummy */, ::std::ostream* /* os */) {
1926 ADD_FAILURE() << "Google Mock is printing a value that shouldn't be " 1965 ADD_FAILURE() << "Google Mock is printing a value that shouldn't be "
1927 << "printed even to an internal buffer."; 1966 << "printed even to an internal buffer.";
1928 } 1967 }
1929 1968
1930 class LogTestHelper { 1969 class LogTestHelper {
1931 public: 1970 public:
1971 LogTestHelper() {}
1972
1932 MOCK_METHOD1(Foo, PrintMeNot(PrintMeNot)); 1973 MOCK_METHOD1(Foo, PrintMeNot(PrintMeNot));
1974
1975 private:
1976 GTEST_DISALLOW_COPY_AND_ASSIGN_(LogTestHelper);
1933 }; 1977 };
1934 1978
1935 class GMockLogTest : public ::testing::Test { 1979 class GMockLogTest : public ::testing::Test {
1936 protected: 1980 protected:
1937 virtual void SetUp() { 1981 virtual void SetUp() {
1938 // The code needs to work when both ::string and ::std::string are 1982 // The code needs to work when both ::string and ::std::string are
1939 // defined and the flag is implemented as a 1983 // defined and the flag is implemented as a
1940 // testing::internal::String. In this case, without the call to 1984 // testing::internal::String. In this case, without the call to
1941 // c_str(), the compiler will complain that it cannot figure out 1985 // c_str(), the compiler will complain that it cannot figure out
1942 // whether the String flag should be converted to a ::string or an 1986 // whether the String flag should be converted to a ::string or an
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2039 EXPECT_EQ(0, b.DoB(1)); 2083 EXPECT_EQ(0, b.DoB(1));
2040 } 2084 }
2041 2085
2042 // Tests that we can verify and clear a mock object's expectations 2086 // Tests that we can verify and clear a mock object's expectations
2043 // when some, but not all, of its methods have expectations *and* the 2087 // when some, but not all, of its methods have expectations *and* the
2044 // verification fails. 2088 // verification fails.
2045 TEST(VerifyAndClearExpectationsTest, SomeMethodsHaveExpectationsAndFail) { 2089 TEST(VerifyAndClearExpectationsTest, SomeMethodsHaveExpectationsAndFail) {
2046 MockB b; 2090 MockB b;
2047 EXPECT_CALL(b, DoB()) 2091 EXPECT_CALL(b, DoB())
2048 .WillOnce(Return(1)); 2092 .WillOnce(Return(1));
2049 bool result; 2093 bool result = true;
2050 EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClearExpectations(&b), 2094 EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClearExpectations(&b),
2051 "Actual: never called"); 2095 "Actual: never called");
2052 ASSERT_FALSE(result); 2096 ASSERT_FALSE(result);
2053 2097
2054 // There should be no expectations on the methods now, so we can 2098 // There should be no expectations on the methods now, so we can
2055 // freely call them. 2099 // freely call them.
2056 EXPECT_EQ(0, b.DoB()); 2100 EXPECT_EQ(0, b.DoB());
2057 EXPECT_EQ(0, b.DoB(1)); 2101 EXPECT_EQ(0, b.DoB(1));
2058 } 2102 }
2059 2103
(...skipping 17 matching lines...) Expand all
2077 2121
2078 // Tests that we can verify and clear a mock object's expectations 2122 // Tests that we can verify and clear a mock object's expectations
2079 // when a method has more than one expectation. 2123 // when a method has more than one expectation.
2080 TEST(VerifyAndClearExpectationsTest, AMethodHasManyExpectations) { 2124 TEST(VerifyAndClearExpectationsTest, AMethodHasManyExpectations) {
2081 MockB b; 2125 MockB b;
2082 EXPECT_CALL(b, DoB(0)) 2126 EXPECT_CALL(b, DoB(0))
2083 .WillOnce(Return(1)); 2127 .WillOnce(Return(1));
2084 EXPECT_CALL(b, DoB(_)) 2128 EXPECT_CALL(b, DoB(_))
2085 .WillOnce(Return(2)); 2129 .WillOnce(Return(2));
2086 b.DoB(1); 2130 b.DoB(1);
2087 bool result; 2131 bool result = true;
2088 EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClearExpectations(&b), 2132 EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClearExpectations(&b),
2089 "Actual: never called"); 2133 "Actual: never called");
2090 ASSERT_FALSE(result); 2134 ASSERT_FALSE(result);
2091 2135
2092 // There should be no expectations on the methods now, so we can 2136 // There should be no expectations on the methods now, so we can
2093 // freely call them. 2137 // freely call them.
2094 EXPECT_EQ(0, b.DoB()); 2138 EXPECT_EQ(0, b.DoB());
2095 EXPECT_EQ(0, b.DoB(1)); 2139 EXPECT_EQ(0, b.DoB(1));
2096 } 2140 }
2097 2141
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
2209 2253
2210 // Tests that VerifyAndClear() works when the verification fails. 2254 // Tests that VerifyAndClear() works when the verification fails.
2211 TEST(VerifyAndClearTest, Failure) { 2255 TEST(VerifyAndClearTest, Failure) {
2212 MockB b; 2256 MockB b;
2213 ON_CALL(b, DoB(_)) 2257 ON_CALL(b, DoB(_))
2214 .WillByDefault(Return(1)); 2258 .WillByDefault(Return(1));
2215 EXPECT_CALL(b, DoB()) 2259 EXPECT_CALL(b, DoB())
2216 .WillOnce(Return(2)); 2260 .WillOnce(Return(2));
2217 2261
2218 b.DoB(1); 2262 b.DoB(1);
2219 bool result; 2263 bool result = true;
2220 EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClear(&b), 2264 EXPECT_NONFATAL_FAILURE(result = Mock::VerifyAndClear(&b),
2221 "Actual: never called"); 2265 "Actual: never called");
2222 ASSERT_FALSE(result); 2266 ASSERT_FALSE(result);
2223 2267
2224 // There should be no expectations on the methods now, so we can 2268 // There should be no expectations on the methods now, so we can
2225 // freely call them. 2269 // freely call them.
2226 EXPECT_EQ(0, b.DoB()); 2270 EXPECT_EQ(0, b.DoB());
2227 EXPECT_EQ(0, b.DoB(1)); 2271 EXPECT_EQ(0, b.DoB(1));
2228 } 2272 }
2229 2273
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2325 #endif // GMOCK_RENAME_MAIN 2369 #endif // GMOCK_RENAME_MAIN
2326 testing::InitGoogleMock(&argc, argv); 2370 testing::InitGoogleMock(&argc, argv);
2327 2371
2328 // Ensures that the tests pass no matter what value of 2372 // Ensures that the tests pass no matter what value of
2329 // --gmock_catch_leaked_mocks and --gmock_verbose the user specifies. 2373 // --gmock_catch_leaked_mocks and --gmock_verbose the user specifies.
2330 testing::GMOCK_FLAG(catch_leaked_mocks) = true; 2374 testing::GMOCK_FLAG(catch_leaked_mocks) = true;
2331 testing::GMOCK_FLAG(verbose) = testing::internal::kWarningVerbosity; 2375 testing::GMOCK_FLAG(verbose) = testing::internal::kWarningVerbosity;
2332 2376
2333 return RUN_ALL_TESTS(); 2377 return RUN_ALL_TESTS();
2334 } 2378 }
OLDNEW
« no previous file with comments | « testing/gmock/test/gmock-printers_test.cc ('k') | testing/gmock/test/gmock_leak_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698