diff --git a/include/gmock/internal/gmock-port.h b/include/gmock/internal/gmock-port.h index 0cff73fe..649f838f 100644 --- a/include/gmock/internal/gmock-port.h +++ b/include/gmock/internal/gmock-port.h @@ -123,7 +123,7 @@ inline To down_cast(From* f) { // so we only accept pointers // completely. if (false) { const To to = NULL; - implicit_cast(to); + ::testing::internal::implicit_cast(to); } #if GTEST_HAS_RTTI diff --git a/scons/SConscript b/scons/SConscript index 80891209..73c5b916 100644 --- a/scons/SConscript +++ b/scons/SConscript @@ -194,9 +194,6 @@ GtestTest(env, 'gmock_test', [gtest, gmock_main]) # gmock_all_test is commented to save time building and running tests. # Uncomment if necessary. #GtestTest(env, 'gmock_all_test', [gtest, gmock_main]) -# TODO (vladl): Add a test verifying that gmock can be built from -# testing/base/gunit.cc and testing/base/internal/gmock-all.cc after merging -# into the main branch. This is the API for Windows users. ############################################################ # Tests targets using custom environments. diff --git a/src/gmock-matchers.cc b/src/gmock-matchers.cc index 79b525d3..0abca708 100644 --- a/src/gmock-matchers.cc +++ b/src/gmock-matchers.cc @@ -83,18 +83,6 @@ int GetParamIndex(const char* param_names[], const string& param_name) { return kInvalidInterpolation; } -// If *pstr starts with the given prefix, modifies *pstr to be right -// past the prefix and returns true; otherwise leaves *pstr unchanged -// and returns false. None of pstr, *pstr, and prefix can be NULL. -bool SkipPrefix(const char* prefix, const char** pstr) { - const size_t prefix_len = strlen(prefix); - if (strncmp(*pstr, prefix, prefix_len) == 0) { - *pstr += prefix_len; - return true; - } - return false; -} - // Helper function used by ValidateMatcherDescription() to format // error messages. string FormatMatcherDescriptionSyntaxError(const char* description, diff --git a/test/gmock-printers_test.cc b/test/gmock-printers_test.cc index c72e3d3d..e1956202 100644 --- a/test/gmock-printers_test.cc +++ b/test/gmock-printers_test.cc @@ -443,8 +443,14 @@ TEST(PrintPointerToPointerTest, IntPointerPointer) { void MyFunction(int n) {} TEST(PrintPointerTest, NonMemberFunctionPointer) { - EXPECT_EQ(PrintPointer(reinterpret_cast(&MyFunction)), - Print(&MyFunction)); + // We cannot directly cast &MyFunction to const void* because the + // standard disallows casting between pointers to functions and + // pointers to objects, and some compilers (e.g. GCC 3.4) enforce + // this limitation. + EXPECT_EQ( + PrintPointer(reinterpret_cast( + reinterpret_cast(&MyFunction))), + Print(&MyFunction)); int (*p)(bool) = NULL; // NOLINT EXPECT_EQ("NULL", Print(p)); } @@ -973,7 +979,12 @@ TEST(PrintReferenceTest, HandlesFunctionPointer) { void (*fp)(int n) = &MyFunction; const string fp_pointer_string = PrintPointer(reinterpret_cast(&fp)); - const string fp_string = PrintPointer(reinterpret_cast(fp)); + // We cannot directly cast &MyFunction to const void* because the + // standard disallows casting between pointers to functions and + // pointers to objects, and some compilers (e.g. GCC 3.4) enforce + // this limitation. + const string fp_string = PrintPointer(reinterpret_cast( + reinterpret_cast(fp))); EXPECT_EQ("@" + fp_pointer_string + " " + fp_string, PrintByRef(fp)); } diff --git a/test/gmock_leak_test.py b/test/gmock_leak_test.py index 429cc6ad..38ff9d01 100755 --- a/test/gmock_leak_test.py +++ b/test/gmock_leak_test.py @@ -33,8 +33,6 @@ __author__ = 'wan@google.com (Zhanyong Wan)' -import os -import unittest import gmock_test_utils @@ -45,7 +43,7 @@ TEST_WITH_ON_CALL = [PROGRAM_PATH, '--gtest_filter=*OnCall*'] TEST_MULTIPLE_LEAKS = [PROGRAM_PATH, '--gtest_filter=*MultipleLeaked*'] -class GMockLeakTest(unittest.TestCase): +class GMockLeakTest(gmock_test_utils.TestCase): def testCatchesLeakedMockByDefault(self): self.assertNotEqual( diff --git a/test/gmock_output_test.py b/test/gmock_output_test.py index c5f05b34..614a58fa 100755 --- a/test/gmock_output_test.py +++ b/test/gmock_output_test.py @@ -43,7 +43,6 @@ __author__ = 'wan@google.com (Zhanyong Wan)' import os import re import sys -import unittest import gmock_test_utils @@ -154,7 +153,7 @@ def GetNormalizedCommandOutputAndLeakyTests(cmd): return GetNormalizedOutputAndLeakyTests(GetShellCommandOutput(cmd)) -class GMockOutputTest(unittest.TestCase): +class GMockOutputTest(gmock_test_utils.TestCase): def testOutput(self): (output, leaky_tests) = GetNormalizedCommandOutputAndLeakyTests(COMMAND) golden_file = open(GOLDEN_PATH, 'rb') diff --git a/test/gmock_test_utils.py b/test/gmock_test_utils.py index ae15a108..fa896a47 100755 --- a/test/gmock_test_utils.py +++ b/test/gmock_test_utils.py @@ -36,6 +36,7 @@ __author__ = 'wan@google.com (Zhanyong Wan)' import os import sys + # Determines path to gtest_test_utils and imports it. SCRIPT_DIR = os.path.dirname(__file__) or '.' @@ -144,8 +145,16 @@ def GetExitStatus(exit_code): return -1 +# Suppresses the "Invalid const name" lint complaint +# pylint: disable-msg=C6409 + # Exposes Subprocess from gtest_test_utils. -Subprocess = gtest_test_utils.Subprocess # pylint: disable-msg=C6409 +Subprocess = gtest_test_utils.Subprocess + +# Exposes TestCase from gtest_test_utils. +TestCase = gtest_test_utils.TestCase + +# pylint: enable-msg=C6409 def Main():