[ RUN      ] GMockOutputTest.ExpectedCall

FILE:#: EXPECT_CALL(foo_, Bar2(0, _)) invoked
Stack trace:

FILE:#: Mock function call matches EXPECT_CALL(foo_, Bar2(0, _))...
    Function call: Bar2(0, 0)
          Returns: false
Stack trace:
[       OK ] GMockOutputTest.ExpectedCall
[ RUN      ] GMockOutputTest.ExpectedCallToVoidFunction

FILE:#: EXPECT_CALL(foo_, Bar3(0, _)) invoked
Stack trace:

FILE:#: Mock function call matches EXPECT_CALL(foo_, Bar3(0, _))...
    Function call: Bar3(0, 0)
Stack trace:
[       OK ] GMockOutputTest.ExpectedCallToVoidFunction
[ RUN      ] GMockOutputTest.ExplicitActionsRunOut

GMOCK WARNING:
FILE:#: Too few actions specified in EXPECT_CALL(foo_, Bar2(_, _))...
Expected to be called twice, but has only 1 WillOnce().
GMOCK WARNING:
FILE:#: Actions ran out in EXPECT_CALL(foo_, Bar2(_, _))...
Called 2 times, but only 1 WillOnce() is specified - returning default value.
Stack trace:
[       OK ] GMockOutputTest.ExplicitActionsRunOut
[ RUN      ] GMockOutputTest.UnexpectedCall
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar2(1, 0)
          Returns: false
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar2(0, _))...
  Expected arg #0: is equal to 0
           Actual: 1
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnexpectedCall
[ RUN      ] GMockOutputTest.UnexpectedCallToVoidFunction
unknown file: Failure

Unexpected mock function call - returning directly.
    Function call: Bar3(1, 0)
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar3(0, _))...
  Expected arg #0: is equal to 0
           Actual: 1
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnexpectedCallToVoidFunction
[ RUN      ] GMockOutputTest.ExcessiveCall
FILE:#: Failure
Mock function called more times than expected - returning default value.
    Function call: Bar2(0, 1)
          Returns: false
         Expected: to be called once
           Actual: called twice - over-saturated and active
[  FAILED  ] GMockOutputTest.ExcessiveCall
[ RUN      ] GMockOutputTest.ExcessiveCallToVoidFunction
FILE:#: Failure
Mock function called more times than expected - returning directly.
    Function call: Bar3(0, 1)
         Expected: to be called once
           Actual: called twice - over-saturated and active
[  FAILED  ] GMockOutputTest.ExcessiveCallToVoidFunction
[ RUN      ] GMockOutputTest.UninterestingCall

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 https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md#knowing-when-to-expect for details.
[       OK ] GMockOutputTest.UninterestingCall
[ RUN      ] GMockOutputTest.UninterestingCallToVoidFunction

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 https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md#knowing-when-to-expect for details.
[       OK ] GMockOutputTest.UninterestingCallToVoidFunction
[ RUN      ] GMockOutputTest.RetiredExpectation
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar2(1, 1)
          Returns: false
Google Mock tried the following 2 expectations, but none matched:

FILE:#: tried expectation #0: EXPECT_CALL(foo_, Bar2(_, _))...
         Expected: the expectation is active
           Actual: it is retired
         Expected: to be called once
           Actual: called once - saturated and retired
FILE:#: tried expectation #1: EXPECT_CALL(foo_, Bar2(0, 0))...
  Expected arg #0: is equal to 0
           Actual: 1
  Expected arg #1: is equal to 0
           Actual: 1
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.RetiredExpectation
[ RUN      ] GMockOutputTest.UnsatisfiedPrerequisite
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar2(1, 0)
          Returns: false
Google Mock tried the following 2 expectations, but none matched:

FILE:#: tried expectation #0: EXPECT_CALL(foo_, Bar2(0, 0))...
  Expected arg #0: is equal to 0
           Actual: 1
         Expected: to be called once
           Actual: never called - unsatisfied and active
FILE:#: tried expectation #1: EXPECT_CALL(foo_, Bar2(1, _))...
         Expected: all pre-requisites are satisfied
           Actual: the following immediate pre-requisites are not satisfied:
FILE:#: pre-requisite #0
                   (end of pre-requisites)
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnsatisfiedPrerequisite
[ RUN      ] GMockOutputTest.UnsatisfiedPrerequisites
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar2(1, 0)
          Returns: false
Google Mock tried the following 2 expectations, but none matched:

FILE:#: tried expectation #0: EXPECT_CALL(foo_, Bar2(0, 0))...
  Expected arg #0: is equal to 0
           Actual: 1
         Expected: to be called once
           Actual: never called - unsatisfied and active
FILE:#: tried expectation #1: EXPECT_CALL(foo_, Bar2(1, _))...
         Expected: all pre-requisites are satisfied
           Actual: the following immediate pre-requisites are not satisfied:
FILE:#: pre-requisite #0
FILE:#: pre-requisite #1
                   (end of pre-requisites)
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnsatisfiedPrerequisites
[ RUN      ] GMockOutputTest.UnsatisfiedWith
FILE:#: Failure
Actual function call count doesn't match EXPECT_CALL(foo_, Bar2(_, _))...
    Expected args: are a pair where the first >= the second
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnsatisfiedWith
[ RUN      ] GMockOutputTest.UnsatisfiedExpectation
FILE:#: Failure
Actual function call count doesn't match EXPECT_CALL(foo_, Bar2(0, _))...
         Expected: to be called twice
           Actual: called once - unsatisfied and active
