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.
This commit is contained in:
parent
d478a1f46d
commit
5625dd333a
@ -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);
|
||||
|
@ -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");
|
||||
}
|
||||
};
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user