From 4f5c01b4c96913e2d773b23ca5b81b92bdc29fd0 Mon Sep 17 00:00:00 2001 From: misterg Date: Wed, 9 Aug 2017 12:15:00 -0400 Subject: Added googlemock tests --- googlemock/test/BUILD | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 googlemock/test/BUILD (limited to 'googlemock/test') diff --git a/googlemock/test/BUILD b/googlemock/test/BUILD new file mode 100644 index 00000000..ae0a66e8 --- /dev/null +++ b/googlemock/test/BUILD @@ -0,0 +1,29 @@ +# Copyright 2017 Google Inc. All Rights Reserved. +# Author: misterg@google.com (Gennadiy Civil) +# +# Description: +# Bazel BUILD file for googletest-googlemock, initial revision +# + +""" gmock own tests """ + +cc_test( + name = "gmock_all_test", + size = "small", + srcs = glob( + include = [ + "gmock-*.cc", + ], + ), + copts = select({ + "//:win": ["-DGTEST_USE_OWN_TR1_TUPLE=0"], + "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"], + }), + linkopts = select({ + "//:win": [], + "//conditions:default": [ + "-pthread", + ], + }), + deps = ["//:gtest"], +) -- cgit v1.2.3 From 5a5e3c17bbec88eb48ba92e0ad325ceaa45a81aa Mon Sep 17 00:00:00 2001 From: misterg Date: Wed, 9 Aug 2017 12:18:12 -0400 Subject: Added googlemock tests --- googlemock/test/BUILD | 4 ---- 1 file changed, 4 deletions(-) (limited to 'googlemock/test') diff --git a/googlemock/test/BUILD b/googlemock/test/BUILD index ae0a66e8..ca597002 100644 --- a/googlemock/test/BUILD +++ b/googlemock/test/BUILD @@ -15,10 +15,6 @@ cc_test( "gmock-*.cc", ], ), - copts = select({ - "//:win": ["-DGTEST_USE_OWN_TR1_TUPLE=0"], - "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"], - }), linkopts = select({ "//:win": [], "//conditions:default": [ -- cgit v1.2.3 From 66a036959f09071fa0d5f7af4a5cbf470a2c6137 Mon Sep 17 00:00:00 2001 From: misterg Date: Wed, 9 Aug 2017 14:37:58 -0400 Subject: WIP --- googlemock/test/BUILD.bazel | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 googlemock/test/BUILD.bazel (limited to 'googlemock/test') diff --git a/googlemock/test/BUILD.bazel b/googlemock/test/BUILD.bazel new file mode 100644 index 00000000..88e82e60 --- /dev/null +++ b/googlemock/test/BUILD.bazel @@ -0,0 +1,25 @@ +# Copyright 2017 Google Inc. All Rights Reserved. +# Author: misterg@google.com (Gennadiy Civil) +# +# Description: +# Bazel BUILD file for googletest-googlemock/test, initial revision +# + +""" gmock own tests """ + +cc_test( + name = "gmock_all_test", + size = "small", + srcs = glob( + include = [ + "gmock-*.cc", + ], + ), + linkopts = select({ + "//:win": [], + "//conditions:default": [ + "-pthread", + ], + }), + deps = ["//:gtest"], +) -- cgit v1.2.3 From b98e30b42704e214871f6baba458ba7c1066d0ed Mon Sep 17 00:00:00 2001 From: misterg Date: Thu, 10 Aug 2017 11:54:46 -0400 Subject: Initial Revision, review 164634031 --- googlemock/test/BUILD | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 googlemock/test/BUILD (limited to 'googlemock/test') diff --git a/googlemock/test/BUILD b/googlemock/test/BUILD deleted file mode 100644 index ca597002..00000000 --- a/googlemock/test/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2017 Google Inc. All Rights Reserved. -# Author: misterg@google.com (Gennadiy Civil) -# -# Description: -# Bazel BUILD file for googletest-googlemock, initial revision -# - -""" gmock own tests """ - -cc_test( - name = "gmock_all_test", - size = "small", - srcs = glob( - include = [ - "gmock-*.cc", - ], - ), - linkopts = select({ - "//:win": [], - "//conditions:default": [ - "-pthread", - ], - }), - deps = ["//:gtest"], -) -- cgit v1.2.3 From cb5b05436dfc247399c8a3cc0dc6199bb00200f8 Mon Sep 17 00:00:00 2001 From: misterg Date: Thu, 10 Aug 2017 12:03:27 -0400 Subject: Added Copyright --- googlemock/test/BUILD.bazel | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'googlemock/test') diff --git a/googlemock/test/BUILD.bazel b/googlemock/test/BUILD.bazel index 88e82e60..6e67f187 100644 --- a/googlemock/test/BUILD.bazel +++ b/googlemock/test/BUILD.bazel @@ -1,9 +1,36 @@ -# Copyright 2017 Google Inc. All Rights Reserved. -# Author: misterg@google.com (Gennadiy Civil) +# Copyright 2017 Google Inc. +# All Rights Reserved. +# +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: # -# Description: -# Bazel BUILD file for googletest-googlemock/test, initial revision +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. # +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Author: misterg@google.com (Gennadiy Civil) +# +# Bazel Build for Google C++ Testing Framework(Google Test)-googlemock """ gmock own tests """ -- cgit v1.2.3 From 95f18d99383c27bf645e8dc4f5dcaa188f6bafe3 Mon Sep 17 00:00:00 2001 From: Maurice Gilden Date: Fri, 18 Aug 2017 11:21:28 +0200 Subject: adds test for NiceMock with unknown return value --- googlemock/test/gmock-nice-strict_test.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index 5d6ccc4f..5e6d53be 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -79,6 +79,7 @@ class MockFoo : public Foo { MOCK_METHOD0(DoThis, void()); MOCK_METHOD1(DoThat, int(bool flag)); + MOCK_METHOD0(ReturnSomething, Mock()); private: GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo); @@ -207,6 +208,20 @@ TEST(NiceMockTest, AllowsExpectedCall) { nice_foo.DoThis(); } +// Tests that an unexpected call on a nice mock which returns a non-built in +// default value throws an exception and the exception contains the name of +// the method. +TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) { + NiceMock nice_foo; + try { + nice_foo.ReturnSomething(); + FAIL(); + } catch (const std::runtime_error& ex) { + const std::string exception_msg(ex.what()); + EXPECT_NE(exception_msg.find("ReturnSomething"), std::string::npos); + } +} + // Tests that an unexpected call on a nice mock fails. TEST(NiceMockTest, UnexpectedCallFails) { NiceMock nice_foo; -- cgit v1.2.3 From cc99900036ae3514d8918acba87817fa24f6c993 Mon Sep 17 00:00:00 2001 From: Maurice Gilden Date: Fri, 18 Aug 2017 11:46:15 +0200 Subject: Fix test if exceptions are not supported --- googlemock/test/gmock-nice-strict_test.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index 5e6d53be..86706814 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -213,6 +213,7 @@ TEST(NiceMockTest, AllowsExpectedCall) { // the method. TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) { NiceMock nice_foo; +#if GTEST_HAS_EXCEPTIONS try { nice_foo.ReturnSomething(); FAIL(); @@ -220,6 +221,11 @@ TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) { const std::string exception_msg(ex.what()); EXPECT_NE(exception_msg.find("ReturnSomething"), std::string::npos); } +#else + EXPECT_DEATH_IF_SUPPORTED({ + nice_foo.ReturnSomething(); + }, ""); +#endif } // Tests that an unexpected call on a nice mock fails. -- cgit v1.2.3 From 36777251c07788549eaa72a9be0cf482ab322c46 Mon Sep 17 00:00:00 2001 From: Maurice Gilden Date: Fri, 18 Aug 2017 12:28:50 +0200 Subject: Switch return type to class without default constructor --- googlemock/test/gmock-nice-strict_test.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index 86706814..1d7784b1 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -62,6 +62,12 @@ using testing::internal::CaptureStdout; using testing::internal::GetCapturedStdout; #endif +// Dummy class without default constructor. +class Dummy { + public: + Dummy(int) {} +}; + // Defines some mock classes needed by the tests. class Foo { @@ -79,7 +85,7 @@ class MockFoo : public Foo { MOCK_METHOD0(DoThis, void()); MOCK_METHOD1(DoThat, int(bool flag)); - MOCK_METHOD0(ReturnSomething, Mock()); + MOCK_METHOD0(ReturnSomething, Dummy()); private: GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo); -- cgit v1.2.3 From b0ed43e72447c99f297dc86a75d7d58d53af5a07 Mon Sep 17 00:00:00 2001 From: Maurice Gilden Date: Fri, 18 Aug 2017 15:27:02 +0200 Subject: Change tabs to spaces in test case --- googlemock/test/gmock-nice-strict_test.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index 1d7784b1..a8032e24 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -218,19 +218,19 @@ TEST(NiceMockTest, AllowsExpectedCall) { // default value throws an exception and the exception contains the name of // the method. TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) { - NiceMock nice_foo; + NiceMock nice_foo; #if GTEST_HAS_EXCEPTIONS - try { - nice_foo.ReturnSomething(); - FAIL(); - } catch (const std::runtime_error& ex) { - const std::string exception_msg(ex.what()); - EXPECT_NE(exception_msg.find("ReturnSomething"), std::string::npos); - } + try { + nice_foo.ReturnSomething(); + FAIL(); + } catch (const std::runtime_error& ex) { + const std::string exception_msg(ex.what()); + EXPECT_NE(exception_msg.find("ReturnSomething"), std::string::npos); + } #else - EXPECT_DEATH_IF_SUPPORTED({ - nice_foo.ReturnSomething(); - }, ""); + EXPECT_DEATH_IF_SUPPORTED({ + nice_foo.ReturnSomething(); + }, ""); #endif } -- cgit v1.2.3 From 026735daf34cf180e34a976b3167cc4b311e3f11 Mon Sep 17 00:00:00 2001 From: Gennadiy Civil Date: Sun, 20 Aug 2017 15:15:31 -0400 Subject: Proposing these changes, please review Slightly better names and cleaner tests. Please review --- googlemock/test/gmock-nice-strict_test.cc | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index a8032e24..2cb0a96d 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -62,10 +62,10 @@ using testing::internal::CaptureStdout; using testing::internal::GetCapturedStdout; #endif -// Dummy class without default constructor. -class Dummy { +// Class without default constructor. +class NotDefaultConstructible { public: - Dummy(int) {} + NotDefaultConstructible(int) {} }; // Defines some mock classes needed by the tests. @@ -85,7 +85,7 @@ class MockFoo : public Foo { MOCK_METHOD0(DoThis, void()); MOCK_METHOD1(DoThat, int(bool flag)); - MOCK_METHOD0(ReturnSomething, Dummy()); + MOCK_METHOD0(ReturnNonDefaultConstructible, NotDefaultConstructible()); private: GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo); @@ -214,23 +214,20 @@ TEST(NiceMockTest, AllowsExpectedCall) { nice_foo.DoThis(); } -// Tests that an unexpected call on a nice mock which returns a non-built in -// default value throws an exception and the exception contains the name of -// the method. +// Tests that an unexpected call on a nice mock which returns a not-default-constructible +// type throws an exception and the exception contains the method's name. TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) { NiceMock nice_foo; #if GTEST_HAS_EXCEPTIONS try { - nice_foo.ReturnSomething(); + nice_foo.ReturnNonDefaultConstructible(); FAIL(); } catch (const std::runtime_error& ex) { const std::string exception_msg(ex.what()); - EXPECT_NE(exception_msg.find("ReturnSomething"), std::string::npos); + EXPECT_THAT(ex.what(), HasSubstr("ReturnNonDefaultConstructible")); } #else - EXPECT_DEATH_IF_SUPPORTED({ - nice_foo.ReturnSomething(); - }, ""); + EXPECT_DEATH_IF_SUPPORTED({ nice_foo.ReturnNonDefaultConstructible(); }, ""); #endif } -- cgit v1.2.3 From 3cf65b5d86d46cceb96ac44672fad84e2d5ad5a7 Mon Sep 17 00:00:00 2001 From: Gennadiy Civil Date: Sun, 20 Aug 2017 15:20:13 -0400 Subject: Added "explicit" as per compiler suggestion --- googlemock/test/gmock-nice-strict_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index 2cb0a96d..fce9ca5b 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -65,7 +65,7 @@ using testing::internal::GetCapturedStdout; // Class without default constructor. class NotDefaultConstructible { public: - NotDefaultConstructible(int) {} + explicit NotDefaultConstructible(int) {} }; // Defines some mock classes needed by the tests. -- cgit v1.2.3 From 1ee8079651584b6bcc444f4b7a66dd2c65a79eb6 Mon Sep 17 00:00:00 2001 From: Maurice Gilden Date: Mon, 21 Aug 2017 10:10:14 +0200 Subject: Remove unused variable --- googlemock/test/gmock-nice-strict_test.cc | 1 - 1 file changed, 1 deletion(-) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index fce9ca5b..0eac6439 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -223,7 +223,6 @@ TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) { nice_foo.ReturnNonDefaultConstructible(); FAIL(); } catch (const std::runtime_error& ex) { - const std::string exception_msg(ex.what()); EXPECT_THAT(ex.what(), HasSubstr("ReturnNonDefaultConstructible")); } #else -- cgit v1.2.3 From 966b549c88032ec43ecd344ab19ca9ca36c30ad9 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Tue, 22 Aug 2017 16:06:26 +0200 Subject: Support ref-qualified member functions in Property(). --- googlemock/test/gmock-matchers_test.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'googlemock/test') diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc index f5ab7c81..fc867487 100644 --- a/googlemock/test/gmock-matchers_test.cc +++ b/googlemock/test/gmock-matchers_test.cc @@ -3588,10 +3588,15 @@ class AClass { // A getter that returns a reference to const. const std::string& s() const { return s_; } +#if GTEST_LANG_CXX11 + const std::string& s_ref() const & { return s_; } +#endif + void set_s(const std::string& new_s) { s_ = new_s; } // A getter that returns a reference to non-const. double& x() const { return x_; } + private: int n_; std::string s_; @@ -3635,6 +3640,21 @@ TEST(PropertyTest, WorksForReferenceToConstProperty) { EXPECT_FALSE(m.Matches(a)); } +#if GTEST_LANG_CXX11 +// Tests that Property(&Foo::property, ...) works when property() is +// ref-qualified. +TEST(PropertyTest, WorksForRefQualifiedProperty) { + Matcher m = Property(&AClass::s_ref, StartsWith("hi")); + + AClass a; + a.set_s("hill"); + EXPECT_TRUE(m.Matches(a)); + + a.set_s("hole"); + EXPECT_FALSE(m.Matches(a)); +} +#endif + // Tests that Property(&Foo::property, ...) works when property() // returns a reference to non-const. TEST(PropertyTest, WorksForReferenceToNonConstProperty) { -- cgit v1.2.3