FILE:#: Failure
Actual function call count doesn't match EXPECT_CALL(foo_, Bar(_, _, _))...
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnsatisfiedExpectation
[ RUN      ] GMockOutputTest.MismatchArguments
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar(@0x# "Ho", 0, -0.1)
          Returns: '\0'
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar(Ref(s), _, Ge(0)))...
  Expected arg #0: references the variable @0x# "Hi"
           Actual: "Ho", which is located @0x#
  Expected arg #2: is >= 0
           Actual: -0.1
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.MismatchArguments
[ RUN      ] GMockOutputTest.MismatchWith
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar2(2, 3)
          Returns: false
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar2(Ge(2), Ge(1)))...
    Expected args: are a pair where the first >= the second
           Actual: don't match
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.MismatchWith
[ RUN      ] GMockOutputTest.MismatchArgumentsAndWith
unknown file: Failure

Unexpected mock function call - returning default value.
    Function call: Bar2(1, 3)
          Returns: false
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar2(Ge(2), Ge(1)))...
  Expected arg #0: is >= 2
           Actual: 1
    Expected args: are a pair where the first >= the second
           Actual: don't match
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.MismatchArgumentsAndWith
[ RUN      ] GMockOutputTest.UnexpectedCallWithDefaultAction
unknown file: Failure

Unexpected mock function call - taking default action specified at:
FILE:#:
    Function call: Bar2(1, 0)
          Returns: false
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar2(2, 2))...
  Expected arg #0: is equal to 2
           Actual: 1
  Expected arg #1: is equal to 2
           Actual: 0
         Expected: to be called once
           Actual: never called - unsatisfied and active
unknown file: Failure

Unexpected mock function call - taking default action specified at:
FILE:#:
    Function call: Bar2(0, 0)
          Returns: true
Google Mock tried the following 1 expectation, but it didn't match:

FILE:#: EXPECT_CALL(foo_, Bar2(2, 2))...
  Expected arg #0: is equal to 2
           Actual: 0
  Expected arg #1: is equal to 2
           Actual: 0
         Expected: to be called once
           Actual: never called - unsatisfied and active
[  FAILED  ] GMockOutputTest.UnexpectedCallWithDefaultAction
[ RUN      ] GMockOutputTest.ExcessiveCallWithDefaultAction
FILE:#: Failure
Mock function called more times than expected - taking default action specified at:
FILE:#:
    Function call: Bar2(2, 2)
          Returns: true
         Expected: to be called once
           Actual: called twice - over-saturated and active
FILE:#: Failure
Mock function called more times than expected - taking default action specified at:
FILE:#:
    Function call: Bar2(1, 1)
          Returns: false
         Expected: to be called once
           Actual: called twice - over-saturated and active
[  FAILED  ] GMockOutputTest.ExcessiveCallWithDefaultAction
[ RUN      ] GMockOutputTest.UninterestingCallWithDefaultAction

GMOCK WARNING:
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 https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md#knowing-when-to-expect for details.

GMOCK WARNING:
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 https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md#knowing-when-to-expect for details.
[       OK ] GMockOutputTest.UninterestingCallWithDefaultAction
[ RUN      ] GMockOutputTest.ExplicitActionsRunOutWithDefaultAction

GMOCK WARNING:
FILE:#: Too few actions specified in EXPECT_CALL(foo_, Bar2(_, _))...
Expected to be called twice, but has only 1 WillOnce().
GMOCK WARNING:
FILE:#: Actions ran out in EXPECT_CALL(foo_, Bar2(_, _))...
Called 2 times, but only 1 WillOnce() is specified - taking default action specified at:
FILE:#:
Stack trace:
[       OK ] GMockOutputTest.ExplicitActionsRunOutWithDefaultAction
[ RUN      ] GMockOutputTest.CatchesLeakedMocks
[       OK ] GMockOutputTest.CatchesLeakedMocks
[  FAILED  ] GMockOutputTest.UnexpectedCall
[  FAILED  ] GMockOutputTest.UnexpectedCallToVoidFunction
[  FAILED  ] GMockOutputTest.ExcessiveCall
[  FAILED  ] GMockOutputTest.ExcessiveCallToVoidFunction
[  FAILED  ] GMockOutputTest.RetiredExpectation
[  FAILED  ] GMockOutputTest.UnsatisfiedPrerequisite
[  FAILED  ] GMockOutputTest.UnsatisfiedPrerequisites
[  FAILED  ] GMockOutputTest.UnsatisfiedWith
[  FAILED  ] GMockOutputTest.UnsatisfiedExpectation
[  FAILED  ] GMockOutputTest.MismatchArguments
[  FAILED  ] GMockOutputTest.MismatchWith
[  FAILED  ] GMockOutputTest.MismatchArgumentsAndWith
[  FAILED  ] GMockOutputTest.UnexpectedCallWithDefaultAction
[  FAILED  ] GMockOutputTest.ExcessiveCallWithDefaultAction


FILE:#: ERROR: this mock object should be deleted but never is. Its address is @0x#.
FILE:#: ERROR: this mock object should be deleted but never is. Its address is @0x#.
FILE:#: ERROR: this mock object should be deleted but never is. Its address is @0x#.
ERROR: 3 leaked mock objects found at program exit.
