@@ -742,12 +742,12 @@ you can do it earlier:
|
||||
using ::testing::Mock;
|
||||
...
|
||||
// Verifies and removes the expectations on mock_obj;
|
||||
// returns true if successful.
|
||||
// returns true if and only if successful.
|
||||
Mock::VerifyAndClearExpectations(&mock_obj);
|
||||
...
|
||||
// Verifies and removes the expectations on mock_obj;
|
||||
// also removes the default actions set by ON_CALL();
|
||||
// returns true if successful.
|
||||
// returns true if and only if successful.
|
||||
Mock::VerifyAndClear(&mock_obj);
|
||||
```
|
||||
|
||||
|
||||
@@ -1270,8 +1270,8 @@ what if you want to make sure the value *pointed to* by the pointer, instead of
|
||||
the pointer itself, has a certain property? Well, you can use the `Pointee(m)`
|
||||
matcher.
|
||||
|
||||
`Pointee(m)` matches a pointer if `m` matches the value the pointer points to.
|
||||
For example:
|
||||
`Pointee(m)` matches a pointer if and only if `m` matches the value the pointer
|
||||
points to. For example:
|
||||
|
||||
```cpp
|
||||
using ::testing::Ge;
|
||||
@@ -3573,7 +3573,7 @@ class MatcherInterface {
|
||||
public:
|
||||
virtual ~MatcherInterface();
|
||||
|
||||
// Returns true if the matcher matches x; also explains the match
|
||||
// Returns true if and only if the matcher matches x; also explains the match
|
||||
// result to 'listener'.
|
||||
virtual bool MatchAndExplain(T x, MatchResultListener* listener) const = 0;
|
||||
|
||||
@@ -3727,10 +3727,11 @@ class CardinalityInterface {
|
||||
public:
|
||||
virtual ~CardinalityInterface();
|
||||
|
||||
// Returns true if call_count calls will satisfy this cardinality.
|
||||
// Returns true if and only if call_count calls will satisfy this cardinality.
|
||||
virtual bool IsSatisfiedByCallCount(int call_count) const = 0;
|
||||
|
||||
// Returns true if call_count calls will saturate this cardinality.
|
||||
// Returns true if and only if call_count calls will saturate this
|
||||
// cardinality.
|
||||
virtual bool IsSaturatedByCallCount(int call_count) const = 0;
|
||||
|
||||
// Describes self to an ostream.
|
||||
|
||||
@@ -99,7 +99,8 @@ struct BuiltInDefaultValueGetter<T, false> {
|
||||
template <typename T>
|
||||
class BuiltInDefaultValue {
|
||||
public:
|
||||
// This function returns true if type T has a built-in default value.
|
||||
// This function returns true if and only if type T has a built-in default
|
||||
// value.
|
||||
static bool Exists() {
|
||||
return ::std::is_default_constructible<T>::value;
|
||||
}
|
||||
@@ -208,7 +209,7 @@ class DefaultValue {
|
||||
producer_ = nullptr;
|
||||
}
|
||||
|
||||
// Returns true if the user has set the default value for type T.
|
||||
// Returns true if and only if the user has set the default value for type T.
|
||||
static bool IsSet() { return producer_ != nullptr; }
|
||||
|
||||
// Returns true if T has a default return value set by the user or there
|
||||
@@ -269,7 +270,7 @@ class DefaultValue<T&> {
|
||||
// Unsets the default value for type T&.
|
||||
static void Clear() { address_ = nullptr; }
|
||||
|
||||
// Returns true if the user has set the default value for type T&.
|
||||
// Returns true if and only if the user has set the default value for type T&.
|
||||
static bool IsSet() { return address_ != nullptr; }
|
||||
|
||||
// Returns true if T has a default return value set by the user or there
|
||||
@@ -375,7 +376,7 @@ class Action {
|
||||
template <typename Func>
|
||||
explicit Action(const Action<Func>& action) : fun_(action.fun_) {}
|
||||
|
||||
// Returns true if this is the DoDefault() action.
|
||||
// Returns true if and only if this is the DoDefault() action.
|
||||
bool IsDoDefault() const { return fun_ == nullptr; }
|
||||
|
||||
// Performs the action. Note that this method is const even though
|
||||
@@ -395,7 +396,7 @@ class Action {
|
||||
template <typename G>
|
||||
friend class Action;
|
||||
|
||||
// fun_ is an empty function if this is the DoDefault() action.
|
||||
// fun_ is an empty function if and only if this is the DoDefault() action.
|
||||
::std::function<F> fun_;
|
||||
};
|
||||
|
||||
|
||||
@@ -70,10 +70,12 @@ class CardinalityInterface {
|
||||
virtual int ConservativeLowerBound() const { return 0; }
|
||||
virtual int ConservativeUpperBound() const { return INT_MAX; }
|
||||
|
||||
// Returns true if call_count calls will satisfy this cardinality.
|
||||
// Returns true if and only if call_count calls will satisfy this
|
||||
// cardinality.
|
||||
virtual bool IsSatisfiedByCallCount(int call_count) const = 0;
|
||||
|
||||
// Returns true if call_count calls will saturate this cardinality.
|
||||
// Returns true if and only if call_count calls will saturate this
|
||||
// cardinality.
|
||||
virtual bool IsSaturatedByCallCount(int call_count) const = 0;
|
||||
|
||||
// Describes self to an ostream.
|
||||
@@ -98,17 +100,19 @@ class GTEST_API_ Cardinality {
|
||||
int ConservativeLowerBound() const { return impl_->ConservativeLowerBound(); }
|
||||
int ConservativeUpperBound() const { return impl_->ConservativeUpperBound(); }
|
||||
|
||||
// Returns true if call_count calls will satisfy this cardinality.
|
||||
// Returns true if and only if call_count calls will satisfy this
|
||||
// cardinality.
|
||||
bool IsSatisfiedByCallCount(int call_count) const {
|
||||
return impl_->IsSatisfiedByCallCount(call_count);
|
||||
}
|
||||
|
||||
// Returns true if call_count calls will saturate this cardinality.
|
||||
// Returns true if and only if call_count calls will saturate this
|
||||
// cardinality.
|
||||
bool IsSaturatedByCallCount(int call_count) const {
|
||||
return impl_->IsSaturatedByCallCount(call_count);
|
||||
}
|
||||
|
||||
// Returns true if call_count calls will over-saturate this
|
||||
// Returns true if and only if call_count calls will over-saturate this
|
||||
// cardinality, i.e. exceed the maximum number of allowed calls.
|
||||
bool IsOverSaturatedByCallCount(int call_count) const {
|
||||
return impl_->IsSaturatedByCallCount(call_count) &&
|
||||
|
||||
@@ -358,8 +358,8 @@ template <size_t N>
|
||||
class TuplePrefix {
|
||||
public:
|
||||
// TuplePrefix<N>::Matches(matcher_tuple, value_tuple) returns true
|
||||
// if the first N fields of matcher_tuple matches the first N
|
||||
// fields of value_tuple, respectively.
|
||||
// if and only if the first N fields of matcher_tuple matches
|
||||
// the first N fields of value_tuple, respectively.
|
||||
template <typename MatcherTuple, typename ValueTuple>
|
||||
static bool Matches(const MatcherTuple& matcher_tuple,
|
||||
const ValueTuple& value_tuple) {
|
||||
@@ -417,8 +417,8 @@ class TuplePrefix<0> {
|
||||
::std::ostream* /* os */) {}
|
||||
};
|
||||
|
||||
// TupleMatches(matcher_tuple, value_tuple) returns true if all
|
||||
// matchers in matcher_tuple match the corresponding fields in
|
||||
// TupleMatches(matcher_tuple, value_tuple) returns true if and only if
|
||||
// all matchers in matcher_tuple match the corresponding fields in
|
||||
// value_tuple. It is a compiler error if matcher_tuple and
|
||||
// value_tuple have different number of fields or incompatible field
|
||||
// types.
|
||||
@@ -2530,7 +2530,8 @@ class KeyMatcherImpl : public MatcherInterface<PairType> {
|
||||
testing::SafeMatcherCast<const KeyType&>(inner_matcher)) {
|
||||
}
|
||||
|
||||
// Returns true if 'key_value.first' (the key) matches the inner matcher.
|
||||
// Returns true if and only if 'key_value.first' (the key) matches the inner
|
||||
// matcher.
|
||||
bool MatchAndExplain(PairType key_value,
|
||||
MatchResultListener* listener) const override {
|
||||
StringMatchResultListener inner_listener;
|
||||
@@ -2612,8 +2613,8 @@ class PairMatcherImpl : public MatcherInterface<PairType> {
|
||||
second_matcher_.DescribeNegationTo(os);
|
||||
}
|
||||
|
||||
// Returns true if 'a_pair.first' matches first_matcher and 'a_pair.second'
|
||||
// matches second_matcher.
|
||||
// Returns true if and only if 'a_pair.first' matches first_matcher and
|
||||
// 'a_pair.second' matches second_matcher.
|
||||
bool MatchAndExplain(PairType a_pair,
|
||||
MatchResultListener* listener) const override {
|
||||
if (!listener->IsInterested()) {
|
||||
@@ -3148,8 +3149,8 @@ class ElementsAreArrayMatcher {
|
||||
|
||||
// Given a 2-tuple matcher tm of type Tuple2Matcher and a value second
|
||||
// of type Second, BoundSecondMatcher<Tuple2Matcher, Second>(tm,
|
||||
// second) is a polymorphic matcher that matches a value x if tm
|
||||
// matches tuple (x, second). Useful for implementing
|
||||
// second) is a polymorphic matcher that matches a value x if and only if
|
||||
// tm matches tuple (x, second). Useful for implementing
|
||||
// UnorderedPointwise() in terms of UnorderedElementsAreArray().
|
||||
//
|
||||
// BoundSecondMatcher is copyable and assignable, as we need to put
|
||||
@@ -3213,8 +3214,8 @@ class BoundSecondMatcher {
|
||||
|
||||
// Given a 2-tuple matcher tm and a value second,
|
||||
// MatcherBindSecond(tm, second) returns a matcher that matches a
|
||||
// value x if tm matches tuple (x, second). Useful for implementing
|
||||
// UnorderedPointwise() in terms of UnorderedElementsAreArray().
|
||||
// value x if and only if tm matches tuple (x, second). Useful for
|
||||
// implementing UnorderedPointwise() in terms of UnorderedElementsAreArray().
|
||||
template <typename Tuple2Matcher, typename Second>
|
||||
BoundSecondMatcher<Tuple2Matcher, Second> MatcherBindSecond(
|
||||
const Tuple2Matcher& tm, const Second& second) {
|
||||
@@ -3705,7 +3706,7 @@ WhenDynamicCastTo(const Matcher<To>& inner_matcher) {
|
||||
// Creates a matcher that matches an object whose given field matches
|
||||
// 'matcher'. For example,
|
||||
// Field(&Foo::number, Ge(5))
|
||||
// matches a Foo object x if x.number >= 5.
|
||||
// matches a Foo object x if and only if x.number >= 5.
|
||||
template <typename Class, typename FieldType, typename FieldMatcher>
|
||||
inline PolymorphicMatcher<
|
||||
internal::FieldMatcher<Class, FieldType> > Field(
|
||||
@@ -3732,7 +3733,7 @@ inline PolymorphicMatcher<internal::FieldMatcher<Class, FieldType> > Field(
|
||||
// Creates a matcher that matches an object whose given property
|
||||
// matches 'matcher'. For example,
|
||||
// Property(&Foo::str, StartsWith("hi"))
|
||||
// matches a Foo object x if x.str() starts with "hi".
|
||||
// matches a Foo object x if and only if x.str() starts with "hi".
|
||||
template <typename Class, typename PropertyType, typename PropertyMatcher>
|
||||
inline PolymorphicMatcher<internal::PropertyMatcher<
|
||||
Class, PropertyType, PropertyType (Class::*)() const> >
|
||||
@@ -3787,11 +3788,10 @@ Property(const std::string& property_name,
|
||||
property_name, property, MatcherCast<const PropertyType&>(matcher)));
|
||||
}
|
||||
|
||||
// Creates a matcher that matches an object if the result of applying
|
||||
// a callable to x matches 'matcher'.
|
||||
// For example,
|
||||
// Creates a matcher that matches an object if and only if the result of
|
||||
// applying a callable to x matches 'matcher'. For example,
|
||||
// ResultOf(f, StartsWith("hi"))
|
||||
// matches a Foo object x if f(x) starts with "hi".
|
||||
// matches a Foo object x if and only if f(x) starts with "hi".
|
||||
// `callable` parameter can be a function, function pointer, or a functor. It is
|
||||
// required to keep no state affecting the results of the calls on it and make
|
||||
// no assumptions about how many calls will be made. Any state it keeps must be
|
||||
@@ -4341,7 +4341,7 @@ inline internal::MatcherAsPredicate<M> Matches(M matcher) {
|
||||
return internal::MatcherAsPredicate<M>(matcher);
|
||||
}
|
||||
|
||||
// Returns true if the value matches the matcher.
|
||||
// Returns true if and only if the value matches the matcher.
|
||||
template <typename T, typename M>
|
||||
inline bool Value(const T& value, M matcher) {
|
||||
return testing::Matches(matcher)(value);
|
||||
@@ -4547,8 +4547,8 @@ PolymorphicMatcher<internal::variant_matcher::VariantMatcher<T> > VariantWith(
|
||||
|
||||
// These macros allow using matchers to check values in Google Test
|
||||
// tests. ASSERT_THAT(value, matcher) and EXPECT_THAT(value, matcher)
|
||||
// succeed if the value matches the matcher. If the assertion fails,
|
||||
// the value and the description of the matcher will be printed.
|
||||
// succeed if and only if the value matches the matcher. If the assertion
|
||||
// fails, the value and the description of the matcher will be printed.
|
||||
#define ASSERT_THAT(value, matcher) ASSERT_PRED_FORMAT1(\
|
||||
::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
|
||||
#define EXPECT_THAT(value, matcher) EXPECT_PRED_FORMAT1(\
|
||||
|
||||
@@ -332,7 +332,7 @@ class OnCallSpec : public UntypedOnCallSpecBase {
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Returns true if the given arguments match the matchers.
|
||||
// Returns true if and only if the given arguments match the matchers.
|
||||
bool Matches(const ArgumentTuple& args) const {
|
||||
return TupleMatches(matchers_, args) && extra_matcher_.Matches(args);
|
||||
}
|
||||
@@ -390,7 +390,7 @@ class GTEST_API_ Mock {
|
||||
GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex);
|
||||
|
||||
// Verifies all expectations on the given mock object and clears its
|
||||
// default actions and expectations. Returns true if the
|
||||
// default actions and expectations. Returns true if and only if the
|
||||
// verification was successful.
|
||||
static bool VerifyAndClear(void* mock_obj)
|
||||
GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex);
|
||||
@@ -516,7 +516,8 @@ class GTEST_API_ Expectation {
|
||||
// The compiler-generated copy ctor and operator= work exactly as
|
||||
// intended, so we don't need to define our own.
|
||||
|
||||
// Returns true if rhs references the same expectation as this object does.
|
||||
// Returns true if and only if rhs references the same expectation as this
|
||||
// object does.
|
||||
bool operator==(const Expectation& rhs) const {
|
||||
return expectation_base_ == rhs.expectation_base_;
|
||||
}
|
||||
@@ -598,8 +599,8 @@ class ExpectationSet {
|
||||
// The compiler-generator ctor and operator= works exactly as
|
||||
// intended, so we don't need to define our own.
|
||||
|
||||
// Returns true if rhs contains the same set of Expectation objects
|
||||
// as this does.
|
||||
// Returns true if and only if rhs contains the same set of Expectation
|
||||
// objects as this does.
|
||||
bool operator==(const ExpectationSet& rhs) const {
|
||||
return expectations_ == rhs.expectations_;
|
||||
}
|
||||
@@ -760,8 +761,8 @@ class GTEST_API_ ExpectationBase {
|
||||
// by the subclasses to implement the .Times() clause.
|
||||
void SpecifyCardinality(const Cardinality& cardinality);
|
||||
|
||||
// Returns true if the user specified the cardinality explicitly
|
||||
// using a .Times().
|
||||
// Returns true if and only if the user specified the cardinality
|
||||
// explicitly using a .Times().
|
||||
bool cardinality_specified() const { return cardinality_specified_; }
|
||||
|
||||
// Sets the cardinality of this expectation spec.
|
||||
@@ -777,7 +778,7 @@ class GTEST_API_ ExpectationBase {
|
||||
void RetireAllPreRequisites()
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex);
|
||||
|
||||
// Returns true if this expectation is retired.
|
||||
// Returns true if and only if this expectation is retired.
|
||||
bool is_retired() const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
@@ -791,28 +792,29 @@ class GTEST_API_ ExpectationBase {
|
||||
retired_ = true;
|
||||
}
|
||||
|
||||
// Returns true if this expectation is satisfied.
|
||||
// Returns true if and only if this expectation is satisfied.
|
||||
bool IsSatisfied() const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
return cardinality().IsSatisfiedByCallCount(call_count_);
|
||||
}
|
||||
|
||||
// Returns true if this expectation is saturated.
|
||||
// Returns true if and only if this expectation is saturated.
|
||||
bool IsSaturated() const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
return cardinality().IsSaturatedByCallCount(call_count_);
|
||||
}
|
||||
|
||||
// Returns true if this expectation is over-saturated.
|
||||
// Returns true if and only if this expectation is over-saturated.
|
||||
bool IsOverSaturated() const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
return cardinality().IsOverSaturatedByCallCount(call_count_);
|
||||
}
|
||||
|
||||
// Returns true if all pre-requisites of this expectation are satisfied.
|
||||
// Returns true if and only if all pre-requisites of this expectation are
|
||||
// satisfied.
|
||||
bool AllPrerequisitesAreSatisfied() const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex);
|
||||
|
||||
@@ -855,7 +857,7 @@ class GTEST_API_ ExpectationBase {
|
||||
const char* file_; // The file that contains the expectation.
|
||||
int line_; // The line number of the expectation.
|
||||
const std::string source_text_; // The EXPECT_CALL(...) source text.
|
||||
// True if the cardinality is specified explicitly.
|
||||
// True if and only if the cardinality is specified explicitly.
|
||||
bool cardinality_specified_;
|
||||
Cardinality cardinality_; // The cardinality of the expectation.
|
||||
// The immediate pre-requisites (i.e. expectations that must be
|
||||
@@ -869,7 +871,7 @@ class GTEST_API_ ExpectationBase {
|
||||
// This group of fields are the current state of the expectation,
|
||||
// and can change as the mock function is called.
|
||||
int call_count_; // How many times this expectation has been invoked.
|
||||
bool retired_; // True if this expectation has retired.
|
||||
bool retired_; // True if and only if this expectation has retired.
|
||||
UntypedActions untyped_actions_;
|
||||
bool extra_matcher_specified_;
|
||||
bool repeated_action_specified_; // True if a WillRepeatedly() was specified.
|
||||
@@ -1087,14 +1089,15 @@ class TypedExpectation : public ExpectationBase {
|
||||
// statement finishes and when the current thread holds
|
||||
// g_gmock_mutex.
|
||||
|
||||
// Returns true if this expectation matches the given arguments.
|
||||
// Returns true if and only if this expectation matches the given arguments.
|
||||
bool Matches(const ArgumentTuple& args) const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
return TupleMatches(matchers_, args) && extra_matcher_.Matches(args);
|
||||
}
|
||||
|
||||
// Returns true if this expectation should handle the given arguments.
|
||||
// Returns true if and only if this expectation should handle the given
|
||||
// arguments.
|
||||
bool ShouldHandleArguments(const ArgumentTuple& args) const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
|
||||
@@ -157,11 +157,11 @@ GMOCK_DECLARE_KIND_(long double, kFloatingPoint);
|
||||
static_cast< ::testing::internal::TypeKind>( \
|
||||
::testing::internal::KindOf<type>::value)
|
||||
|
||||
// Evaluates to true if integer type T is signed.
|
||||
// Evaluates to true if and only if integer type T is signed.
|
||||
#define GMOCK_IS_SIGNED_(T) (static_cast<T>(-1) < 0)
|
||||
|
||||
// LosslessArithmeticConvertibleImpl<kFromKind, From, kToKind, To>::value
|
||||
// is true if arithmetic type From can be losslessly converted to
|
||||
// is true if and only if arithmetic type From can be losslessly converted to
|
||||
// arithmetic type To.
|
||||
//
|
||||
// It's the user's responsibility to ensure that both From and To are
|
||||
@@ -192,8 +192,8 @@ template <typename From>
|
||||
struct LosslessArithmeticConvertibleImpl<kInteger, From, kBool, bool>
|
||||
: public std::false_type {};
|
||||
|
||||
// Converting an integer to another non-bool integer is lossless if
|
||||
// the target type's range encloses the source type's range.
|
||||
// Converting an integer to another non-bool integer is lossless
|
||||
// if and only if the target type's range encloses the source type's range.
|
||||
template <typename From, typename To>
|
||||
struct LosslessArithmeticConvertibleImpl<kInteger, From, kInteger, To>
|
||||
: public bool_constant<
|
||||
@@ -224,14 +224,14 @@ struct LosslessArithmeticConvertibleImpl<kFloatingPoint, From, kInteger, To>
|
||||
: public std::false_type {};
|
||||
|
||||
// Converting a floating-point to another floating-point is lossless
|
||||
// if the target type is at least as big as the source type.
|
||||
// if and only if the target type is at least as big as the source type.
|
||||
template <typename From, typename To>
|
||||
struct LosslessArithmeticConvertibleImpl<
|
||||
kFloatingPoint, From, kFloatingPoint, To>
|
||||
: public bool_constant<sizeof(From) <= sizeof(To)> {}; // NOLINT
|
||||
|
||||
// LosslessArithmeticConvertible<From, To>::value is true if arithmetic
|
||||
// type From can be losslessly converted to arithmetic type To.
|
||||
// LosslessArithmeticConvertible<From, To>::value is true if and only if
|
||||
// arithmetic type From can be losslessly converted to arithmetic type To.
|
||||
//
|
||||
// It's the user's responsibility to ensure that both From and To are
|
||||
// raw (i.e. has no CV modifier, is not a pointer, and is not a
|
||||
@@ -305,11 +305,11 @@ const char kWarningVerbosity[] = "warning";
|
||||
// No logs are printed.
|
||||
const char kErrorVerbosity[] = "error";
|
||||
|
||||
// Returns true if a log with the given severity is visible according
|
||||
// to the --gmock_verbose flag.
|
||||
// Returns true if and only if a log with the given severity is visible
|
||||
// according to the --gmock_verbose flag.
|
||||
GTEST_API_ bool LogIsVisible(LogSeverity severity);
|
||||
|
||||
// Prints the given message to stdout if 'severity' >= the level
|
||||
// Prints the given message to stdout if and only if 'severity' >= the level
|
||||
// specified by the --gmock_verbose flag. If stack_frames_to_skip >=
|
||||
// 0, also prints the stack trace excluding the top
|
||||
// stack_frames_to_skip frames. In opt mode, any positive
|
||||
|
||||
@@ -123,8 +123,8 @@ GTEST_API_ FailureReporterInterface* GetFailureReporter() {
|
||||
// Protects global resources (stdout in particular) used by Log().
|
||||
static GTEST_DEFINE_STATIC_MUTEX_(g_log_mutex);
|
||||
|
||||
// Returns true if a log with the given severity is visible according
|
||||
// to the --gmock_verbose flag.
|
||||
// Returns true if and only if a log with the given severity is visible
|
||||
// according to the --gmock_verbose flag.
|
||||
GTEST_API_ bool LogIsVisible(LogSeverity severity) {
|
||||
if (GMOCK_FLAG(verbose) == kInfoVerbosity) {
|
||||
// Always show the log if --gmock_verbose=info.
|
||||
@@ -139,7 +139,7 @@ GTEST_API_ bool LogIsVisible(LogSeverity severity) {
|
||||
}
|
||||
}
|
||||
|
||||
// Prints the given message to stdout if 'severity' >= the level
|
||||
// Prints the given message to stdout if and only if 'severity' >= the level
|
||||
// specified by the --gmock_verbose flag. If stack_frames_to_skip >=
|
||||
// 0, also prints the stack trace excluding the top
|
||||
// stack_frames_to_skip frames. In opt mode, any positive
|
||||
|
||||
@@ -126,8 +126,8 @@ void ExpectationBase::RetireAllPreRequisites()
|
||||
}
|
||||
}
|
||||
|
||||
// Returns true if all pre-requisites of this expectation have been
|
||||
// satisfied.
|
||||
// Returns true if and only if all pre-requisites of this expectation
|
||||
// have been satisfied.
|
||||
bool ExpectationBase::AllPrerequisitesAreSatisfied() const
|
||||
GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
|
||||
g_gmock_mutex.AssertHeld();
|
||||
@@ -384,7 +384,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
|
||||
const CallReaction reaction =
|
||||
Mock::GetReactionOnUninterestingCalls(MockObject());
|
||||
|
||||
// True if we need to print this call's arguments and return
|
||||
// True if and only if we need to print this call's arguments and return
|
||||
// value. This definition must be kept in sync with
|
||||
// the behavior of ReportUninterestingCall().
|
||||
const bool need_to_report_uninteresting_call =
|
||||
@@ -435,7 +435,8 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
|
||||
&ss, &why);
|
||||
const bool found = untyped_expectation != nullptr;
|
||||
|
||||
// True if we need to print the call's arguments and return value.
|
||||
// True if and only if we need to print the call's arguments
|
||||
// and return value.
|
||||
// This definition must be kept in sync with the uses of Expect()
|
||||
// and Log() in this function.
|
||||
const bool need_to_report_call =
|
||||
@@ -574,7 +575,7 @@ struct MockObjectState {
|
||||
int first_used_line;
|
||||
::std::string first_used_test_suite;
|
||||
::std::string first_used_test;
|
||||
bool leakable; // true if it's OK to leak the object.
|
||||
bool leakable; // true if and only if it's OK to leak the object.
|
||||
FunctionMockers function_mockers; // All registered methods of the object.
|
||||
};
|
||||
|
||||
@@ -718,7 +719,7 @@ bool Mock::VerifyAndClearExpectations(void* mock_obj)
|
||||
}
|
||||
|
||||
// Verifies all expectations on the given mock object and clears its
|
||||
// default actions and expectations. Returns true if the
|
||||
// default actions and expectations. Returns true if and only if the
|
||||
// verification was successful.
|
||||
bool Mock::VerifyAndClear(void* mock_obj)
|
||||
GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex) {
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
namespace testing {
|
||||
|
||||
GMOCK_DEFINE_bool_(catch_leaked_mocks, true,
|
||||
"true if Google Mock should report leaked mock objects "
|
||||
"as failures.");
|
||||
"true if and only if Google Mock should report leaked "
|
||||
"mock objects as failures.");
|
||||
|
||||
GMOCK_DEFINE_string_(verbose, internal::kWarningVerbosity,
|
||||
"Controls how verbose Google Mock's output is."
|
||||
|
||||
@@ -395,12 +395,14 @@ TEST(ExactlyTest, HasCorrectBounds) {
|
||||
|
||||
class EvenCardinality : public CardinalityInterface {
|
||||
public:
|
||||
// Returns true if call_count calls will satisfy this cardinality.
|
||||
// Returns true if and only if call_count calls will satisfy this
|
||||
// cardinality.
|
||||
bool IsSatisfiedByCallCount(int call_count) const override {
|
||||
return (call_count % 2 == 0);
|
||||
}
|
||||
|
||||
// Returns true if call_count calls will saturate this cardinality.
|
||||
// Returns true if and only if call_count calls will saturate this
|
||||
// cardinality.
|
||||
bool IsSaturatedByCallCount(int /* call_count */) const override {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -956,10 +956,9 @@ TEST(TypedEqTest, CanDescribeSelf) {
|
||||
|
||||
// Tests that TypedEq<T>(v) has type Matcher<T>.
|
||||
|
||||
// Type<T>::IsTypeOf(v) compiles if the type of value v is T, where T
|
||||
// is a "bare" type (i.e. not in the form of const U or U&). If v's
|
||||
// type is not T, the compiler will generate a message about
|
||||
// "undefined reference".
|
||||
// Type<T>::IsTypeOf(v) compiles if and only if the type of value v is T, where
|
||||
// T is a "bare" type (i.e. not in the form of const U or U&). If v's type is
|
||||
// not T, the compiler will generate a message about "undefined reference".
|
||||
template <typename T>
|
||||
struct Type {
|
||||
static bool IsTypeOf(const T& /* v */) { return true; }
|
||||
@@ -2640,8 +2639,8 @@ class IsGreaterThan {
|
||||
// For testing Truly().
|
||||
const int foo = 0;
|
||||
|
||||
// This predicate returns true if the argument references foo and has
|
||||
// a zero value.
|
||||
// This predicate returns true if and only if the argument references foo and
|
||||
// has a zero value.
|
||||
bool ReferencesFooAndIsZero(const int& n) {
|
||||
return (&n == &foo) && (n == 0);
|
||||
}
|
||||
@@ -3594,7 +3593,7 @@ class Uncopyable {
|
||||
GTEST_DISALLOW_COPY_AND_ASSIGN_(Uncopyable);
|
||||
};
|
||||
|
||||
// Returns true if x.value() is positive.
|
||||
// Returns true if and only if x.value() is positive.
|
||||
bool ValueIsPositive(const Uncopyable& x) { return x.value() > 0; }
|
||||
|
||||
MATCHER_P(UncopyableIs, inner_matcher, "") {
|
||||
|
||||
@@ -1952,12 +1952,14 @@ TEST(DeletingMockEarlyTest, Failure2) {
|
||||
|
||||
class EvenNumberCardinality : public CardinalityInterface {
|
||||
public:
|
||||
// Returns true if call_count calls will satisfy this cardinality.
|
||||
// Returns true if and only if call_count calls will satisfy this
|
||||
// cardinality.
|
||||
bool IsSatisfiedByCallCount(int call_count) const override {
|
||||
return call_count % 2 == 0;
|
||||
}
|
||||
|
||||
// Returns true if call_count calls will saturate this cardinality.
|
||||
// Returns true if and only if call_count calls will saturate this
|
||||
// cardinality.
|
||||
bool IsSaturatedByCallCount(int /* call_count */) const override {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user