summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosak@google.com <kosak@google.com@8415998a-534a-0410-bf83-d39667b30386>2015-02-14 22:05:58 +0000
committerkosak@google.com <kosak@google.com@8415998a-534a-0410-bf83-d39667b30386>2015-02-14 22:05:58 +0000
commit808427e33b756cb270e66304ba61834430b68ac6 (patch)
tree59c80ebfe8e93ff55f33bb89682a1dff557d076c
parent6eb9d94884f217d84bcef9054818bd38aeab9d41 (diff)
downloadgooglemock-808427e33b756cb270e66304ba61834430b68ac6.tar.gz
Suppresses the stack trace in a warning for uninteresting call by default; the stack trace will still be printed when --gmock_verbose=info is printed.
git-svn-id: http://googlemock.googlecode.com/svn/trunk@514 8415998a-534a-0410-bf83-d39667b30386
-rw-r--r--src/gmock-spec-builders.cc9
-rw-r--r--test/gmock-spec-builders_test.cc27
-rw-r--r--test/gmock_output_test_golden.txt4
3 files changed, 27 insertions, 13 deletions
diff --git a/src/gmock-spec-builders.cc b/src/gmock-spec-builders.cc
index a74f9e5..2b48af1 100644
--- a/src/gmock-spec-builders.cc
+++ b/src/gmock-spec-builders.cc
@@ -245,9 +245,12 @@ GTEST_API_ ThreadLocal<Sequence*> g_gmock_implicit_sequence;
// Reports an uninteresting call (whose description is in msg) in the
// manner specified by 'reaction'.
void ReportUninterestingCall(CallReaction reaction, const string& msg) {
+ // Include a stack trace only if --gmock_verbose=info is specified.
+ const int stack_frames_to_skip =
+ GMOCK_FLAG(verbose) == kInfoVerbosity ? 3 : -1;
switch (reaction) {
case kAllow:
- Log(kInfo, msg, 3);
+ Log(kInfo, msg, stack_frames_to_skip);
break;
case kWarn:
Log(kWarning,
@@ -256,8 +259,8 @@ void ReportUninterestingCall(CallReaction reaction, const string& msg) {
"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);
+ "Knowing_When_to_Expect for details.\n",
+ stack_frames_to_skip);
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 b8f7a11..342c22f 100644
--- a/test/gmock-spec-builders_test.cc
+++ b/test/gmock-spec-builders_test.cc
@@ -81,6 +81,7 @@ using testing::Gt;
using testing::InSequence;
using testing::Invoke;
using testing::InvokeWithoutArgs;
+using testing::IsNotSubstring;
using testing::IsSubstring;
using testing::Lt;
using testing::Message;
@@ -1977,9 +1978,25 @@ class VerboseFlagPreservingFixture : public testing::Test {
#if GTEST_HAS_STREAM_REDIRECTION
// Tests that an uninteresting mock function call on a naggy mock
-// generates a warning containing the stack trace.
+// generates a warning without the stack trace when
+// --gmock_verbose=warning is specified.
TEST(FunctionCallMessageTest,
- UninterestingCallOnNaggyMockGeneratesFyiWithStackTrace) {
+ UninterestingCallOnNaggyMockGeneratesNoStackTraceWhenVerboseWarning) {
+ GMOCK_FLAG(verbose) = kWarningVerbosity;
+ NaggyMock<MockC> c;
+ CaptureStdout();
+ c.VoidMethod(false, 5, "Hi", NULL, Printable(), Unprintable());
+ const std::string output = GetCapturedStdout();
+ EXPECT_PRED_FORMAT2(IsSubstring, "GMOCK WARNING", output);
+ EXPECT_PRED_FORMAT2(IsNotSubstring, "Stack trace:", output);
+}
+
+// Tests that an uninteresting mock function call on a naggy mock
+// generates a warning containing the stack trace when
+// --gmock_verbose=info is specified.
+TEST(FunctionCallMessageTest,
+ UninterestingCallOnNaggyMockGeneratesFyiWithStackTraceWhenVerboseInfo) {
+ GMOCK_FLAG(verbose) = kInfoVerbosity;
NaggyMock<MockC> c;
CaptureStdout();
c.VoidMethod(false, 5, "Hi", NULL, Printable(), Unprintable());
@@ -2112,8 +2129,7 @@ class GMockVerboseFlagTest : public VerboseFlagPreservingFixture {
"\nGMOCK WARNING:\n"
"Uninteresting mock function call - returning directly.\n"
" Function call: DoA(5)\n" +
- note +
- "\nStack trace:\n",
+ note,
"DoA");
// A non-void-returning function.
@@ -2126,8 +2142,7 @@ class GMockVerboseFlagTest : public VerboseFlagPreservingFixture {
"Uninteresting mock function call - returning default value.\n"
" Function call: Binary(2, 1)\n"
" Returns: false\n" +
- note +
- "\nStack trace:\n",
+ note,
"Binary");
}
};
diff --git a/test/gmock_output_test_golden.txt b/test/gmock_output_test_golden.txt
index b6b2d34..650a8f0 100644
--- a/test/gmock_output_test_golden.txt
+++ b/test/gmock_output_test_golden.txt
@@ -76,7 +76,6 @@ 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
@@ -84,7 +83,6 @@ 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
unknown file: Failure
@@ -269,7 +267,6 @@ 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:
Uninteresting mock function call - taking default action specified at:
@@ -277,7 +274,6 @@ 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