Commit 10f05a62 authored by Tanzinul Islam's avatar Tanzinul Islam
Browse files

Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116

parents 5c7c365d 278aba36
This diff is collapsed.
...@@ -374,10 +374,10 @@ class SubstractAction : public ActionInterface<int(int, int)> { // NOLINT ...@@ -374,10 +374,10 @@ class SubstractAction : public ActionInterface<int(int, int)> { // NOLINT
}; };
TEST(WithArgsTest, NonInvokeAction) { TEST(WithArgsTest, NonInvokeAction) {
Action<int(const string&, int, int)> a = // NOLINT Action<int(const std::string&, int, int)> a = // NOLINT
WithArgs<2, 1>(MakeAction(new SubstractAction)); WithArgs<2, 1>(MakeAction(new SubstractAction));
string s("hello"); tuple<std::string, int, int> dummy = make_tuple(std::string("hi"), 2, 10);
EXPECT_EQ(8, a.Perform(tuple<const string&, int, int>(s, 2, 10))); EXPECT_EQ(8, a.Perform(dummy));
} }
// Tests using WithArgs to pass all original arguments in the original order. // Tests using WithArgs to pass all original arguments in the original order.
...@@ -754,7 +754,8 @@ TEST(ActionPMacroTest, CanReferenceArgumentAndParameterTypes) { ...@@ -754,7 +754,8 @@ TEST(ActionPMacroTest, CanReferenceArgumentAndParameterTypes) {
TEST(ActionPMacroTest, WorksInCompatibleMockFunction) { TEST(ActionPMacroTest, WorksInCompatibleMockFunction) {
Action<std::string(const std::string& s)> a1 = Plus("tail"); Action<std::string(const std::string& s)> a1 = Plus("tail");
const std::string re = "re"; const std::string re = "re";
EXPECT_EQ("retail", a1.Perform(tuple<const std::string&>(re))); tuple<const std::string> dummy = make_tuple(re);
EXPECT_EQ("retail", a1.Perform(dummy));
} }
// Tests that we can use ACTION*() to define actions overloaded on the // Tests that we can use ACTION*() to define actions overloaded on the
...@@ -796,7 +797,8 @@ TEST(ActionPnMacroTest, WorksFor3Parameters) { ...@@ -796,7 +797,8 @@ TEST(ActionPnMacroTest, WorksFor3Parameters) {
Action<std::string(const std::string& s)> a2 = Plus("tail", "-", ">"); Action<std::string(const std::string& s)> a2 = Plus("tail", "-", ">");
const std::string re = "re"; const std::string re = "re";
EXPECT_EQ("retail->", a2.Perform(tuple<const std::string&>(re))); tuple<const std::string> dummy = make_tuple(re);
EXPECT_EQ("retail->", a2.Perform(dummy));
} }
ACTION_P4(Plus, p0, p1, p2, p3) { return arg0 + p0 + p1 + p2 + p3; } ACTION_P4(Plus, p0, p1, p2, p3) { return arg0 + p0 + p1 + p2 + p3; }
...@@ -1120,7 +1122,7 @@ TEST(ActionTemplateTest, WorksForIntegralTemplateParams) { ...@@ -1120,7 +1122,7 @@ TEST(ActionTemplateTest, WorksForIntegralTemplateParams) {
EXPECT_FALSE(b); // Verifies that resetter is deleted. EXPECT_FALSE(b); // Verifies that resetter is deleted.
} }
// Tests that ACTION_TEMPLATE works for a template with template parameters. // Tests that ACTION_TEMPLATES works for template template parameters.
ACTION_TEMPLATE(ReturnSmartPointer, ACTION_TEMPLATE(ReturnSmartPointer,
HAS_1_TEMPLATE_PARAMS(template <typename Pointee> class, HAS_1_TEMPLATE_PARAMS(template <typename Pointee> class,
Pointer), Pointer),
......
...@@ -620,5 +620,28 @@ TEST(MockFunctionTest, AsStdFunctionReturnsReference) { ...@@ -620,5 +620,28 @@ TEST(MockFunctionTest, AsStdFunctionReturnsReference) {
} }
#endif // GTEST_HAS_STD_FUNCTION_ #endif // GTEST_HAS_STD_FUNCTION_
struct MockMethodSizes0 {
MOCK_METHOD0(func, void());
};
struct MockMethodSizes1 {
MOCK_METHOD1(func, void(int));
};
struct MockMethodSizes2 {
MOCK_METHOD2(func, void(int, int));
};
struct MockMethodSizes3 {
MOCK_METHOD3(func, void(int, int, int));
};
struct MockMethodSizes4 {
MOCK_METHOD4(func, void(int, int, int, int));
};
TEST(MockFunctionTest, MockMethodSizeOverhead) {
EXPECT_EQ(sizeof(MockMethodSizes0), sizeof(MockMethodSizes1));
EXPECT_EQ(sizeof(MockMethodSizes0), sizeof(MockMethodSizes2));
EXPECT_EQ(sizeof(MockMethodSizes0), sizeof(MockMethodSizes3));
EXPECT_EQ(sizeof(MockMethodSizes0), sizeof(MockMethodSizes4));
}
} // namespace gmock_generated_function_mockers_test } // namespace gmock_generated_function_mockers_test
} // namespace testing } // namespace testing
...@@ -63,10 +63,10 @@ TEST(MatcherTupleTest, ForSize2) { ...@@ -63,10 +63,10 @@ TEST(MatcherTupleTest, ForSize2) {
} }
TEST(MatcherTupleTest, ForSize5) { TEST(MatcherTupleTest, ForSize5) {
CompileAssertTypesEqual<tuple<Matcher<int>, Matcher<char>, Matcher<bool>, CompileAssertTypesEqual<
Matcher<double>, Matcher<char*> >, tuple<Matcher<int>, Matcher<char>, Matcher<bool>, Matcher<double>,
MatcherTuple<tuple<int, char, bool, double, char*> Matcher<char*> >,
>::type>(); MatcherTuple<tuple<int, char, bool, double, char*> >::type>();
} }
// Tests the Function template struct. // Tests the Function template struct.
...@@ -97,7 +97,8 @@ TEST(FunctionTest, Binary) { ...@@ -97,7 +97,8 @@ TEST(FunctionTest, Binary) {
CompileAssertTypesEqual<bool, F::Argument1>(); CompileAssertTypesEqual<bool, F::Argument1>();
CompileAssertTypesEqual<const long&, F::Argument2>(); // NOLINT CompileAssertTypesEqual<const long&, F::Argument2>(); // NOLINT
CompileAssertTypesEqual<tuple<bool, const long&>, F::ArgumentTuple>(); // NOLINT CompileAssertTypesEqual<tuple<bool, const long&>, F::ArgumentTuple>(); // NOLINT
CompileAssertTypesEqual<tuple<Matcher<bool>, Matcher<const long&> >, // NOLINT CompileAssertTypesEqual<
tuple<Matcher<bool>, Matcher<const long&> >, // NOLINT
F::ArgumentMatcherTuple>(); F::ArgumentMatcherTuple>();
CompileAssertTypesEqual<void(bool, const long&), F::MakeResultVoid>(); // NOLINT CompileAssertTypesEqual<void(bool, const long&), F::MakeResultVoid>(); // NOLINT
CompileAssertTypesEqual<IgnoredValue(bool, const long&), // NOLINT CompileAssertTypesEqual<IgnoredValue(bool, const long&), // NOLINT
...@@ -114,8 +115,9 @@ TEST(FunctionTest, LongArgumentList) { ...@@ -114,8 +115,9 @@ TEST(FunctionTest, LongArgumentList) {
CompileAssertTypesEqual<const long&, F::Argument5>(); // NOLINT CompileAssertTypesEqual<const long&, F::Argument5>(); // NOLINT
CompileAssertTypesEqual<tuple<bool, int, char*, int&, const long&>, // NOLINT CompileAssertTypesEqual<tuple<bool, int, char*, int&, const long&>, // NOLINT
F::ArgumentTuple>(); F::ArgumentTuple>();
CompileAssertTypesEqual<tuple<Matcher<bool>, Matcher<int>, Matcher<char*>, CompileAssertTypesEqual<
Matcher<int&>, Matcher<const long&> >, // NOLINT tuple<Matcher<bool>, Matcher<int>, Matcher<char*>, Matcher<int&>,
Matcher<const long&> >, // NOLINT
F::ArgumentMatcherTuple>(); F::ArgumentMatcherTuple>();
CompileAssertTypesEqual<void(bool, int, char*, int&, const long&), // NOLINT CompileAssertTypesEqual<void(bool, int, char*, int&, const long&), // NOLINT
F::MakeResultVoid>(); F::MakeResultVoid>();
......
This diff is collapsed.
...@@ -327,11 +327,10 @@ TEST(InvokeTest, FunctionThatTakes10Arguments) { ...@@ -327,11 +327,10 @@ TEST(InvokeTest, FunctionThatTakes10Arguments) {
// Tests using Invoke() with functions with parameters declared as Unused. // Tests using Invoke() with functions with parameters declared as Unused.
TEST(InvokeTest, FunctionWithUnusedParameters) { TEST(InvokeTest, FunctionWithUnusedParameters) {
Action<int(int, int, double, const string&)> a1 = Action<int(int, int, double, const std::string&)> a1 = Invoke(SumOfFirst2);
Invoke(SumOfFirst2); tuple<int, int, double, std::string> dummy =
string s("hi"); make_tuple(10, 2, 5.6, std::string("hi"));
EXPECT_EQ(12, a1.Perform( EXPECT_EQ(12, a1.Perform(dummy));
tuple<int, int, double, const string&>(10, 2, 5.6, s)));
Action<int(int, int, bool, int*)> a2 = Action<int(int, int, bool, int*)> a2 =
Invoke(SumOfFirst2); Invoke(SumOfFirst2);
...@@ -380,10 +379,10 @@ TEST(InvokeMethodTest, Unary) { ...@@ -380,10 +379,10 @@ TEST(InvokeMethodTest, Unary) {
// Tests using Invoke() with a binary method. // Tests using Invoke() with a binary method.
TEST(InvokeMethodTest, Binary) { TEST(InvokeMethodTest, Binary) {
Foo foo; Foo foo;
Action<string(const string&, char)> a = Invoke(&foo, &Foo::Binary); Action<std::string(const std::string&, char)> a = Invoke(&foo, &Foo::Binary);
string s("Hell"); std::string s("Hell");
EXPECT_EQ("Hello", a.Perform( tuple<std::string, char> dummy = make_tuple(s, 'o');
tuple<const string&, char>(s, 'o'))); EXPECT_EQ("Hello", a.Perform(dummy));
} }
// Tests using Invoke() with a ternary method. // Tests using Invoke() with a ternary method.
......
This diff is collapsed.
This diff is collapsed.
...@@ -39,6 +39,12 @@ ...@@ -39,6 +39,12 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
// Silence C4100 (unreferenced formal parameter)
#ifdef _MSC_VER
# pragma warning(push)
# pragma warning(disable:4100)
#endif
using testing::_; using testing::_;
using testing::AnyNumber; using testing::AnyNumber;
using testing::Ge; using testing::Ge;
...@@ -273,6 +279,11 @@ MATCHER_P2(IsPair, first, second, "") { ...@@ -273,6 +279,11 @@ MATCHER_P2(IsPair, first, second, "") {
return Value(arg.first, first) && Value(arg.second, second); return Value(arg.first, first) && Value(arg.second, second);
} }
TEST_F(GMockOutputTest, PrintsMatcher) {
const testing::Matcher<int> m1 = Ge(48);
EXPECT_THAT((std::pair<int, bool>(42, true)), IsPair(m1, true));
}
void TestCatchesLeakedMocksInAdHocTests() { void TestCatchesLeakedMocksInAdHocTests() {
MockFoo* foo = new MockFoo; MockFoo* foo = new MockFoo;
...@@ -293,3 +304,7 @@ int main(int argc, char **argv) { ...@@ -293,3 +304,7 @@ int main(int argc, char **argv) {
TestCatchesLeakedMocksInAdHocTests(); TestCatchesLeakedMocksInAdHocTests();
return RUN_ALL_TESTS(); return RUN_ALL_TESTS();
} }
#ifdef _MSC_VER
# pragma warning(pop)
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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