diff --git a/include/gmock/internal/gmock-port.h b/include/gmock/internal/gmock-port.h index b6c5c7f1..80ee2afc 100644 --- a/include/gmock/internal/gmock-port.h +++ b/include/gmock/internal/gmock-port.h @@ -30,8 +30,11 @@ // Author: vadimb@google.com (Vadim Berman) // // Low-level types and utilities for porting Google Mock to various -// platforms. They are subject to change without notice. DO NOT USE -// THEM IN USER CODE. +// platforms. All macros ending with _ and symbols defined in an +// internal namespace are subject to change without notice. Code +// outside Google Mock MUST NOT USE THEM DIRECTLY. Macros that don't +// end with _ are part of Google Mock's public API and can be used by +// code outside Google Mock. #ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_PORT_H_ #define GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_PORT_H_ @@ -40,8 +43,13 @@ #include #include -// Most of the types needed for porting Google Mock are also required -// for Google Test and are defined in gtest-port.h. +// Most of the utilities needed for porting Google Mock are also +// required for Google Test and are defined in gtest-port.h. +// +// Note to maintainers: to reduce code duplication, prefer adding +// portability utilities to Google Test's gtest-port.h instead of +// here, as Google Mock depends on Google Test. Only add a utility +// here if it's truly specific to Google Mock. #include "gtest/internal/gtest-linked_ptr.h" #include "gtest/internal/gtest-port.h" diff --git a/src/gmock-spec-builders.cc b/src/gmock-spec-builders.cc index abaae3ad..cefb580f 100644 --- a/src/gmock-spec-builders.cc +++ b/src/gmock-spec-builders.cc @@ -250,7 +250,14 @@ void ReportUninterestingCall(CallReaction reaction, const string& msg) { Log(kInfo, msg, 3); break; case kWarn: - Log(kWarning, msg, 3); + Log(kWarning, + msg + + "\nNOTE: You can safely ignore the above warning unless this " + "call should not happen. Do not suppress it by blindly adding " + "an EXPECT_CALL() if you don't mean to enforce the call. " + "See http://code.google.com/p/googlemock/wiki/CookBook#" + "Knowing_When_to_Expect for details.", + 3); break; default: // FAIL Expect(false, NULL, -1, msg); diff --git a/test/gmock-spec-builders_test.cc b/test/gmock-spec-builders_test.cc index 843681cf..ae811498 100644 --- a/test/gmock-spec-builders_test.cc +++ b/test/gmock-spec-builders_test.cc @@ -2088,6 +2088,12 @@ class GMockVerboseFlagTest : public VerboseFlagPreservingFixture { // Tests how the flag affects uninteresting calls on a naggy mock. void TestUninterestingCallOnNaggyMock(bool should_print) { NaggyMock a; + const string note = + "NOTE: You can safely ignore the above warning unless this " + "call should not happen. Do not suppress it by blindly adding " + "an EXPECT_CALL() if you don't mean to enforce the call. " + "See http://code.google.com/p/googlemock/wiki/CookBook#" + "Knowing_When_to_Expect for details."; // A void-returning function. CaptureStdout(); @@ -2097,8 +2103,9 @@ class GMockVerboseFlagTest : public VerboseFlagPreservingFixture { should_print, "\nGMOCK WARNING:\n" "Uninteresting mock function call - returning directly.\n" - " Function call: DoA(5)\n" - "Stack trace:\n", + " Function call: DoA(5)\n" + + note + + "\nStack trace:\n", "DoA"); // A non-void-returning function. @@ -2110,8 +2117,9 @@ class GMockVerboseFlagTest : public VerboseFlagPreservingFixture { "\nGMOCK WARNING:\n" "Uninteresting mock function call - returning default value.\n" " Function call: Binary(2, 1)\n" - " Returns: false\n" - "Stack trace:\n", + " Returns: false\n" + + note + + "\nStack trace:\n", "Binary"); } }; diff --git a/test/gmock_output_test_golden.txt b/test/gmock_output_test_golden.txt index a7ff5630..b6b2d349 100644 --- a/test/gmock_output_test_golden.txt +++ b/test/gmock_output_test_golden.txt @@ -75,6 +75,7 @@ GMOCK WARNING: Uninteresting mock function call - returning default value. Function call: Bar2(0, 1) Returns: false +NOTE: You can safely ignore the above warning unless this call should not happen. Do not suppress it by blindly adding an EXPECT_CALL() if you don't mean to enforce the call. See http://code.google.com/p/googlemock/wiki/CookBook#Knowing_When_to_Expect for details. Stack trace: [ OK ] GMockOutputTest.UninterestingCall [ RUN ] GMockOutputTest.UninterestingCallToVoidFunction @@ -82,6 +83,7 @@ Stack trace: GMOCK WARNING: Uninteresting mock function call - returning directly. Function call: Bar3(0, 1) +NOTE: You can safely ignore the above warning unless this call should not happen. Do not suppress it by blindly adding an EXPECT_CALL() if you don't mean to enforce the call. See http://code.google.com/p/googlemock/wiki/CookBook#Knowing_When_to_Expect for details. Stack trace: [ OK ] GMockOutputTest.UninterestingCallToVoidFunction [ RUN ] GMockOutputTest.RetiredExpectation @@ -266,6 +268,7 @@ Uninteresting mock function call - taking default action specified at: FILE:#: Function call: Bar2(2, 2) Returns: true +NOTE: You can safely ignore the above warning unless this call should not happen. Do not suppress it by blindly adding an EXPECT_CALL() if you don't mean to enforce the call. See http://code.google.com/p/googlemock/wiki/CookBook#Knowing_When_to_Expect for details. Stack trace: GMOCK WARNING: @@ -273,6 +276,7 @@ Uninteresting mock function call - taking default action specified at: FILE:#: Function call: Bar2(1, 1) Returns: false +NOTE: You can safely ignore the above warning unless this call should not happen. Do not suppress it by blindly adding an EXPECT_CALL() if you don't mean to enforce the call. See http://code.google.com/p/googlemock/wiki/CookBook#Knowing_When_to_Expect for details. Stack trace: [ OK ] GMockOutputTest.UninterestingCallWithDefaultAction [ RUN ] GMockOutputTest.ExplicitActionsRunOutWithDefaultAction