Commit 4327d95b authored by Jerry Turcios's avatar Jerry Turcios
Browse files

Merge branch 'master' of https://github.com/google/googletest

parents 7caf5ffd 40f82ce5
...@@ -137,7 +137,7 @@ template <typename T> ...@@ -137,7 +137,7 @@ template <typename T>
class BuiltInDefaultValue<T*> { class BuiltInDefaultValue<T*> {
public: public:
static bool Exists() { return true; } static bool Exists() { return true; }
static T* Get() { return NULL; } static T* Get() { return nullptr; }
}; };
// The following specializations define the default values for // The following specializations define the default values for
...@@ -220,11 +220,11 @@ class DefaultValue { ...@@ -220,11 +220,11 @@ class DefaultValue {
// Unsets the default value for type T. // Unsets the default value for type T.
static void Clear() { static void Clear() {
delete producer_; delete producer_;
producer_ = NULL; producer_ = nullptr;
} }
// Returns true iff the user has set the default value for type T. // Returns true iff the user has set the default value for type T.
static bool IsSet() { return producer_ != NULL; } static bool IsSet() { return producer_ != nullptr; }
// Returns true if T has a default return value set by the user or there // Returns true if T has a default return value set by the user or there
// exists a built-in default value. // exists a built-in default value.
...@@ -236,8 +236,8 @@ class DefaultValue { ...@@ -236,8 +236,8 @@ class DefaultValue {
// otherwise returns the built-in default value. Requires that Exists() // otherwise returns the built-in default value. Requires that Exists()
// is true, which ensures that the return value is well-defined. // is true, which ensures that the return value is well-defined.
static T Get() { static T Get() {
return producer_ == NULL ? return producer_ == nullptr ? internal::BuiltInDefaultValue<T>::Get()
internal::BuiltInDefaultValue<T>::Get() : producer_->Produce(); : producer_->Produce();
} }
private: private:
...@@ -282,12 +282,10 @@ class DefaultValue<T&> { ...@@ -282,12 +282,10 @@ class DefaultValue<T&> {
} }
// Unsets the default value for type T&. // Unsets the default value for type T&.
static void Clear() { static void Clear() { address_ = nullptr; }
address_ = NULL;
}
// Returns true iff the user has set the default value for type T&. // Returns true iff the user has set the default value for type T&.
static bool IsSet() { return address_ != NULL; } static bool IsSet() { return address_ != nullptr; }
// Returns true if T has a default return value set by the user or there // Returns true if T has a default return value set by the user or there
// exists a built-in default value. // exists a built-in default value.
...@@ -299,8 +297,8 @@ class DefaultValue<T&> { ...@@ -299,8 +297,8 @@ class DefaultValue<T&> {
// otherwise returns the built-in default value if there is one; // otherwise returns the built-in default value if there is one;
// otherwise aborts the process. // otherwise aborts the process.
static T& Get() { static T& Get() {
return address_ == NULL ? return address_ == nullptr ? internal::BuiltInDefaultValue<T&>::Get()
internal::BuiltInDefaultValue<T&>::Get() : *address_; : *address_;
} }
private: private:
...@@ -318,11 +316,11 @@ class DefaultValue<void> { ...@@ -318,11 +316,11 @@ class DefaultValue<void> {
// Points to the user-set default value for type T. // Points to the user-set default value for type T.
template <typename T> template <typename T>
typename DefaultValue<T>::ValueProducer* DefaultValue<T>::producer_ = NULL; typename DefaultValue<T>::ValueProducer* DefaultValue<T>::producer_ = nullptr;
// Points to the user-set default value for type T&. // Points to the user-set default value for type T&.
template <typename T> template <typename T>
T* DefaultValue<T&>::address_ = NULL; T* DefaultValue<T&>::address_ = nullptr;
// Implement this interface to define an action for function type F. // Implement this interface to define an action for function type F.
template <typename F> template <typename F>
...@@ -1108,8 +1106,9 @@ Action<To>::Action(const Action<From>& from) ...@@ -1108,8 +1106,9 @@ Action<To>::Action(const Action<From>& from)
#if GTEST_LANG_CXX11 #if GTEST_LANG_CXX11
fun_(from.fun_), fun_(from.fun_),
#endif #endif
impl_(from.impl_ == NULL ? NULL impl_(from.impl_ == nullptr
: new internal::ActionAdaptor<To, From>(from)) { ? nullptr
: new internal::ActionAdaptor<To, From>(from)) {
} }
// Creates an action that returns 'value'. 'value' is passed by value // Creates an action that returns 'value'. 'value' is passed by value
......
...@@ -94,8 +94,7 @@ class MatchResultListener { ...@@ -94,8 +94,7 @@ class MatchResultListener {
// is NULL. // is NULL.
template <typename T> template <typename T>
MatchResultListener& operator<<(const T& x) { MatchResultListener& operator<<(const T& x) {
if (stream_ != NULL) if (stream_ != nullptr) *stream_ << x;
*stream_ << x;
return *this; return *this;
} }
...@@ -106,7 +105,7 @@ class MatchResultListener { ...@@ -106,7 +105,7 @@ class MatchResultListener {
// the match result. A matcher's MatchAndExplain() method can use // the match result. A matcher's MatchAndExplain() method can use
// this information to avoid generating the explanation when no one // this information to avoid generating the explanation when no one
// intends to hear it. // intends to hear it.
bool IsInterested() const { return stream_ != NULL; } bool IsInterested() const { return stream_ != nullptr; }
private: private:
::std::ostream* const stream_; ::std::ostream* const stream_;
...@@ -261,7 +260,7 @@ struct AnyGe { ...@@ -261,7 +260,7 @@ struct AnyGe {
// A match result listener that ignores the explanation. // A match result listener that ignores the explanation.
class DummyMatchResultListener : public MatchResultListener { class DummyMatchResultListener : public MatchResultListener {
public: public:
DummyMatchResultListener() : MatchResultListener(NULL) {} DummyMatchResultListener() : MatchResultListener(nullptr) {}
private: private:
GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener); GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener);
...@@ -333,7 +332,7 @@ class MatcherBase { ...@@ -333,7 +332,7 @@ class MatcherBase {
const MatcherInterface<U>* impl, const MatcherInterface<U>* impl,
typename internal::EnableIf< typename internal::EnableIf<
!internal::IsSame<U, GTEST_REFERENCE_TO_CONST_(U)>::value>::type* = !internal::IsSame<U, GTEST_REFERENCE_TO_CONST_(U)>::value>::type* =
NULL) nullptr)
: impl_(new internal::MatcherInterfaceAdapter<U>(impl)) {} : impl_(new internal::MatcherInterfaceAdapter<U>(impl)) {}
virtual ~MatcherBase() {} virtual ~MatcherBase() {}
...@@ -375,9 +374,11 @@ class Matcher : public internal::MatcherBase<T> { ...@@ -375,9 +374,11 @@ class Matcher : public internal::MatcherBase<T> {
: internal::MatcherBase<T>(impl) {} : internal::MatcherBase<T>(impl) {}
template <typename U> template <typename U>
explicit Matcher(const MatcherInterface<U>* impl, explicit Matcher(
typename internal::EnableIf<!internal::IsSame< const MatcherInterface<U>* impl,
U, GTEST_REFERENCE_TO_CONST_(U)>::value>::type* = NULL) typename internal::EnableIf<
!internal::IsSame<U, GTEST_REFERENCE_TO_CONST_(U)>::value>::type* =
nullptr)
: internal::MatcherBase<T>(impl) {} : internal::MatcherBase<T>(impl) {}
// Implicit constructor here allows people to write // Implicit constructor here allows people to write
...@@ -850,7 +851,7 @@ namespace internal { ...@@ -850,7 +851,7 @@ namespace internal {
// If the explanation is not empty, prints it to the ostream. // If the explanation is not empty, prints it to the ostream.
inline void PrintIfNotEmpty(const std::string& explanation, inline void PrintIfNotEmpty(const std::string& explanation,
::std::ostream* os) { ::std::ostream* os) {
if (explanation != "" && os != NULL) { if (explanation != "" && os != nullptr) {
*os << ", " << explanation; *os << ", " << explanation;
} }
} }
...@@ -1321,7 +1322,7 @@ class StrEqualityMatcher { ...@@ -1321,7 +1322,7 @@ class StrEqualityMatcher {
// wchar_t* // wchar_t*
template <typename CharType> template <typename CharType>
bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { bool MatchAndExplain(CharType* s, MatchResultListener* listener) const {
if (s == NULL) { if (s == nullptr) {
return !expect_eq_; return !expect_eq_;
} }
return MatchAndExplain(StringType(s), listener); return MatchAndExplain(StringType(s), listener);
...@@ -1391,7 +1392,7 @@ class HasSubstrMatcher { ...@@ -1391,7 +1392,7 @@ class HasSubstrMatcher {
// wchar_t* // wchar_t*
template <typename CharType> template <typename CharType>
bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { bool MatchAndExplain(CharType* s, MatchResultListener* listener) const {
return s != NULL && MatchAndExplain(StringType(s), listener); return s != nullptr && MatchAndExplain(StringType(s), listener);
} }
// Matches anything that can convert to StringType. // Matches anything that can convert to StringType.
...@@ -1448,7 +1449,7 @@ class StartsWithMatcher { ...@@ -1448,7 +1449,7 @@ class StartsWithMatcher {
// wchar_t* // wchar_t*
template <typename CharType> template <typename CharType>
bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { bool MatchAndExplain(CharType* s, MatchResultListener* listener) const {
return s != NULL && MatchAndExplain(StringType(s), listener); return s != nullptr && MatchAndExplain(StringType(s), listener);
} }
// Matches anything that can convert to StringType. // Matches anything that can convert to StringType.
...@@ -1504,7 +1505,7 @@ class EndsWithMatcher { ...@@ -1504,7 +1505,7 @@ class EndsWithMatcher {
// wchar_t* // wchar_t*
template <typename CharType> template <typename CharType>
bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { bool MatchAndExplain(CharType* s, MatchResultListener* listener) const {
return s != NULL && MatchAndExplain(StringType(s), listener); return s != nullptr && MatchAndExplain(StringType(s), listener);
} }
// Matches anything that can convert to StringType. // Matches anything that can convert to StringType.
...@@ -1557,7 +1558,7 @@ class MatchesRegexMatcher { ...@@ -1557,7 +1558,7 @@ class MatchesRegexMatcher {
// wchar_t* // wchar_t*
template <typename CharType> template <typename CharType>
bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { bool MatchAndExplain(CharType* s, MatchResultListener* listener) const {
return s != NULL && MatchAndExplain(std::string(s), listener); return s != nullptr && MatchAndExplain(std::string(s), listener);
} }
// Matches anything that can convert to std::string. // Matches anything that can convert to std::string.
...@@ -2347,8 +2348,7 @@ class PointeeMatcher { ...@@ -2347,8 +2348,7 @@ class PointeeMatcher {
virtual bool MatchAndExplain(Pointer pointer, virtual bool MatchAndExplain(Pointer pointer,
MatchResultListener* listener) const { MatchResultListener* listener) const {
if (GetRawPointer(pointer) == NULL) if (GetRawPointer(pointer) == nullptr) return false;
return false;
*listener << "which points to "; *listener << "which points to ";
return MatchPrintAndExplain(*pointer, matcher_, listener); return MatchPrintAndExplain(*pointer, matcher_, listener);
...@@ -2431,7 +2431,7 @@ class WhenDynamicCastToMatcher<To&> : public WhenDynamicCastToMatcherBase<To&> { ...@@ -2431,7 +2431,7 @@ class WhenDynamicCastToMatcher<To&> : public WhenDynamicCastToMatcherBase<To&> {
bool MatchAndExplain(From& from, MatchResultListener* listener) const { bool MatchAndExplain(From& from, MatchResultListener* listener) const {
// We don't want an std::bad_cast here, so do the cast with pointers. // We don't want an std::bad_cast here, so do the cast with pointers.
To* to = dynamic_cast<To*>(&from); To* to = dynamic_cast<To*>(&from);
if (to == NULL) { if (to == nullptr) {
*listener << "which cannot be dynamic_cast to " << this->GetToName(); *listener << "which cannot be dynamic_cast to " << this->GetToName();
return false; return false;
} }
...@@ -2485,8 +2485,7 @@ class FieldMatcher { ...@@ -2485,8 +2485,7 @@ class FieldMatcher {
bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p, bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p,
MatchResultListener* listener) const { MatchResultListener* listener) const {
if (p == NULL) if (p == nullptr) return false;
return false;
*listener << "which points to an object "; *listener << "which points to an object ";
// Since *p has a field, it must be a class/struct/union type and // Since *p has a field, it must be a class/struct/union type and
...@@ -2570,8 +2569,7 @@ class PropertyMatcher { ...@@ -2570,8 +2569,7 @@ class PropertyMatcher {
bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p, bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p,
MatchResultListener* listener) const { MatchResultListener* listener) const {
if (p == NULL) if (p == nullptr) return false;
return false;
*listener << "which points to an object "; *listener << "which points to an object ";
// Since *p has a property method, it must be a class/struct/union // Since *p has a property method, it must be a class/struct/union
...@@ -2615,7 +2613,7 @@ struct CallableTraits<ResType(*)(ArgType)> { ...@@ -2615,7 +2613,7 @@ struct CallableTraits<ResType(*)(ArgType)> {
typedef ResType(*StorageType)(ArgType); typedef ResType(*StorageType)(ArgType);
static void CheckIsValid(ResType(*f)(ArgType)) { static void CheckIsValid(ResType(*f)(ArgType)) {
GTEST_CHECK_(f != NULL) GTEST_CHECK_(f != nullptr)
<< "NULL function pointer is passed into ResultOf()."; << "NULL function pointer is passed into ResultOf().";
} }
template <typename T> template <typename T>
...@@ -2857,7 +2855,7 @@ class ContainerEqMatcher { ...@@ -2857,7 +2855,7 @@ class ContainerEqMatcher {
return true; return true;
::std::ostream* const os = listener->stream(); ::std::ostream* const os = listener->stream();
if (os != NULL) { if (os != nullptr) {
// Something is different. Check for extra values first. // Something is different. Check for extra values first.
bool printed_header = false; bool printed_header = false;
for (typename LhsStlContainer::const_iterator it = for (typename LhsStlContainer::const_iterator it =
...@@ -4136,11 +4134,11 @@ class AnyCastMatcher { ...@@ -4136,11 +4134,11 @@ class AnyCastMatcher {
::testing::MatchResultListener* listener) const { ::testing::MatchResultListener* listener) const {
if (!listener->IsInterested()) { if (!listener->IsInterested()) {
const T* ptr = any_cast<T>(&value); const T* ptr = any_cast<T>(&value);
return ptr != NULL && matcher_.Matches(*ptr); return ptr != nullptr && matcher_.Matches(*ptr);
} }
const T* elem = any_cast<T>(&value); const T* elem = any_cast<T>(&value);
if (elem == NULL) { if (elem == nullptr) {
*listener << "whose value is not of type '" << GetTypeName() << "'"; *listener << "whose value is not of type '" << GetTypeName() << "'";
return false; return false;
} }
......
...@@ -1213,7 +1213,7 @@ class TypedExpectation : public ExpectationBase { ...@@ -1213,7 +1213,7 @@ class TypedExpectation : public ExpectationBase {
// FIXME: allow the user to control whether // FIXME: allow the user to control whether
// unexpected calls should fail immediately or continue using a // unexpected calls should fail immediately or continue using a
// flag --gmock_unexpected_calls_are_fatal. // flag --gmock_unexpected_calls_are_fatal.
return NULL; return nullptr;
} }
IncrementCallCount(); IncrementCallCount();
...@@ -1498,7 +1498,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1498,7 +1498,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
return spec; return spec;
} }
return NULL; return nullptr;
} }
// Performs the default action of this mock function on the given // Performs the default action of this mock function on the given
...@@ -1513,7 +1513,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1513,7 +1513,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
const std::string& call_description) const { const std::string& call_description) const {
const OnCallSpec<F>* const spec = const OnCallSpec<F>* const spec =
this->FindOnCallSpec(args); this->FindOnCallSpec(args);
if (spec != NULL) { if (spec != nullptr) {
return spec->GetAction().Perform(internal::move(args)); return spec->GetAction().Perform(internal::move(args));
} }
const std::string message = const std::string message =
...@@ -1630,7 +1630,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1630,7 +1630,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
// Adds this expectation into the implicit sequence if there is one. // Adds this expectation into the implicit sequence if there is one.
Sequence* const implicit_sequence = g_gmock_implicit_sequence.get(); Sequence* const implicit_sequence = g_gmock_implicit_sequence.get();
if (implicit_sequence != NULL) { if (implicit_sequence != nullptr) {
implicit_sequence->AddExpectation(Expectation(untyped_expectation)); implicit_sequence->AddExpectation(Expectation(untyped_expectation));
} }
...@@ -1649,7 +1649,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1649,7 +1649,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
::std::ostream* os) const { ::std::ostream* os) const {
const OnCallSpec<F>* const spec = FindOnCallSpec(args); const OnCallSpec<F>* const spec = FindOnCallSpec(args);
if (spec == NULL) { if (spec == nullptr) {
*os << (internal::type_equals<Result, void>::value ? *os << (internal::type_equals<Result, void>::value ?
"returning directly.\n" : "returning directly.\n" :
"returning default value.\n"); "returning default value.\n");
...@@ -1699,9 +1699,9 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1699,9 +1699,9 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
*static_cast<const ArgumentTuple*>(untyped_args); *static_cast<const ArgumentTuple*>(untyped_args);
MutexLock l(&g_gmock_mutex); MutexLock l(&g_gmock_mutex);
TypedExpectation<F>* exp = this->FindMatchingExpectationLocked(args); TypedExpectation<F>* exp = this->FindMatchingExpectationLocked(args);
if (exp == NULL) { // A match wasn't found. if (exp == nullptr) { // A match wasn't found.
this->FormatUnexpectedCallMessageLocked(args, what, why); this->FormatUnexpectedCallMessageLocked(args, what, why);
return NULL; return nullptr;
} }
// This line must be done before calling GetActionForArguments(), // This line must be done before calling GetActionForArguments(),
...@@ -1709,8 +1709,8 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1709,8 +1709,8 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
// its saturation status. // its saturation status.
*is_excessive = exp->IsSaturated(); *is_excessive = exp->IsSaturated();
const Action<F>* action = exp->GetActionForArguments(this, args, what, why); const Action<F>* action = exp->GetActionForArguments(this, args, what, why);
if (action != NULL && action->IsDoDefault()) if (action != nullptr && action->IsDoDefault())
action = NULL; // Normalize "do default" to NULL. action = nullptr; // Normalize "do default" to NULL.
*untyped_action = action; *untyped_action = action;
return exp; return exp;
} }
...@@ -1740,7 +1740,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase { ...@@ -1740,7 +1740,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
return exp; return exp;
} }
} }
return NULL; return nullptr;
} }
// Returns a message that the arguments don't match any expectation. // Returns a message that the arguments don't match any expectation.
......
...@@ -296,12 +296,12 @@ void ReportUninterestingCall(CallReaction reaction, const std::string& msg) { ...@@ -296,12 +296,12 @@ void ReportUninterestingCall(CallReaction reaction, const std::string& msg) {
stack_frames_to_skip); stack_frames_to_skip);
break; break;
default: // FAIL default: // FAIL
Expect(false, NULL, -1, msg); Expect(false, nullptr, -1, msg);
} }
} }
UntypedFunctionMockerBase::UntypedFunctionMockerBase() UntypedFunctionMockerBase::UntypedFunctionMockerBase()
: mock_obj_(NULL), name_("") {} : mock_obj_(nullptr), name_("") {}
UntypedFunctionMockerBase::~UntypedFunctionMockerBase() {} UntypedFunctionMockerBase::~UntypedFunctionMockerBase() {}
...@@ -340,7 +340,7 @@ const void* UntypedFunctionMockerBase::MockObject() const ...@@ -340,7 +340,7 @@ const void* UntypedFunctionMockerBase::MockObject() const
// We protect mock_obj_ under g_gmock_mutex in case this mock // We protect mock_obj_ under g_gmock_mutex in case this mock
// function is called from two threads concurrently. // function is called from two threads concurrently.
MutexLock l(&g_gmock_mutex); MutexLock l(&g_gmock_mutex);
Assert(mock_obj_ != NULL, __FILE__, __LINE__, Assert(mock_obj_ != nullptr, __FILE__, __LINE__,
"MockObject() must not be called before RegisterOwner() or " "MockObject() must not be called before RegisterOwner() or "
"SetOwnerAndName() has been called."); "SetOwnerAndName() has been called.");
mock_obj = mock_obj_; mock_obj = mock_obj_;
...@@ -357,7 +357,7 @@ const char* UntypedFunctionMockerBase::Name() const ...@@ -357,7 +357,7 @@ const char* UntypedFunctionMockerBase::Name() const
// We protect name_ under g_gmock_mutex in case this mock // We protect name_ under g_gmock_mutex in case this mock
// function is called from two threads concurrently. // function is called from two threads concurrently.
MutexLock l(&g_gmock_mutex); MutexLock l(&g_gmock_mutex);
Assert(name_ != NULL, __FILE__, __LINE__, Assert(name_ != nullptr, __FILE__, __LINE__,
"Name() must not be called before SetOwnerAndName() has " "Name() must not be called before SetOwnerAndName() has "
"been called."); "been called.");
name = name_; name = name_;
...@@ -414,8 +414,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith( ...@@ -414,8 +414,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
this->UntypedPerformDefaultAction(untyped_args, ss.str()); this->UntypedPerformDefaultAction(untyped_args, ss.str());
// Prints the function result. // Prints the function result.
if (result != NULL) if (result != nullptr) result->PrintAsActionResult(&ss);
result->PrintAsActionResult(&ss);
ReportUninterestingCall(reaction, ss.str()); ReportUninterestingCall(reaction, ss.str());
return result; return result;
...@@ -425,7 +424,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith( ...@@ -425,7 +424,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
::std::stringstream ss; ::std::stringstream ss;
::std::stringstream why; ::std::stringstream why;
::std::stringstream loc; ::std::stringstream loc;
const void* untyped_action = NULL; const void* untyped_action = nullptr;
// The UntypedFindMatchingExpectation() function acquires and // The UntypedFindMatchingExpectation() function acquires and
// releases g_gmock_mutex. // releases g_gmock_mutex.
...@@ -433,7 +432,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith( ...@@ -433,7 +432,7 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
this->UntypedFindMatchingExpectation( this->UntypedFindMatchingExpectation(
untyped_args, &untyped_action, &is_excessive, untyped_args, &untyped_action, &is_excessive,
&ss, &why); &ss, &why);
const bool found = untyped_expectation != NULL; const bool found = untyped_expectation != nullptr;
// True iff we need to print the call's arguments and return value. // True iff we need to print the call's arguments and return value.
// This definition must be kept in sync with the uses of Expect() // This definition must be kept in sync with the uses of Expect()
...@@ -442,10 +441,9 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith( ...@@ -442,10 +441,9 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
!found || is_excessive || LogIsVisible(kInfo); !found || is_excessive || LogIsVisible(kInfo);
if (!need_to_report_call) { if (!need_to_report_call) {
// Perform the action without printing the call information. // Perform the action without printing the call information.
return return untyped_action == nullptr
untyped_action == NULL ? ? this->UntypedPerformDefaultAction(untyped_args, "")
this->UntypedPerformDefaultAction(untyped_args, "") : : this->UntypedPerformAction(untyped_action, untyped_args);
this->UntypedPerformAction(untyped_action, untyped_args);
} }
ss << " Function call: " << Name(); ss << " Function call: " << Name();
...@@ -458,16 +456,15 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith( ...@@ -458,16 +456,15 @@ UntypedActionResultHolderBase* UntypedFunctionMockerBase::UntypedInvokeWith(
} }
UntypedActionResultHolderBase* const result = UntypedActionResultHolderBase* const result =
untyped_action == NULL ? untyped_action == nullptr
this->UntypedPerformDefaultAction(untyped_args, ss.str()) : ? this->UntypedPerformDefaultAction(untyped_args, ss.str())
this->UntypedPerformAction(untyped_action, untyped_args); : this->UntypedPerformAction(untyped_action, untyped_args);
if (result != NULL) if (result != nullptr) result->PrintAsActionResult(&ss);
result->PrintAsActionResult(&ss);
ss << "\n" << why.str(); ss << "\n" << why.str();
if (!found) { if (!found) {
// No expectation matches this call - reports a failure. // No expectation matches this call - reports a failure.
Expect(false, NULL, -1, ss.str()); Expect(false, nullptr, -1, ss.str());
} else if (is_excessive) { } else if (is_excessive) {
// We had an upper-bound violation and the failure message is in ss. // We had an upper-bound violation and the failure message is in ss.
Expect(false, untyped_expectation->file(), Expect(false, untyped_expectation->file(),
...@@ -568,7 +565,7 @@ typedef std::set<internal::UntypedFunctionMockerBase*> FunctionMockers; ...@@ -568,7 +565,7 @@ typedef std::set<internal::UntypedFunctionMockerBase*> FunctionMockers;
// expectations. // expectations.
struct MockObjectState { struct MockObjectState {
MockObjectState() MockObjectState()
: first_used_file(NULL), first_used_line(-1), leakable(false) {} : first_used_file(nullptr), first_used_line(-1), leakable(false) {}
// Where in the source file an ON_CALL or EXPECT_CALL is first // Where in the source file an ON_CALL or EXPECT_CALL is first
// invoked on this mock object. // invoked on this mock object.
...@@ -776,12 +773,12 @@ void Mock::RegisterUseByOnCallOrExpectCall(const void* mock_obj, ...@@ -776,12 +773,12 @@ void Mock::RegisterUseByOnCallOrExpectCall(const void* mock_obj,
GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex) { GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex) {
internal::MutexLock l(&internal::g_gmock_mutex); internal::MutexLock l(&internal::g_gmock_mutex);
MockObjectState& state = g_mock_object_registry.states()[mock_obj]; MockObjectState& state = g_mock_object_registry.states()[mock_obj];
if (state.first_used_file == NULL) { if (state.first_used_file == nullptr) {
state.first_used_file = file; state.first_used_file = file;
state.first_used_line = line; state.first_used_line = line;
const TestInfo* const test_info = const TestInfo* const test_info =
UnitTest::GetInstance()->current_test_info(); UnitTest::GetInstance()->current_test_info();
if (test_info != NULL) { if (test_info != nullptr) {
// FIXME: record the test case name when the // FIXME: record the test case name when the
// ON_CALL or EXPECT_CALL is invoked from SetUpTestCase() or // ON_CALL or EXPECT_CALL is invoked from SetUpTestCase() or
// TearDownTestCase(). // TearDownTestCase().
...@@ -846,7 +843,7 @@ Expectation::~Expectation() {} ...@@ -846,7 +843,7 @@ Expectation::~Expectation() {}
// Adds an expectation to a sequence. // Adds an expectation to a sequence.
void Sequence::AddExpectation(const Expectation& expectation) const { void Sequence::AddExpectation(const Expectation& expectation) const {
if (*last_expectation_ != expectation) { if (*last_expectation_ != expectation) {
if (last_expectation_->expectation_base() != NULL) { if (last_expectation_->expectation_base() != nullptr) {
expectation.expectation_base()->immediate_prerequisites_ expectation.expectation_base()->immediate_prerequisites_
+= *last_expectation_; += *last_expectation_;
} }
......
...@@ -65,12 +65,12 @@ static const char* ParseGoogleMockFlagValue(const char* str, ...@@ -65,12 +65,12 @@ static const char* ParseGoogleMockFlagValue(const char* str,
const char* flag, const char* flag,
bool def_optional) { bool def_optional) {
// str and flag must not be NULL. // str and flag must not be NULL.
if (str == NULL || flag == NULL) return NULL; if (str == nullptr || flag == nullptr) return nullptr;
// The flag must start with "--gmock_". // The flag must start with "--gmock_".
const std::string flag_str = std::string("--gmock_") + flag; const std::string flag_str = std::string("--gmock_") + flag;
const size_t flag_len = flag_str.length(); const size_t flag_len = flag_str.length();
if (strncmp(str, flag_str.c_str(), flag_len) != 0) return NULL; if (strncmp(str, flag_str.c_str(), flag_len) != 0) return nullptr;
// Skips the flag name. // Skips the flag name.
const char* flag_end = str + flag_len; const char* flag_end = str + flag_len;
...@@ -83,7 +83,7 @@ static const char* ParseGoogleMockFlagValue(const char* str, ...@@ -83,7 +83,7 @@ static const char* ParseGoogleMockFlagValue(const char* str,
// If def_optional is true and there are more characters after the // If def_optional is true and there are more characters after the
// flag name, or if def_optional is false, there must be a '=' after // flag name, or if def_optional is false, there must be a '=' after
// the flag name. // the flag name.
if (flag_end[0] != '=') return NULL; if (flag_end[0] != '=') return nullptr;
// Returns the string after "=". // Returns the string after "=".
return flag_end + 1; return flag_end + 1;
...@@ -100,7 +100,7 @@ static bool ParseGoogleMockBoolFlag(const char* str, const char* flag, ...@@ -100,7 +100,7 @@ static bool ParseGoogleMockBoolFlag(const char* str, const char* flag,
const char* const value_str = ParseGoogleMockFlagValue(str, flag, true); const char* const value_str = ParseGoogleMockFlagValue(str, flag, true);
// Aborts if the parsing failed. // Aborts if the parsing failed.
if (value_str == NULL) return false; if (value_str == nullptr) return false;
// Converts the string value to a bool. // Converts the string value to a bool.
*value = !(*value_str == '0' || *value_str == 'f' || *value_str == 'F'); *value = !(*value_str == '0' || *value_str == 'f' || *value_str == 'F');
...@@ -119,7 +119,7 @@ static bool ParseGoogleMockStringFlag(const char* str, const char* flag, ...@@ -119,7 +119,7 @@ static bool ParseGoogleMockStringFlag(const char* str, const char* flag,
const char* const value_str = ParseGoogleMockFlagValue(str, flag, false); const char* const value_str = ParseGoogleMockFlagValue(str, flag, false);
// Aborts if the parsing failed. // Aborts if the parsing failed.
if (value_str == NULL) return false; if (value_str == nullptr) return false;
// Sets *value to the value of the flag. // Sets *value to the value of the flag.
*value = value_str; *value = value_str;
...@@ -132,7 +132,7 @@ static bool ParseGoogleMockIntFlag(const char* str, const char* flag, ...@@ -132,7 +132,7 @@ static bool ParseGoogleMockIntFlag(const char* str, const char* flag,
const char* const value_str = ParseGoogleMockFlagValue(str, flag, true); const char* const value_str = ParseGoogleMockFlagValue(str, flag, true);
// Aborts if the parsing failed. // Aborts if the parsing failed.
if (value_str == NULL) return false; if (value_str == nullptr) return false;
// Sets *value to the value of the flag. // Sets *value to the value of the flag.
return ParseInt32(Message() << "The value of flag --" << flag, return ParseInt32(Message() << "The value of flag --" << flag,
......
...@@ -89,9 +89,9 @@ using testing::SetErrnoAndReturn; ...@@ -89,9 +89,9 @@ using testing::SetErrnoAndReturn;
// Tests that BuiltInDefaultValue<T*>::Get() returns NULL. // Tests that BuiltInDefaultValue<T*>::Get() returns NULL.
TEST(BuiltInDefaultValueTest, IsNullForPointerTypes) { TEST(BuiltInDefaultValueTest, IsNullForPointerTypes) {
EXPECT_TRUE(BuiltInDefaultValue<int*>::Get() == NULL); EXPECT_TRUE(BuiltInDefaultValue<int*>::Get() == nullptr);
EXPECT_TRUE(BuiltInDefaultValue<const char*>::Get() == NULL); EXPECT_TRUE(BuiltInDefaultValue<const char*>::Get() == nullptr);
EXPECT_TRUE(BuiltInDefaultValue<void*>::Get() == NULL); EXPECT_TRUE(BuiltInDefaultValue<void*>::Get() == nullptr);
} }
// Tests that BuiltInDefaultValue<T*>::Exists() return true. // Tests that BuiltInDefaultValue<T*>::Exists() return true.
...@@ -196,7 +196,7 @@ TEST(BuiltInDefaultValueTest, ExistsForString) { ...@@ -196,7 +196,7 @@ TEST(BuiltInDefaultValueTest, ExistsForString) {
TEST(BuiltInDefaultValueTest, WorksForConstTypes) { TEST(BuiltInDefaultValueTest, WorksForConstTypes) {
EXPECT_EQ("", BuiltInDefaultValue<const std::string>::Get()); EXPECT_EQ("", BuiltInDefaultValue<const std::string>::Get());
EXPECT_EQ(0, BuiltInDefaultValue<const int>::Get()); EXPECT_EQ(0, BuiltInDefaultValue<const int>::Get());
EXPECT_TRUE(BuiltInDefaultValue<char* const>::Get() == NULL); EXPECT_TRUE(BuiltInDefaultValue<char* const>::Get() == nullptr);
EXPECT_FALSE(BuiltInDefaultValue<const bool>::Get()); EXPECT_FALSE(BuiltInDefaultValue<const bool>::Get());
} }
...@@ -306,7 +306,7 @@ TEST(DefaultValueDeathTest, GetReturnsBuiltInDefaultValueWhenUnset) { ...@@ -306,7 +306,7 @@ TEST(DefaultValueDeathTest, GetReturnsBuiltInDefaultValueWhenUnset) {
#if GTEST_HAS_STD_UNIQUE_PTR_ #if GTEST_HAS_STD_UNIQUE_PTR_
TEST(DefaultValueTest, GetWorksForMoveOnlyIfSet) { TEST(DefaultValueTest, GetWorksForMoveOnlyIfSet) {
EXPECT_TRUE(DefaultValue<std::unique_ptr<int>>::Exists()); EXPECT_TRUE(DefaultValue<std::unique_ptr<int>>::Exists());
EXPECT_TRUE(DefaultValue<std::unique_ptr<int>>::Get() == NULL); EXPECT_TRUE(DefaultValue<std::unique_ptr<int>>::Get() == nullptr);
DefaultValue<std::unique_ptr<int>>::SetFactory([] { DefaultValue<std::unique_ptr<int>>::SetFactory([] {
return std::unique_ptr<int>(new int(42)); return std::unique_ptr<int>(new int(42));
}); });
...@@ -519,7 +519,7 @@ TEST(MakePolymorphicActionTest, WorksWhenPerformHasOneTemplateParameter) { ...@@ -519,7 +519,7 @@ TEST(MakePolymorphicActionTest, WorksWhenPerformHasOneTemplateParameter) {
EXPECT_EQ(0, a1.Perform(make_tuple())); EXPECT_EQ(0, a1.Perform(make_tuple()));
Action<void*()> a2 = ReturnZeroFromNullaryFunction(); Action<void*()> a2 = ReturnZeroFromNullaryFunction();
EXPECT_TRUE(a2.Perform(make_tuple()) == NULL); EXPECT_TRUE(a2.Perform(make_tuple()) == nullptr);
} }
// Tests that Return() works as an action for void-returning // Tests that Return() works as an action for void-returning
...@@ -636,10 +636,10 @@ TEST(ReturnTest, CanConvertArgumentUsingNonConstTypeCastOperator) { ...@@ -636,10 +636,10 @@ TEST(ReturnTest, CanConvertArgumentUsingNonConstTypeCastOperator) {
// Tests that ReturnNull() returns NULL in a pointer-returning function. // Tests that ReturnNull() returns NULL in a pointer-returning function.
TEST(ReturnNullTest, WorksInPointerReturningFunction) { TEST(ReturnNullTest, WorksInPointerReturningFunction) {
const Action<int*()> a1 = ReturnNull(); const Action<int*()> a1 = ReturnNull();
EXPECT_TRUE(a1.Perform(make_tuple()) == NULL); EXPECT_TRUE(a1.Perform(make_tuple()) == nullptr);
const Action<const char*(bool)> a2 = ReturnNull(); // NOLINT const Action<const char*(bool)> a2 = ReturnNull(); // NOLINT
EXPECT_TRUE(a2.Perform(make_tuple(true)) == NULL); EXPECT_TRUE(a2.Perform(make_tuple(true)) == nullptr);
} }
#if GTEST_HAS_STD_UNIQUE_PTR_ #if GTEST_HAS_STD_UNIQUE_PTR_
...@@ -819,10 +819,10 @@ TEST(SetArgPointeeTest, AcceptsStringLiteral) { ...@@ -819,10 +819,10 @@ TEST(SetArgPointeeTest, AcceptsStringLiteral) {
typedef void MyFunction(std::string*, const char**); typedef void MyFunction(std::string*, const char**);
Action<MyFunction> a = SetArgPointee<0>("hi"); Action<MyFunction> a = SetArgPointee<0>("hi");
std::string str; std::string str;
const char* ptr = NULL; const char* ptr = nullptr;
a.Perform(make_tuple(&str, &ptr)); a.Perform(make_tuple(&str, &ptr));
EXPECT_EQ("hi", str); EXPECT_EQ("hi", str);
EXPECT_TRUE(ptr == NULL); EXPECT_TRUE(ptr == nullptr);
a = SetArgPointee<1>("world"); a = SetArgPointee<1>("world");
str = ""; str = "";
...@@ -834,7 +834,7 @@ TEST(SetArgPointeeTest, AcceptsStringLiteral) { ...@@ -834,7 +834,7 @@ TEST(SetArgPointeeTest, AcceptsStringLiteral) {
TEST(SetArgPointeeTest, AcceptsWideStringLiteral) { TEST(SetArgPointeeTest, AcceptsWideStringLiteral) {
typedef void MyFunction(const wchar_t**); typedef void MyFunction(const wchar_t**);
Action<MyFunction> a = SetArgPointee<0>(L"world"); Action<MyFunction> a = SetArgPointee<0>(L"world");
const wchar_t* ptr = NULL; const wchar_t* ptr = nullptr;
a.Perform(make_tuple(&ptr)); a.Perform(make_tuple(&ptr));
EXPECT_STREQ(L"world", ptr); EXPECT_STREQ(L"world", ptr);
...@@ -856,10 +856,10 @@ TEST(SetArgPointeeTest, AcceptsCharPointer) { ...@@ -856,10 +856,10 @@ TEST(SetArgPointeeTest, AcceptsCharPointer) {
const char* const hi = "hi"; const char* const hi = "hi";
Action<MyFunction> a = SetArgPointee<1>(hi); Action<MyFunction> a = SetArgPointee<1>(hi);
std::string str; std::string str;
const char* ptr = NULL; const char* ptr = nullptr;
a.Perform(make_tuple(true, &str, &ptr)); a.Perform(make_tuple(true, &str, &ptr));
EXPECT_EQ("hi", str); EXPECT_EQ("hi", str);
EXPECT_TRUE(ptr == NULL); EXPECT_TRUE(ptr == nullptr);
char world_array[] = "world"; char world_array[] = "world";
char* const world = world_array; char* const world = world_array;
...@@ -874,7 +874,7 @@ TEST(SetArgPointeeTest, AcceptsWideCharPointer) { ...@@ -874,7 +874,7 @@ TEST(SetArgPointeeTest, AcceptsWideCharPointer) {
typedef void MyFunction(bool, const wchar_t**); typedef void MyFunction(bool, const wchar_t**);
const wchar_t* const hi = L"hi"; const wchar_t* const hi = L"hi";
Action<MyFunction> a = SetArgPointee<1>(hi); Action<MyFunction> a = SetArgPointee<1>(hi);
const wchar_t* ptr = NULL; const wchar_t* ptr = nullptr;
a.Perform(make_tuple(true, &ptr)); a.Perform(make_tuple(true, &ptr));
EXPECT_EQ(hi, ptr); EXPECT_EQ(hi, ptr);
......
...@@ -228,7 +228,7 @@ TEST_F(FunctionMockerTest, MocksDecimalFunction) { ...@@ -228,7 +228,7 @@ TEST_F(FunctionMockerTest, MocksDecimalFunction) {
Lt(100), 5U, NULL, "hi")) Lt(100), 5U, NULL, "hi"))
.WillOnce(Return(5)); .WillOnce(Return(5));
EXPECT_EQ(5, foo_->Decimal(true, 'a', 0, 0, 1, 0, 0, 5, NULL, "hi")); EXPECT_EQ(5, foo_->Decimal(true, 'a', 0, 0, 1, 0, 0, 5, nullptr, "hi"));
} }
// Tests mocking a function that takes a non-const reference. // Tests mocking a function that takes a non-const reference.
......
...@@ -697,7 +697,7 @@ TEST(ElementsAreArrayTest, CanBeCreatedWithIteratorRange) { ...@@ -697,7 +697,7 @@ TEST(ElementsAreArrayTest, CanBeCreatedWithIteratorRange) {
// Pointers are iterators, too. // Pointers are iterators, too.
EXPECT_THAT(test_vector, ElementsAreArray(a, a + GTEST_ARRAY_SIZE_(a))); EXPECT_THAT(test_vector, ElementsAreArray(a, a + GTEST_ARRAY_SIZE_(a)));
// The empty range of NULL pointers should also be okay. // The empty range of NULL pointers should also be okay.
int* const null_int = NULL; int* const null_int = nullptr;
EXPECT_THAT(test_vector, Not(ElementsAreArray(null_int, null_int))); EXPECT_THAT(test_vector, Not(ElementsAreArray(null_int, null_int)));
EXPECT_THAT((vector<int>()), ElementsAreArray(null_int, null_int)); EXPECT_THAT((vector<int>()), ElementsAreArray(null_int, null_int));
} }
...@@ -770,7 +770,7 @@ MATCHER_P2(EqSumOf, x, y, std::string(negation ? "doesn't equal" : "equals") + ...@@ -770,7 +770,7 @@ MATCHER_P2(EqSumOf, x, y, std::string(negation ? "doesn't equal" : "equals") +
} else { } else {
// Verifies that we can stream to the underlying stream of // Verifies that we can stream to the underlying stream of
// result_listener. // result_listener.
if (result_listener->stream() != NULL) { if (result_listener->stream() != nullptr) {
*result_listener->stream() << "diff == " << (x + y - arg); *result_listener->stream() << "diff == " << (x + y - arg);
} }
return false; return false;
......
...@@ -158,9 +158,9 @@ TEST(GetRawPointerTest, WorksForSmartPointers) { ...@@ -158,9 +158,9 @@ TEST(GetRawPointerTest, WorksForSmartPointers) {
} }
TEST(GetRawPointerTest, WorksForRawPointers) { TEST(GetRawPointerTest, WorksForRawPointers) {
int* p = NULL; int* p = nullptr;
// Don't use EXPECT_EQ as no NULL-testing magic on Symbian. // Don't use EXPECT_EQ as no NULL-testing magic on Symbian.
EXPECT_TRUE(NULL == GetRawPointer(p)); EXPECT_TRUE(nullptr == GetRawPointer(p));
int n = 1; int n = 1;
EXPECT_EQ(&n, GetRawPointer(&n)); EXPECT_EQ(&n, GetRawPointer(&n));
} }
...@@ -492,7 +492,7 @@ TEST(LogTest, NoSkippingStackFrameInOptMode) { ...@@ -492,7 +492,7 @@ TEST(LogTest, NoSkippingStackFrameInOptMode) {
AllOf(Ge(expected_skip_count), Le(expected_skip_count + 10))); AllOf(Ge(expected_skip_count), Le(expected_skip_count + 10)));
// Restores the default OS stack trace getter. // Restores the default OS stack trace getter.
GetUnitTestImpl()->set_os_stack_trace_getter(NULL); GetUnitTestImpl()->set_os_stack_trace_getter(nullptr);
} }
// Tests that all logs are printed when the value of the // Tests that all logs are printed when the value of the
......
...@@ -238,8 +238,8 @@ TEST(MatchResultListenerTest, StreamingWorks) { ...@@ -238,8 +238,8 @@ TEST(MatchResultListenerTest, StreamingWorks) {
} }
TEST(MatchResultListenerTest, CanAccessUnderlyingStream) { TEST(MatchResultListenerTest, CanAccessUnderlyingStream) {
EXPECT_TRUE(DummyMatchResultListener().stream() == NULL); EXPECT_TRUE(DummyMatchResultListener().stream() == nullptr);
EXPECT_TRUE(StreamMatchResultListener(NULL).stream() == NULL); EXPECT_TRUE(StreamMatchResultListener(nullptr).stream() == nullptr);
EXPECT_EQ(&std::cout, StreamMatchResultListener(&std::cout).stream()); EXPECT_EQ(&std::cout, StreamMatchResultListener(&std::cout).stream());
} }
...@@ -249,7 +249,7 @@ TEST(MatchResultListenerTest, IsInterestedWorks) { ...@@ -249,7 +249,7 @@ TEST(MatchResultListenerTest, IsInterestedWorks) {
EXPECT_TRUE(StreamMatchResultListener(&std::cout).IsInterested()); EXPECT_TRUE(StreamMatchResultListener(&std::cout).IsInterested());
EXPECT_FALSE(DummyMatchResultListener().IsInterested()); EXPECT_FALSE(DummyMatchResultListener().IsInterested());
EXPECT_FALSE(StreamMatchResultListener(NULL).IsInterested()); EXPECT_FALSE(StreamMatchResultListener(nullptr).IsInterested());
} }
// Makes sure that the MatcherInterface<T> interface doesn't // Makes sure that the MatcherInterface<T> interface doesn't
...@@ -283,7 +283,7 @@ class NewEvenMatcherImpl : public MatcherInterface<int> { ...@@ -283,7 +283,7 @@ class NewEvenMatcherImpl : public MatcherInterface<int> {
const bool match = x % 2 == 0; const bool match = x % 2 == 0;
// Verifies that we can stream to a listener directly. // Verifies that we can stream to a listener directly.
*listener << "value % " << 2; *listener << "value % " << 2;
if (listener->stream() != NULL) { if (listener->stream() != nullptr) {
// Verifies that we can stream to a listener's underlying stream // Verifies that we can stream to a listener's underlying stream
// too. // too.
*listener->stream() << " == " << (x % 2); *listener->stream() << " == " << (x % 2);
...@@ -327,7 +327,7 @@ TEST(MatcherTest, CanBeImplicitlyConstructedFromValue) { ...@@ -327,7 +327,7 @@ TEST(MatcherTest, CanBeImplicitlyConstructedFromValue) {
// Tests that NULL can be used in place of Eq(NULL). // Tests that NULL can be used in place of Eq(NULL).
TEST(MatcherTest, CanBeImplicitlyConstructedFromNULL) { TEST(MatcherTest, CanBeImplicitlyConstructedFromNULL) {
Matcher<int*> m1 = NULL; Matcher<int*> m1 = NULL;
EXPECT_TRUE(m1.Matches(NULL)); EXPECT_TRUE(m1.Matches(nullptr));
int n = 0; int n = 0;
EXPECT_FALSE(m1.Matches(&n)); EXPECT_FALSE(m1.Matches(&n));
} }
...@@ -512,7 +512,7 @@ TEST(StringViewMatcherTest, CanBeImplicitlyConstructedFromStringView) { ...@@ -512,7 +512,7 @@ TEST(StringViewMatcherTest, CanBeImplicitlyConstructedFromStringView) {
// MatcherInterface* without requiring the user to explicitly // MatcherInterface* without requiring the user to explicitly
// write the type. // write the type.
TEST(MakeMatcherTest, ConstructsMatcherFromMatcherInterface) { TEST(MakeMatcherTest, ConstructsMatcherFromMatcherInterface) {
const MatcherInterface<int>* dummy_impl = NULL; const MatcherInterface<int>* dummy_impl = nullptr;
Matcher<int> m = MakeMatcher(dummy_impl); Matcher<int> m = MakeMatcher(dummy_impl);
} }
...@@ -571,7 +571,7 @@ class PolymorphicIsEvenImpl { ...@@ -571,7 +571,7 @@ class PolymorphicIsEvenImpl {
bool MatchAndExplain(const T& x, MatchResultListener* listener) const { bool MatchAndExplain(const T& x, MatchResultListener* listener) const {
// Verifies that we can stream to the listener directly. // Verifies that we can stream to the listener directly.
*listener << "% " << 2; *listener << "% " << 2;
if (listener->stream() != NULL) { if (listener->stream() != nullptr) {
// Verifies that we can stream to the listener's underlying stream // Verifies that we can stream to the listener's underlying stream
// too. // too.
*listener->stream() << " == " << (x % 2); *listener->stream() << " == " << (x % 2);
...@@ -1154,13 +1154,13 @@ TEST(NeTest, CanDescribeSelf) { ...@@ -1154,13 +1154,13 @@ TEST(NeTest, CanDescribeSelf) {
// Tests that IsNull() matches any NULL pointer of any type. // Tests that IsNull() matches any NULL pointer of any type.
TEST(IsNullTest, MatchesNullPointer) { TEST(IsNullTest, MatchesNullPointer) {
Matcher<int*> m1 = IsNull(); Matcher<int*> m1 = IsNull();
int* p1 = NULL; int* p1 = nullptr;
int n = 0; int n = 0;
EXPECT_TRUE(m1.Matches(p1)); EXPECT_TRUE(m1.Matches(p1));
EXPECT_FALSE(m1.Matches(&n)); EXPECT_FALSE(m1.Matches(&n));
Matcher<const char*> m2 = IsNull(); Matcher<const char*> m2 = IsNull();
const char* p2 = NULL; const char* p2 = nullptr;
EXPECT_TRUE(m2.Matches(p2)); EXPECT_TRUE(m2.Matches(p2));
EXPECT_FALSE(m2.Matches("hi")); EXPECT_FALSE(m2.Matches("hi"));
...@@ -1174,7 +1174,7 @@ TEST(IsNullTest, MatchesNullPointer) { ...@@ -1174,7 +1174,7 @@ TEST(IsNullTest, MatchesNullPointer) {
// gmock_matchers_test::IsNullTest_MatchesNullPointer_Test::TestBody()') // gmock_matchers_test::IsNullTest_MatchesNullPointer_Test::TestBody()')
// gmock-matchers.h: (instantiating: 'testing::PolymorphicMatc // gmock-matchers.h: (instantiating: 'testing::PolymorphicMatc
Matcher<void*> m3 = IsNull(); Matcher<void*> m3 = IsNull();
void* p3 = NULL; void* p3 = nullptr;
EXPECT_TRUE(m3.Matches(p3)); EXPECT_TRUE(m3.Matches(p3));
EXPECT_FALSE(m3.Matches(reinterpret_cast<void*>(0xbeef))); EXPECT_FALSE(m3.Matches(reinterpret_cast<void*>(0xbeef)));
#endif #endif
...@@ -1217,13 +1217,13 @@ TEST(IsNullTest, CanDescribeSelf) { ...@@ -1217,13 +1217,13 @@ TEST(IsNullTest, CanDescribeSelf) {
// Tests that NotNull() matches any non-NULL pointer of any type. // Tests that NotNull() matches any non-NULL pointer of any type.
TEST(NotNullTest, MatchesNonNullPointer) { TEST(NotNullTest, MatchesNonNullPointer) {
Matcher<int*> m1 = NotNull(); Matcher<int*> m1 = NotNull();
int* p1 = NULL; int* p1 = nullptr;
int n = 0; int n = 0;
EXPECT_FALSE(m1.Matches(p1)); EXPECT_FALSE(m1.Matches(p1));
EXPECT_TRUE(m1.Matches(&n)); EXPECT_TRUE(m1.Matches(&n));
Matcher<const char*> m2 = NotNull(); Matcher<const char*> m2 = NotNull();
const char* p2 = NULL; const char* p2 = nullptr;
EXPECT_FALSE(m2.Matches(p2)); EXPECT_FALSE(m2.Matches(p2));
EXPECT_TRUE(m2.Matches("hi")); EXPECT_TRUE(m2.Matches("hi"));
} }
...@@ -1324,7 +1324,7 @@ TEST(StrEqTest, MatchesEqualString) { ...@@ -1324,7 +1324,7 @@ TEST(StrEqTest, MatchesEqualString) {
Matcher<const char*> m = StrEq(std::string("Hello")); Matcher<const char*> m = StrEq(std::string("Hello"));
EXPECT_TRUE(m.Matches("Hello")); EXPECT_TRUE(m.Matches("Hello"));
EXPECT_FALSE(m.Matches("hello")); EXPECT_FALSE(m.Matches("hello"));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
Matcher<const std::string&> m2 = StrEq("Hello"); Matcher<const std::string&> m2 = StrEq("Hello");
EXPECT_TRUE(m2.Matches("Hello")); EXPECT_TRUE(m2.Matches("Hello"));
...@@ -1360,7 +1360,7 @@ TEST(StrEqTest, CanDescribeSelf) { ...@@ -1360,7 +1360,7 @@ TEST(StrEqTest, CanDescribeSelf) {
TEST(StrNeTest, MatchesUnequalString) { TEST(StrNeTest, MatchesUnequalString) {
Matcher<const char*> m = StrNe("Hello"); Matcher<const char*> m = StrNe("Hello");
EXPECT_TRUE(m.Matches("")); EXPECT_TRUE(m.Matches(""));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
EXPECT_FALSE(m.Matches("Hello")); EXPECT_FALSE(m.Matches("Hello"));
Matcher<std::string> m2 = StrNe(std::string("Hello")); Matcher<std::string> m2 = StrNe(std::string("Hello"));
...@@ -1385,7 +1385,7 @@ TEST(StrCaseEqTest, MatchesEqualStringIgnoringCase) { ...@@ -1385,7 +1385,7 @@ TEST(StrCaseEqTest, MatchesEqualStringIgnoringCase) {
EXPECT_TRUE(m.Matches("Hello")); EXPECT_TRUE(m.Matches("Hello"));
EXPECT_TRUE(m.Matches("hello")); EXPECT_TRUE(m.Matches("hello"));
EXPECT_FALSE(m.Matches("Hi")); EXPECT_FALSE(m.Matches("Hi"));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
Matcher<const std::string&> m2 = StrCaseEq("Hello"); Matcher<const std::string&> m2 = StrCaseEq("Hello");
EXPECT_TRUE(m2.Matches("hello")); EXPECT_TRUE(m2.Matches("hello"));
...@@ -1433,7 +1433,7 @@ TEST(StrCaseEqTest, CanDescribeSelf) { ...@@ -1433,7 +1433,7 @@ TEST(StrCaseEqTest, CanDescribeSelf) {
TEST(StrCaseNeTest, MatchesUnequalStringIgnoringCase) { TEST(StrCaseNeTest, MatchesUnequalStringIgnoringCase) {
Matcher<const char*> m = StrCaseNe("Hello"); Matcher<const char*> m = StrCaseNe("Hello");
EXPECT_TRUE(m.Matches("Hi")); EXPECT_TRUE(m.Matches("Hi"));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
EXPECT_FALSE(m.Matches("Hello")); EXPECT_FALSE(m.Matches("Hello"));
EXPECT_FALSE(m.Matches("hello")); EXPECT_FALSE(m.Matches("hello"));
...@@ -1475,17 +1475,17 @@ TEST(HasSubstrTest, WorksForCStrings) { ...@@ -1475,17 +1475,17 @@ TEST(HasSubstrTest, WorksForCStrings) {
const Matcher<char*> m1 = HasSubstr("foo"); const Matcher<char*> m1 = HasSubstr("foo");
EXPECT_TRUE(m1.Matches(const_cast<char*>("I love food."))); EXPECT_TRUE(m1.Matches(const_cast<char*>("I love food.")));
EXPECT_FALSE(m1.Matches(const_cast<char*>("tofo"))); EXPECT_FALSE(m1.Matches(const_cast<char*>("tofo")));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const char*> m2 = HasSubstr("foo"); const Matcher<const char*> m2 = HasSubstr("foo");
EXPECT_TRUE(m2.Matches("I love food.")); EXPECT_TRUE(m2.Matches("I love food."));
EXPECT_FALSE(m2.Matches("tofo")); EXPECT_FALSE(m2.Matches("tofo"));
EXPECT_FALSE(m2.Matches(NULL)); EXPECT_FALSE(m2.Matches(nullptr));
const Matcher<const char*> m_empty = HasSubstr(""); const Matcher<const char*> m_empty = HasSubstr("");
EXPECT_TRUE(m_empty.Matches("not empty")); EXPECT_TRUE(m_empty.Matches("not empty"));
EXPECT_TRUE(m_empty.Matches("")); EXPECT_TRUE(m_empty.Matches(""));
EXPECT_FALSE(m_empty.Matches(NULL)); EXPECT_FALSE(m_empty.Matches(nullptr));
} }
#if GTEST_HAS_ABSL #if GTEST_HAS_ABSL
...@@ -1720,7 +1720,7 @@ TEST(StartsWithTest, MatchesStringWithGivenPrefix) { ...@@ -1720,7 +1720,7 @@ TEST(StartsWithTest, MatchesStringWithGivenPrefix) {
const Matcher<const char*> m1 = StartsWith(std::string("")); const Matcher<const char*> m1 = StartsWith(std::string(""));
EXPECT_TRUE(m1.Matches("Hi")); EXPECT_TRUE(m1.Matches("Hi"));
EXPECT_TRUE(m1.Matches("")); EXPECT_TRUE(m1.Matches(""));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const std::string&> m2 = StartsWith("Hi"); const Matcher<const std::string&> m2 = StartsWith("Hi");
EXPECT_TRUE(m2.Matches("Hi")); EXPECT_TRUE(m2.Matches("Hi"));
...@@ -1748,7 +1748,7 @@ TEST(EndsWithTest, MatchesStringWithGivenSuffix) { ...@@ -1748,7 +1748,7 @@ TEST(EndsWithTest, MatchesStringWithGivenSuffix) {
const Matcher<const char*> m1 = EndsWith(""); const Matcher<const char*> m1 = EndsWith("");
EXPECT_TRUE(m1.Matches("Hi")); EXPECT_TRUE(m1.Matches("Hi"));
EXPECT_TRUE(m1.Matches("")); EXPECT_TRUE(m1.Matches(""));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const std::string&> m2 = EndsWith(std::string("Hi")); const Matcher<const std::string&> m2 = EndsWith(std::string("Hi"));
EXPECT_TRUE(m2.Matches("Hi")); EXPECT_TRUE(m2.Matches("Hi"));
...@@ -1786,7 +1786,7 @@ TEST(MatchesRegexTest, MatchesStringMatchingGivenRegex) { ...@@ -1786,7 +1786,7 @@ TEST(MatchesRegexTest, MatchesStringMatchingGivenRegex) {
const Matcher<const char*> m1 = MatchesRegex("a.*z"); const Matcher<const char*> m1 = MatchesRegex("a.*z");
EXPECT_TRUE(m1.Matches("az")); EXPECT_TRUE(m1.Matches("az"));
EXPECT_TRUE(m1.Matches("abcz")); EXPECT_TRUE(m1.Matches("abcz"));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const std::string&> m2 = MatchesRegex(new RE("a.*z")); const Matcher<const std::string&> m2 = MatchesRegex(new RE("a.*z"));
EXPECT_TRUE(m2.Matches("azbz")); EXPECT_TRUE(m2.Matches("azbz"));
...@@ -1824,7 +1824,7 @@ TEST(ContainsRegexTest, MatchesStringContainingGivenRegex) { ...@@ -1824,7 +1824,7 @@ TEST(ContainsRegexTest, MatchesStringContainingGivenRegex) {
const Matcher<const char*> m1 = ContainsRegex(std::string("a.*z")); const Matcher<const char*> m1 = ContainsRegex(std::string("a.*z"));
EXPECT_TRUE(m1.Matches("az")); EXPECT_TRUE(m1.Matches("az"));
EXPECT_TRUE(m1.Matches("0abcz1")); EXPECT_TRUE(m1.Matches("0abcz1"));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const std::string&> m2 = ContainsRegex(new RE("a.*z")); const Matcher<const std::string&> m2 = ContainsRegex(new RE("a.*z"));
EXPECT_TRUE(m2.Matches("azbz")); EXPECT_TRUE(m2.Matches("azbz"));
...@@ -1862,7 +1862,7 @@ TEST(StdWideStrEqTest, MatchesEqual) { ...@@ -1862,7 +1862,7 @@ TEST(StdWideStrEqTest, MatchesEqual) {
Matcher<const wchar_t*> m = StrEq(::std::wstring(L"Hello")); Matcher<const wchar_t*> m = StrEq(::std::wstring(L"Hello"));
EXPECT_TRUE(m.Matches(L"Hello")); EXPECT_TRUE(m.Matches(L"Hello"));
EXPECT_FALSE(m.Matches(L"hello")); EXPECT_FALSE(m.Matches(L"hello"));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
Matcher<const ::std::wstring&> m2 = StrEq(L"Hello"); Matcher<const ::std::wstring&> m2 = StrEq(L"Hello");
EXPECT_TRUE(m2.Matches(L"Hello")); EXPECT_TRUE(m2.Matches(L"Hello"));
...@@ -1902,7 +1902,7 @@ TEST(StdWideStrEqTest, CanDescribeSelf) { ...@@ -1902,7 +1902,7 @@ TEST(StdWideStrEqTest, CanDescribeSelf) {
TEST(StdWideStrNeTest, MatchesUnequalString) { TEST(StdWideStrNeTest, MatchesUnequalString) {
Matcher<const wchar_t*> m = StrNe(L"Hello"); Matcher<const wchar_t*> m = StrNe(L"Hello");
EXPECT_TRUE(m.Matches(L"")); EXPECT_TRUE(m.Matches(L""));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
EXPECT_FALSE(m.Matches(L"Hello")); EXPECT_FALSE(m.Matches(L"Hello"));
Matcher< ::std::wstring> m2 = StrNe(::std::wstring(L"Hello")); Matcher< ::std::wstring> m2 = StrNe(::std::wstring(L"Hello"));
...@@ -1920,7 +1920,7 @@ TEST(StdWideStrCaseEqTest, MatchesEqualStringIgnoringCase) { ...@@ -1920,7 +1920,7 @@ TEST(StdWideStrCaseEqTest, MatchesEqualStringIgnoringCase) {
EXPECT_TRUE(m.Matches(L"Hello")); EXPECT_TRUE(m.Matches(L"Hello"));
EXPECT_TRUE(m.Matches(L"hello")); EXPECT_TRUE(m.Matches(L"hello"));
EXPECT_FALSE(m.Matches(L"Hi")); EXPECT_FALSE(m.Matches(L"Hi"));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
Matcher<const ::std::wstring&> m2 = StrCaseEq(L"Hello"); Matcher<const ::std::wstring&> m2 = StrCaseEq(L"Hello");
EXPECT_TRUE(m2.Matches(L"hello")); EXPECT_TRUE(m2.Matches(L"hello"));
...@@ -1960,7 +1960,7 @@ TEST(StdWideStrCaseEqTest, CanDescribeSelf) { ...@@ -1960,7 +1960,7 @@ TEST(StdWideStrCaseEqTest, CanDescribeSelf) {
TEST(StdWideStrCaseNeTest, MatchesUnequalStringIgnoringCase) { TEST(StdWideStrCaseNeTest, MatchesUnequalStringIgnoringCase) {
Matcher<const wchar_t*> m = StrCaseNe(L"Hello"); Matcher<const wchar_t*> m = StrCaseNe(L"Hello");
EXPECT_TRUE(m.Matches(L"Hi")); EXPECT_TRUE(m.Matches(L"Hi"));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
EXPECT_FALSE(m.Matches(L"Hello")); EXPECT_FALSE(m.Matches(L"Hello"));
EXPECT_FALSE(m.Matches(L"hello")); EXPECT_FALSE(m.Matches(L"hello"));
...@@ -1990,12 +1990,12 @@ TEST(StdWideHasSubstrTest, WorksForCStrings) { ...@@ -1990,12 +1990,12 @@ TEST(StdWideHasSubstrTest, WorksForCStrings) {
const Matcher<wchar_t*> m1 = HasSubstr(L"foo"); const Matcher<wchar_t*> m1 = HasSubstr(L"foo");
EXPECT_TRUE(m1.Matches(const_cast<wchar_t*>(L"I love food."))); EXPECT_TRUE(m1.Matches(const_cast<wchar_t*>(L"I love food.")));
EXPECT_FALSE(m1.Matches(const_cast<wchar_t*>(L"tofo"))); EXPECT_FALSE(m1.Matches(const_cast<wchar_t*>(L"tofo")));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const wchar_t*> m2 = HasSubstr(L"foo"); const Matcher<const wchar_t*> m2 = HasSubstr(L"foo");
EXPECT_TRUE(m2.Matches(L"I love food.")); EXPECT_TRUE(m2.Matches(L"I love food."));
EXPECT_FALSE(m2.Matches(L"tofo")); EXPECT_FALSE(m2.Matches(L"tofo"));
EXPECT_FALSE(m2.Matches(NULL)); EXPECT_FALSE(m2.Matches(nullptr));
} }
// Tests that HasSubstr(s) describes itself properly. // Tests that HasSubstr(s) describes itself properly.
...@@ -2010,7 +2010,7 @@ TEST(StdWideStartsWithTest, MatchesStringWithGivenPrefix) { ...@@ -2010,7 +2010,7 @@ TEST(StdWideStartsWithTest, MatchesStringWithGivenPrefix) {
const Matcher<const wchar_t*> m1 = StartsWith(::std::wstring(L"")); const Matcher<const wchar_t*> m1 = StartsWith(::std::wstring(L""));
EXPECT_TRUE(m1.Matches(L"Hi")); EXPECT_TRUE(m1.Matches(L"Hi"));
EXPECT_TRUE(m1.Matches(L"")); EXPECT_TRUE(m1.Matches(L""));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const ::std::wstring&> m2 = StartsWith(L"Hi"); const Matcher<const ::std::wstring&> m2 = StartsWith(L"Hi");
EXPECT_TRUE(m2.Matches(L"Hi")); EXPECT_TRUE(m2.Matches(L"Hi"));
...@@ -2031,7 +2031,7 @@ TEST(StdWideEndsWithTest, MatchesStringWithGivenSuffix) { ...@@ -2031,7 +2031,7 @@ TEST(StdWideEndsWithTest, MatchesStringWithGivenSuffix) {
const Matcher<const wchar_t*> m1 = EndsWith(L""); const Matcher<const wchar_t*> m1 = EndsWith(L"");
EXPECT_TRUE(m1.Matches(L"Hi")); EXPECT_TRUE(m1.Matches(L"Hi"));
EXPECT_TRUE(m1.Matches(L"")); EXPECT_TRUE(m1.Matches(L""));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const ::std::wstring&> m2 = EndsWith(::std::wstring(L"Hi")); const Matcher<const ::std::wstring&> m2 = EndsWith(::std::wstring(L"Hi"));
EXPECT_TRUE(m2.Matches(L"Hi")); EXPECT_TRUE(m2.Matches(L"Hi"));
...@@ -2053,7 +2053,7 @@ TEST(GlobalWideStrEqTest, MatchesEqual) { ...@@ -2053,7 +2053,7 @@ TEST(GlobalWideStrEqTest, MatchesEqual) {
Matcher<const wchar_t*> m = StrEq(::wstring(L"Hello")); Matcher<const wchar_t*> m = StrEq(::wstring(L"Hello"));
EXPECT_TRUE(m.Matches(L"Hello")); EXPECT_TRUE(m.Matches(L"Hello"));
EXPECT_FALSE(m.Matches(L"hello")); EXPECT_FALSE(m.Matches(L"hello"));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
Matcher<const ::wstring&> m2 = StrEq(L"Hello"); Matcher<const ::wstring&> m2 = StrEq(L"Hello");
EXPECT_TRUE(m2.Matches(L"Hello")); EXPECT_TRUE(m2.Matches(L"Hello"));
...@@ -2093,7 +2093,7 @@ TEST(GlobalWideStrEqTest, CanDescribeSelf) { ...@@ -2093,7 +2093,7 @@ TEST(GlobalWideStrEqTest, CanDescribeSelf) {
TEST(GlobalWideStrNeTest, MatchesUnequalString) { TEST(GlobalWideStrNeTest, MatchesUnequalString) {
Matcher<const wchar_t*> m = StrNe(L"Hello"); Matcher<const wchar_t*> m = StrNe(L"Hello");
EXPECT_TRUE(m.Matches(L"")); EXPECT_TRUE(m.Matches(L""));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
EXPECT_FALSE(m.Matches(L"Hello")); EXPECT_FALSE(m.Matches(L"Hello"));
Matcher< ::wstring> m2 = StrNe(::wstring(L"Hello")); Matcher< ::wstring> m2 = StrNe(::wstring(L"Hello"));
...@@ -2111,7 +2111,7 @@ TEST(GlobalWideStrCaseEqTest, MatchesEqualStringIgnoringCase) { ...@@ -2111,7 +2111,7 @@ TEST(GlobalWideStrCaseEqTest, MatchesEqualStringIgnoringCase) {
EXPECT_TRUE(m.Matches(L"Hello")); EXPECT_TRUE(m.Matches(L"Hello"));
EXPECT_TRUE(m.Matches(L"hello")); EXPECT_TRUE(m.Matches(L"hello"));
EXPECT_FALSE(m.Matches(L"Hi")); EXPECT_FALSE(m.Matches(L"Hi"));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
Matcher<const ::wstring&> m2 = StrCaseEq(L"Hello"); Matcher<const ::wstring&> m2 = StrCaseEq(L"Hello");
EXPECT_TRUE(m2.Matches(L"hello")); EXPECT_TRUE(m2.Matches(L"hello"));
...@@ -2151,7 +2151,7 @@ TEST(GlobalWideStrCaseEqTest, CanDescribeSelf) { ...@@ -2151,7 +2151,7 @@ TEST(GlobalWideStrCaseEqTest, CanDescribeSelf) {
TEST(GlobalWideStrCaseNeTest, MatchesUnequalStringIgnoringCase) { TEST(GlobalWideStrCaseNeTest, MatchesUnequalStringIgnoringCase) {
Matcher<const wchar_t*> m = StrCaseNe(L"Hello"); Matcher<const wchar_t*> m = StrCaseNe(L"Hello");
EXPECT_TRUE(m.Matches(L"Hi")); EXPECT_TRUE(m.Matches(L"Hi"));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
EXPECT_FALSE(m.Matches(L"Hello")); EXPECT_FALSE(m.Matches(L"Hello"));
EXPECT_FALSE(m.Matches(L"hello")); EXPECT_FALSE(m.Matches(L"hello"));
...@@ -2181,12 +2181,12 @@ TEST(GlobalWideHasSubstrTest, WorksForCStrings) { ...@@ -2181,12 +2181,12 @@ TEST(GlobalWideHasSubstrTest, WorksForCStrings) {
const Matcher<wchar_t*> m1 = HasSubstr(L"foo"); const Matcher<wchar_t*> m1 = HasSubstr(L"foo");
EXPECT_TRUE(m1.Matches(const_cast<wchar_t*>(L"I love food."))); EXPECT_TRUE(m1.Matches(const_cast<wchar_t*>(L"I love food.")));
EXPECT_FALSE(m1.Matches(const_cast<wchar_t*>(L"tofo"))); EXPECT_FALSE(m1.Matches(const_cast<wchar_t*>(L"tofo")));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const wchar_t*> m2 = HasSubstr(L"foo"); const Matcher<const wchar_t*> m2 = HasSubstr(L"foo");
EXPECT_TRUE(m2.Matches(L"I love food.")); EXPECT_TRUE(m2.Matches(L"I love food."));
EXPECT_FALSE(m2.Matches(L"tofo")); EXPECT_FALSE(m2.Matches(L"tofo"));
EXPECT_FALSE(m2.Matches(NULL)); EXPECT_FALSE(m2.Matches(nullptr));
} }
// Tests that HasSubstr(s) describes itself properly. // Tests that HasSubstr(s) describes itself properly.
...@@ -2201,7 +2201,7 @@ TEST(GlobalWideStartsWithTest, MatchesStringWithGivenPrefix) { ...@@ -2201,7 +2201,7 @@ TEST(GlobalWideStartsWithTest, MatchesStringWithGivenPrefix) {
const Matcher<const wchar_t*> m1 = StartsWith(::wstring(L"")); const Matcher<const wchar_t*> m1 = StartsWith(::wstring(L""));
EXPECT_TRUE(m1.Matches(L"Hi")); EXPECT_TRUE(m1.Matches(L"Hi"));
EXPECT_TRUE(m1.Matches(L"")); EXPECT_TRUE(m1.Matches(L""));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const ::wstring&> m2 = StartsWith(L"Hi"); const Matcher<const ::wstring&> m2 = StartsWith(L"Hi");
EXPECT_TRUE(m2.Matches(L"Hi")); EXPECT_TRUE(m2.Matches(L"Hi"));
...@@ -2222,7 +2222,7 @@ TEST(GlobalWideEndsWithTest, MatchesStringWithGivenSuffix) { ...@@ -2222,7 +2222,7 @@ TEST(GlobalWideEndsWithTest, MatchesStringWithGivenSuffix) {
const Matcher<const wchar_t*> m1 = EndsWith(L""); const Matcher<const wchar_t*> m1 = EndsWith(L"");
EXPECT_TRUE(m1.Matches(L"Hi")); EXPECT_TRUE(m1.Matches(L"Hi"));
EXPECT_TRUE(m1.Matches(L"")); EXPECT_TRUE(m1.Matches(L""));
EXPECT_FALSE(m1.Matches(NULL)); EXPECT_FALSE(m1.Matches(nullptr));
const Matcher<const ::wstring&> m2 = EndsWith(::wstring(L"Hi")); const Matcher<const ::wstring&> m2 = EndsWith(::wstring(L"Hi"));
EXPECT_TRUE(m2.Matches(L"Hi")); EXPECT_TRUE(m2.Matches(L"Hi"));
...@@ -3701,7 +3701,7 @@ TEST(PointeeTest, RawPointer) { ...@@ -3701,7 +3701,7 @@ TEST(PointeeTest, RawPointer) {
EXPECT_TRUE(m.Matches(&n)); EXPECT_TRUE(m.Matches(&n));
n = -1; n = -1;
EXPECT_FALSE(m.Matches(&n)); EXPECT_FALSE(m.Matches(&n));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
TEST(PointeeTest, RawPointerToConst) { TEST(PointeeTest, RawPointerToConst) {
...@@ -3711,7 +3711,7 @@ TEST(PointeeTest, RawPointerToConst) { ...@@ -3711,7 +3711,7 @@ TEST(PointeeTest, RawPointerToConst) {
EXPECT_TRUE(m.Matches(&x)); EXPECT_TRUE(m.Matches(&x));
x = -1; x = -1;
EXPECT_FALSE(m.Matches(&x)); EXPECT_FALSE(m.Matches(&x));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
TEST(PointeeTest, ReferenceToConstRawPointer) { TEST(PointeeTest, ReferenceToConstRawPointer) {
...@@ -3721,7 +3721,7 @@ TEST(PointeeTest, ReferenceToConstRawPointer) { ...@@ -3721,7 +3721,7 @@ TEST(PointeeTest, ReferenceToConstRawPointer) {
EXPECT_TRUE(m.Matches(&n)); EXPECT_TRUE(m.Matches(&n));
n = -1; n = -1;
EXPECT_FALSE(m.Matches(&n)); EXPECT_FALSE(m.Matches(&n));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
TEST(PointeeTest, ReferenceToNonConstRawPointer) { TEST(PointeeTest, ReferenceToNonConstRawPointer) {
...@@ -3732,7 +3732,7 @@ TEST(PointeeTest, ReferenceToNonConstRawPointer) { ...@@ -3732,7 +3732,7 @@ TEST(PointeeTest, ReferenceToNonConstRawPointer) {
EXPECT_TRUE(m.Matches(p)); EXPECT_TRUE(m.Matches(p));
x = -1; x = -1;
EXPECT_FALSE(m.Matches(p)); EXPECT_FALSE(m.Matches(p));
p = NULL; p = nullptr;
EXPECT_FALSE(m.Matches(p)); EXPECT_FALSE(m.Matches(p));
} }
...@@ -3771,7 +3771,7 @@ TEST(WhenDynamicCastToTest, WrongTypes) { ...@@ -3771,7 +3771,7 @@ TEST(WhenDynamicCastToTest, WrongTypes) {
TEST(WhenDynamicCastToTest, AlreadyNull) { TEST(WhenDynamicCastToTest, AlreadyNull) {
// Already NULL. // Already NULL.
Base* as_base_ptr = NULL; Base* as_base_ptr = nullptr;
EXPECT_THAT(as_base_ptr, WhenDynamicCastTo<Derived*>(IsNull())); EXPECT_THAT(as_base_ptr, WhenDynamicCastTo<Derived*>(IsNull()));
} }
...@@ -3807,7 +3807,7 @@ TEST(WhenDynamicCastToTest, Describe) { ...@@ -3807,7 +3807,7 @@ TEST(WhenDynamicCastToTest, Describe) {
TEST(WhenDynamicCastToTest, Explain) { TEST(WhenDynamicCastToTest, Explain) {
Matcher<Base*> matcher = WhenDynamicCastTo<Derived*>(Pointee(_)); Matcher<Base*> matcher = WhenDynamicCastTo<Derived*>(Pointee(_));
Base* null = NULL; Base* null = nullptr;
EXPECT_THAT(Explain(matcher, null), HasSubstr("NULL")); EXPECT_THAT(Explain(matcher, null), HasSubstr("NULL"));
Derived derived; Derived derived;
EXPECT_TRUE(matcher.Matches(&derived)); EXPECT_TRUE(matcher.Matches(&derived));
...@@ -3868,7 +3868,7 @@ TEST(PointeeTest, WorksWithConstPropagatingPointers) { ...@@ -3868,7 +3868,7 @@ TEST(PointeeTest, WorksWithConstPropagatingPointers) {
TEST(PointeeTest, NeverMatchesNull) { TEST(PointeeTest, NeverMatchesNull) {
const Matcher<const char*> m = Pointee(_); const Matcher<const char*> m = Pointee(_);
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
// Tests that we can write Pointee(value) instead of Pointee(Eq(value)). // Tests that we can write Pointee(value) instead of Pointee(Eq(value)).
...@@ -3879,7 +3879,7 @@ TEST(PointeeTest, MatchesAgainstAValue) { ...@@ -3879,7 +3879,7 @@ TEST(PointeeTest, MatchesAgainstAValue) {
EXPECT_TRUE(m.Matches(&n)); EXPECT_TRUE(m.Matches(&n));
n = -1; n = -1;
EXPECT_FALSE(m.Matches(&n)); EXPECT_FALSE(m.Matches(&n));
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
TEST(PointeeTest, CanDescribeSelf) { TEST(PointeeTest, CanDescribeSelf) {
...@@ -3892,7 +3892,7 @@ TEST(PointeeTest, CanDescribeSelf) { ...@@ -3892,7 +3892,7 @@ TEST(PointeeTest, CanDescribeSelf) {
TEST(PointeeTest, CanExplainMatchResult) { TEST(PointeeTest, CanExplainMatchResult) {
const Matcher<const std::string*> m = Pointee(StartsWith("Hi")); const Matcher<const std::string*> m = Pointee(StartsWith("Hi"));
EXPECT_EQ("", Explain(m, static_cast<const std::string*>(NULL))); EXPECT_EQ("", Explain(m, static_cast<const std::string*>(nullptr)));
const Matcher<long*> m2 = Pointee(GreaterThan(1)); // NOLINT const Matcher<long*> m2 = Pointee(GreaterThan(1)); // NOLINT
long n = 3; // NOLINT long n = 3; // NOLINT
...@@ -3929,7 +3929,7 @@ MATCHER_P(UncopyableIs, inner_matcher, "") { ...@@ -3929,7 +3929,7 @@ MATCHER_P(UncopyableIs, inner_matcher, "") {
// A user-defined struct for testing Field(). // A user-defined struct for testing Field().
struct AStruct { struct AStruct {
AStruct() : x(0), y(1.0), z(5), p(NULL) {} AStruct() : x(0), y(1.0), z(5), p(nullptr) {}
AStruct(const AStruct& rhs) AStruct(const AStruct& rhs)
: x(rhs.x), y(rhs.y), z(rhs.z.value()), p(rhs.p) {} : x(rhs.x), y(rhs.y), z(rhs.z.value()), p(rhs.p) {}
...@@ -3990,7 +3990,7 @@ TEST(FieldTest, WorksForUncopyableField) { ...@@ -3990,7 +3990,7 @@ TEST(FieldTest, WorksForUncopyableField) {
// Tests that Field(&Foo::field, ...) works when field is a pointer. // Tests that Field(&Foo::field, ...) works when field is a pointer.
TEST(FieldTest, WorksForPointerField) { TEST(FieldTest, WorksForPointerField) {
// Matching against NULL. // Matching against NULL.
Matcher<AStruct> m = Field(&AStruct::p, static_cast<const char*>(NULL)); Matcher<AStruct> m = Field(&AStruct::p, static_cast<const char*>(nullptr));
AStruct a; AStruct a;
EXPECT_TRUE(m.Matches(a)); EXPECT_TRUE(m.Matches(a));
a.p = "hi"; a.p = "hi";
...@@ -4116,7 +4116,7 @@ TEST(FieldForPointerTest, WorksForReferenceToConstPointer) { ...@@ -4116,7 +4116,7 @@ TEST(FieldForPointerTest, WorksForReferenceToConstPointer) {
// Tests that Field() does not match the NULL pointer. // Tests that Field() does not match the NULL pointer.
TEST(FieldForPointerTest, DoesNotMatchNull) { TEST(FieldForPointerTest, DoesNotMatchNull) {
Matcher<const AStruct*> m = Field(&AStruct::x, _); Matcher<const AStruct*> m = Field(&AStruct::x, _);
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
// Tests that Field(&Foo::field, ...) works when the argument's type // Tests that Field(&Foo::field, ...) works when the argument's type
...@@ -4154,7 +4154,7 @@ TEST(FieldForPointerTest, CanExplainMatchResult) { ...@@ -4154,7 +4154,7 @@ TEST(FieldForPointerTest, CanExplainMatchResult) {
AStruct a; AStruct a;
a.x = 1; a.x = 1;
EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(NULL))); EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(nullptr)));
EXPECT_EQ("which points to an object whose given field is 1" + OfType("int"), EXPECT_EQ("which points to an object whose given field is 1" + OfType("int"),
Explain(m, &a)); Explain(m, &a));
...@@ -4168,7 +4168,7 @@ TEST(FieldForPointerTest, CanExplainMatchResultWithFieldName) { ...@@ -4168,7 +4168,7 @@ TEST(FieldForPointerTest, CanExplainMatchResultWithFieldName) {
AStruct a; AStruct a;
a.x = 1; a.x = 1;
EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(NULL))); EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(nullptr)));
EXPECT_EQ( EXPECT_EQ(
"which points to an object whose field `field_name` is 1" + OfType("int"), "which points to an object whose field `field_name` is 1" + OfType("int"),
Explain(m, &a)); Explain(m, &a));
...@@ -4413,7 +4413,7 @@ TEST(PropertyForPointerTest, WorksForReferenceToConstPointer) { ...@@ -4413,7 +4413,7 @@ TEST(PropertyForPointerTest, WorksForReferenceToConstPointer) {
// Tests that Property() does not match the NULL pointer. // Tests that Property() does not match the NULL pointer.
TEST(PropertyForPointerTest, WorksForReferenceToNonConstProperty) { TEST(PropertyForPointerTest, WorksForReferenceToNonConstProperty) {
Matcher<const AClass*> m = Property(&AClass::x, _); Matcher<const AClass*> m = Property(&AClass::x, _);
EXPECT_FALSE(m.Matches(NULL)); EXPECT_FALSE(m.Matches(nullptr));
} }
// Tests that Property(&Foo::property, ...) works when the argument's // Tests that Property(&Foo::property, ...) works when the argument's
...@@ -4454,7 +4454,7 @@ TEST(PropertyForPointerTest, CanExplainMatchResult) { ...@@ -4454,7 +4454,7 @@ TEST(PropertyForPointerTest, CanExplainMatchResult) {
AClass a; AClass a;
a.set_n(1); a.set_n(1);
EXPECT_EQ("", Explain(m, static_cast<const AClass*>(NULL))); EXPECT_EQ("", Explain(m, static_cast<const AClass*>(nullptr)));
EXPECT_EQ( EXPECT_EQ(
"which points to an object whose given property is 1" + OfType("int"), "which points to an object whose given property is 1" + OfType("int"),
Explain(m, &a)); Explain(m, &a));
...@@ -4470,7 +4470,7 @@ TEST(PropertyForPointerTest, CanExplainMatchResultWithPropertyName) { ...@@ -4470,7 +4470,7 @@ TEST(PropertyForPointerTest, CanExplainMatchResultWithPropertyName) {
AClass a; AClass a;
a.set_n(1); a.set_n(1);
EXPECT_EQ("", Explain(m, static_cast<const AClass*>(NULL))); EXPECT_EQ("", Explain(m, static_cast<const AClass*>(nullptr)));
EXPECT_EQ("which points to an object whose property `fancy_name` is 1" + EXPECT_EQ("which points to an object whose property `fancy_name` is 1" +
OfType("int"), OfType("int"),
Explain(m, &a)); Explain(m, &a));
...@@ -4581,7 +4581,7 @@ TEST(ResultOfTest, WorksForCompatibleMatcherTypes) { ...@@ -4581,7 +4581,7 @@ TEST(ResultOfTest, WorksForCompatibleMatcherTypes) {
// a NULL function pointer. // a NULL function pointer.
TEST(ResultOfDeathTest, DiesOnNullFunctionPointers) { TEST(ResultOfDeathTest, DiesOnNullFunctionPointers) {
EXPECT_DEATH_IF_SUPPORTED( EXPECT_DEATH_IF_SUPPORTED(
ResultOf(static_cast<std::string (*)(int dummy)>(NULL), ResultOf(static_cast<std::string (*)(int dummy)>(nullptr),
Eq(std::string("foo"))), Eq(std::string("foo"))),
"NULL function pointer is passed into ResultOf\\(\\)\\."); "NULL function pointer is passed into ResultOf\\(\\)\\.");
} }
...@@ -6181,7 +6181,7 @@ TEST_P(BipartiteRandomTest, LargerNets) { ...@@ -6181,7 +6181,7 @@ TEST_P(BipartiteRandomTest, LargerNets) {
testing::internal::Int32 seed = GTEST_FLAG(random_seed); testing::internal::Int32 seed = GTEST_FLAG(random_seed);
if (seed == 0) { if (seed == 0) {
seed = static_cast<testing::internal::Int32>(time(NULL)); seed = static_cast<testing::internal::Int32>(time(nullptr));
} }
for (; iters > 0; --iters, ++seed) { for (; iters > 0; --iters, ++seed) {
...@@ -6684,7 +6684,7 @@ class SampleVariantIntString { ...@@ -6684,7 +6684,7 @@ class SampleVariantIntString {
template <typename T> template <typename T>
friend const T& get(const SampleVariantIntString& value) { friend const T& get(const SampleVariantIntString& value) {
return value.get_impl(static_cast<T*>(NULL)); return value.get_impl(static_cast<T*>(nullptr));
} }
private: private:
...@@ -6743,7 +6743,7 @@ class SampleAnyType { ...@@ -6743,7 +6743,7 @@ class SampleAnyType {
template <typename T> template <typename T>
friend const T* any_cast(const SampleAnyType* any) { friend const T* any_cast(const SampleAnyType* any) {
return any->get_impl(static_cast<T*>(NULL)); return any->get_impl(static_cast<T*>(nullptr));
} }
private: private:
...@@ -6751,9 +6751,9 @@ class SampleAnyType { ...@@ -6751,9 +6751,9 @@ class SampleAnyType {
int i_; int i_;
std::string s_; std::string s_;
const int* get_impl(int*) const { return index_ == 0 ? &i_ : NULL; } const int* get_impl(int*) const { return index_ == 0 ? &i_ : nullptr; }
const std::string* get_impl(std::string*) const { const std::string* get_impl(std::string*) const {
return index_ == 1 ? &s_ : NULL; return index_ == 1 ? &s_ : nullptr;
} }
}; };
......
...@@ -333,7 +333,8 @@ TEST(InvokeTest, FunctionWithUnusedParameters) { ...@@ -333,7 +333,8 @@ TEST(InvokeTest, FunctionWithUnusedParameters) {
Action<int(int, int, bool, int*)> a2 = Action<int(int, int, bool, int*)> a2 =
Invoke(SumOfFirst2); Invoke(SumOfFirst2);
EXPECT_EQ(23, a2.Perform(make_tuple(20, 3, true, static_cast<int*>(NULL)))); EXPECT_EQ(23,
a2.Perform(make_tuple(20, 3, true, static_cast<int*>(nullptr))));
} }
// Tests using Invoke() with methods with parameters declared as Unused. // Tests using Invoke() with methods with parameters declared as Unused.
......
...@@ -2041,7 +2041,7 @@ TEST(FunctionCallMessageTest, ...@@ -2041,7 +2041,7 @@ TEST(FunctionCallMessageTest,
GMOCK_FLAG(verbose) = kWarningVerbosity; GMOCK_FLAG(verbose) = kWarningVerbosity;
NaggyMock<MockC> c; NaggyMock<MockC> c;
CaptureStdout(); CaptureStdout();
c.VoidMethod(false, 5, "Hi", NULL, Printable(), Unprintable()); c.VoidMethod(false, 5, "Hi", nullptr, Printable(), Unprintable());
const std::string output = GetCapturedStdout(); const std::string output = GetCapturedStdout();
EXPECT_PRED_FORMAT2(IsSubstring, "GMOCK WARNING", output); EXPECT_PRED_FORMAT2(IsSubstring, "GMOCK WARNING", output);
EXPECT_PRED_FORMAT2(IsNotSubstring, "Stack trace:", output); EXPECT_PRED_FORMAT2(IsNotSubstring, "Stack trace:", output);
...@@ -2055,7 +2055,7 @@ TEST(FunctionCallMessageTest, ...@@ -2055,7 +2055,7 @@ TEST(FunctionCallMessageTest,
GMOCK_FLAG(verbose) = kInfoVerbosity; GMOCK_FLAG(verbose) = kInfoVerbosity;
NaggyMock<MockC> c; NaggyMock<MockC> c;
CaptureStdout(); CaptureStdout();
c.VoidMethod(false, 5, "Hi", NULL, Printable(), Unprintable()); c.VoidMethod(false, 5, "Hi", nullptr, Printable(), Unprintable());
const std::string output = GetCapturedStdout(); const std::string output = GetCapturedStdout();
EXPECT_PRED_FORMAT2(IsSubstring, "GMOCK WARNING", output); EXPECT_PRED_FORMAT2(IsSubstring, "GMOCK WARNING", output);
EXPECT_PRED_FORMAT2(IsSubstring, "Stack trace:", output); EXPECT_PRED_FORMAT2(IsSubstring, "Stack trace:", output);
...@@ -2098,7 +2098,7 @@ TEST(FunctionCallMessageTest, ...@@ -2098,7 +2098,7 @@ TEST(FunctionCallMessageTest,
// A void mock function. // A void mock function.
NaggyMock<MockC> c; NaggyMock<MockC> c;
CaptureStdout(); CaptureStdout();
c.VoidMethod(false, 5, "Hi", NULL, Printable(), Unprintable()); c.VoidMethod(false, 5, "Hi", nullptr, Printable(), Unprintable());
const std::string output2 = GetCapturedStdout(); const std::string output2 = GetCapturedStdout();
EXPECT_THAT(output2.c_str(), EXPECT_THAT(output2.c_str(),
ContainsRegex( ContainsRegex(
......
...@@ -248,7 +248,7 @@ TEST(LinkTest, TestReturnVoid) { ...@@ -248,7 +248,7 @@ TEST(LinkTest, TestReturnVoid) {
Mock mock; Mock mock;
EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Return()); EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Return());
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the Return action. // Tests the linkage of the Return action.
...@@ -257,7 +257,7 @@ TEST(LinkTest, TestReturn) { ...@@ -257,7 +257,7 @@ TEST(LinkTest, TestReturn) {
char ch = 'x'; char ch = 'x';
EXPECT_CALL(mock, StringFromString(_)).WillOnce(Return(&ch)); EXPECT_CALL(mock, StringFromString(_)).WillOnce(Return(&ch));
mock.StringFromString(NULL); mock.StringFromString(nullptr);
} }
// Tests the linkage of the ReturnNull action. // Tests the linkage of the ReturnNull action.
...@@ -265,7 +265,7 @@ TEST(LinkTest, TestReturnNull) { ...@@ -265,7 +265,7 @@ TEST(LinkTest, TestReturnNull) {
Mock mock; Mock mock;
EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Return()); EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Return());
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the ReturnRef action. // Tests the linkage of the ReturnRef action.
...@@ -274,7 +274,7 @@ TEST(LinkTest, TestReturnRef) { ...@@ -274,7 +274,7 @@ TEST(LinkTest, TestReturnRef) {
int n = 42; int n = 42;
EXPECT_CALL(mock, IntRefFromString(_)).WillOnce(ReturnRef(n)); EXPECT_CALL(mock, IntRefFromString(_)).WillOnce(ReturnRef(n));
mock.IntRefFromString(NULL); mock.IntRefFromString(nullptr);
} }
// Tests the linkage of the Assign action. // Tests the linkage of the Assign action.
...@@ -283,7 +283,7 @@ TEST(LinkTest, TestAssign) { ...@@ -283,7 +283,7 @@ TEST(LinkTest, TestAssign) {
char ch = 'x'; char ch = 'x';
EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Assign(&ch, 'y')); EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Assign(&ch, 'y'));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the SetArgPointee action. // Tests the linkage of the SetArgPointee action.
...@@ -314,7 +314,7 @@ TEST(LinkTest, TestSetErrnoAndReturn) { ...@@ -314,7 +314,7 @@ TEST(LinkTest, TestSetErrnoAndReturn) {
int saved_errno = errno; int saved_errno = errno;
EXPECT_CALL(mock, IntFromString(_)).WillOnce(SetErrnoAndReturn(1, -1)); EXPECT_CALL(mock, IntFromString(_)).WillOnce(SetErrnoAndReturn(1, -1));
mock.IntFromString(NULL); mock.IntFromString(nullptr);
errno = saved_errno; errno = saved_errno;
} }
...@@ -328,8 +328,8 @@ TEST(LinkTest, TestInvoke) { ...@@ -328,8 +328,8 @@ TEST(LinkTest, TestInvoke) {
EXPECT_CALL(mock, VoidFromString(_)) EXPECT_CALL(mock, VoidFromString(_))
.WillOnce(Invoke(&InvokeHelper::StaticVoidFromString)) .WillOnce(Invoke(&InvokeHelper::StaticVoidFromString))
.WillOnce(Invoke(&test_invoke_helper, &InvokeHelper::VoidFromString)); .WillOnce(Invoke(&test_invoke_helper, &InvokeHelper::VoidFromString));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the InvokeWithoutArgs action. // Tests the linkage of the InvokeWithoutArgs action.
...@@ -341,8 +341,8 @@ TEST(LinkTest, TestInvokeWithoutArgs) { ...@@ -341,8 +341,8 @@ TEST(LinkTest, TestInvokeWithoutArgs) {
.WillOnce(InvokeWithoutArgs(&InvokeHelper::StaticVoidFromVoid)) .WillOnce(InvokeWithoutArgs(&InvokeHelper::StaticVoidFromVoid))
.WillOnce(InvokeWithoutArgs(&test_invoke_helper, .WillOnce(InvokeWithoutArgs(&test_invoke_helper,
&InvokeHelper::VoidFromVoid)); &InvokeHelper::VoidFromVoid));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the InvokeArgument action. // Tests the linkage of the InvokeArgument action.
...@@ -360,7 +360,7 @@ TEST(LinkTest, TestWithArg) { ...@@ -360,7 +360,7 @@ TEST(LinkTest, TestWithArg) {
EXPECT_CALL(mock, VoidFromString(_)) EXPECT_CALL(mock, VoidFromString(_))
.WillOnce(WithArg<0>(Invoke(&InvokeHelper::StaticVoidFromString))); .WillOnce(WithArg<0>(Invoke(&InvokeHelper::StaticVoidFromString)));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the WithArgs action. // Tests the linkage of the WithArgs action.
...@@ -369,7 +369,7 @@ TEST(LinkTest, TestWithArgs) { ...@@ -369,7 +369,7 @@ TEST(LinkTest, TestWithArgs) {
EXPECT_CALL(mock, VoidFromString(_)) EXPECT_CALL(mock, VoidFromString(_))
.WillOnce(WithArgs<0>(Invoke(&InvokeHelper::StaticVoidFromString))); .WillOnce(WithArgs<0>(Invoke(&InvokeHelper::StaticVoidFromString)));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the WithoutArgs action. // Tests the linkage of the WithoutArgs action.
...@@ -377,7 +377,7 @@ TEST(LinkTest, TestWithoutArgs) { ...@@ -377,7 +377,7 @@ TEST(LinkTest, TestWithoutArgs) {
Mock mock; Mock mock;
EXPECT_CALL(mock, VoidFromString(_)).WillOnce(WithoutArgs(Return())); EXPECT_CALL(mock, VoidFromString(_)).WillOnce(WithoutArgs(Return()));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
// Tests the linkage of the DoAll action. // Tests the linkage of the DoAll action.
...@@ -405,7 +405,7 @@ TEST(LinkTest, TestIgnoreResult) { ...@@ -405,7 +405,7 @@ TEST(LinkTest, TestIgnoreResult) {
Mock mock; Mock mock;
EXPECT_CALL(mock, VoidFromString(_)).WillOnce(IgnoreResult(Return(42))); EXPECT_CALL(mock, VoidFromString(_)).WillOnce(IgnoreResult(Return(42)));
mock.VoidFromString(NULL); mock.VoidFromString(nullptr);
} }
#if GTEST_HAS_EXCEPTIONS #if GTEST_HAS_EXCEPTIONS
...@@ -437,7 +437,7 @@ TEST(LinkTest, TestActionMacro) { ...@@ -437,7 +437,7 @@ TEST(LinkTest, TestActionMacro) {
Mock mock; Mock mock;
EXPECT_CALL(mock, IntFromString(_)).WillOnce(Return1()); EXPECT_CALL(mock, IntFromString(_)).WillOnce(Return1());
mock.IntFromString(NULL); mock.IntFromString(nullptr);
} }
// Tests the linkage of actions created using ACTION_P macro. // Tests the linkage of actions created using ACTION_P macro.
...@@ -449,7 +449,7 @@ TEST(LinkTest, TestActionPMacro) { ...@@ -449,7 +449,7 @@ TEST(LinkTest, TestActionPMacro) {
Mock mock; Mock mock;
EXPECT_CALL(mock, IntFromString(_)).WillOnce(ReturnArgument(42)); EXPECT_CALL(mock, IntFromString(_)).WillOnce(ReturnArgument(42));
mock.IntFromString(NULL); mock.IntFromString(nullptr);
} }
// Tests the linkage of actions created using ACTION_P2 macro. // Tests the linkage of actions created using ACTION_P2 macro.
...@@ -646,7 +646,7 @@ TEST(LinkTest, TestMatcherProperty) { ...@@ -646,7 +646,7 @@ TEST(LinkTest, TestMatcherProperty) {
// Tests the linkage of the ResultOf matcher. // Tests the linkage of the ResultOf matcher.
TEST(LinkTest, TestMatcherResultOf) { TEST(LinkTest, TestMatcherResultOf) {
Matcher<char*> m = ResultOf(&InvokeHelper::StaticIntFromString, Eq(1)); Matcher<char*> m = ResultOf(&InvokeHelper::StaticIntFromString, Eq(1));
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
} }
// Tests the linkage of the ResultOf matcher. // Tests the linkage of the ResultOf matcher.
...@@ -660,7 +660,7 @@ TEST(LinkTest, TestMatcherPointee) { ...@@ -660,7 +660,7 @@ TEST(LinkTest, TestMatcherPointee) {
// Tests the linkage of the Truly matcher. // Tests the linkage of the Truly matcher.
TEST(LinkTest, TestMatcherTruly) { TEST(LinkTest, TestMatcherTruly) {
Matcher<const char*> m = Truly(&InvokeHelper::StaticBoolFromString); Matcher<const char*> m = Truly(&InvokeHelper::StaticBoolFromString);
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
} }
// Tests the linkage of the AllOf matcher. // Tests the linkage of the AllOf matcher.
...@@ -684,7 +684,7 @@ TEST(LinkTest, TestMatcherNot) { ...@@ -684,7 +684,7 @@ TEST(LinkTest, TestMatcherNot) {
// Tests the linkage of the MatcherCast<T>() function. // Tests the linkage of the MatcherCast<T>() function.
TEST(LinkTest, TestMatcherCast) { TEST(LinkTest, TestMatcherCast) {
Matcher<const char*> m = MatcherCast<const char*>(_); Matcher<const char*> m = MatcherCast<const char*>(_);
EXPECT_TRUE(m.Matches(NULL)); EXPECT_TRUE(m.Matches(nullptr));
} }
#endif // GMOCK_TEST_GMOCK_LINK_TEST_H_ #endif // GMOCK_TEST_GMOCK_LINK_TEST_H_
...@@ -210,7 +210,7 @@ void TestConcurrentCallsOnSameObject(Dummy /* dummy */) { ...@@ -210,7 +210,7 @@ void TestConcurrentCallsOnSameObject(Dummy /* dummy */) {
int count1 = 0; int count1 = 0;
const Helper1Param param = { &foo, &count1 }; const Helper1Param param = { &foo, &count1 };
ThreadWithParam<Helper1Param>* const t = ThreadWithParam<Helper1Param>* const t =
new ThreadWithParam<Helper1Param>(Helper1, param, NULL); new ThreadWithParam<Helper1Param>(Helper1, param, nullptr);
int count2 = 0; int count2 = 0;
const Helper1Param param2 = { &foo, &count2 }; const Helper1Param param2 = { &foo, &count2 };
...@@ -264,7 +264,7 @@ void TestPartiallyOrderedExpectationsWithThreads(Dummy /* dummy */) { ...@@ -264,7 +264,7 @@ void TestPartiallyOrderedExpectationsWithThreads(Dummy /* dummy */) {
foo.Bar(1); foo.Bar(1);
ThreadWithParam<MockFoo*>* const t = ThreadWithParam<MockFoo*>* const t =
new ThreadWithParam<MockFoo*>(Helper2, &foo, NULL); new ThreadWithParam<MockFoo*>(Helper2, &foo, nullptr);
Helper2(&foo); Helper2(&foo);
JoinAndDelete(t); JoinAndDelete(t);
...@@ -288,8 +288,8 @@ TEST(StressTest, CanUseGMockWithThreads) { ...@@ -288,8 +288,8 @@ TEST(StressTest, CanUseGMockWithThreads) {
ThreadWithParam<Dummy>* threads[kTestThreads] = {}; ThreadWithParam<Dummy>* threads[kTestThreads] = {};
for (int i = 0; i < kTestThreads; i++) { for (int i = 0; i < kTestThreads; i++) {
// Creates a thread to run the test function. // Creates a thread to run the test function.
threads[i] = threads[i] = new ThreadWithParam<Dummy>(test_routines[i % kRoutines],
new ThreadWithParam<Dummy>(test_routines[i % kRoutines], Dummy(), NULL); Dummy(), nullptr);
GTEST_LOG_(INFO) << "Thread #" << i << " running . . ."; GTEST_LOG_(INFO) << "Thread #" << i << " running . . .";
} }
......
...@@ -64,59 +64,35 @@ void TestInitGoogleMock(const Char* (&argv)[M], const Char* (&new_argv)[N], ...@@ -64,59 +64,35 @@ void TestInitGoogleMock(const Char* (&argv)[M], const Char* (&new_argv)[N],
} }
TEST(InitGoogleMockTest, ParsesInvalidCommandLine) { TEST(InitGoogleMockTest, ParsesInvalidCommandLine) {
const char* argv[] = { const char* argv[] = {nullptr};
NULL
};
const char* new_argv[] = { const char* new_argv[] = {nullptr};
NULL
};
TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
} }
TEST(InitGoogleMockTest, ParsesEmptyCommandLine) { TEST(InitGoogleMockTest, ParsesEmptyCommandLine) {
const char* argv[] = { const char* argv[] = {"foo.exe", nullptr};
"foo.exe",
NULL
};
const char* new_argv[] = { const char* new_argv[] = {"foo.exe", nullptr};
"foo.exe",
NULL
};
TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
} }
TEST(InitGoogleMockTest, ParsesSingleFlag) { TEST(InitGoogleMockTest, ParsesSingleFlag) {
const char* argv[] = { const char* argv[] = {"foo.exe", "--gmock_verbose=info", nullptr};
"foo.exe",
"--gmock_verbose=info",
NULL
};
const char* new_argv[] = { const char* new_argv[] = {"foo.exe", nullptr};
"foo.exe",
NULL
};
TestInitGoogleMock(argv, new_argv, "info"); TestInitGoogleMock(argv, new_argv, "info");
} }
TEST(InitGoogleMockTest, ParsesMultipleFlags) { TEST(InitGoogleMockTest, ParsesMultipleFlags) {
int old_default_behavior = GMOCK_FLAG(default_mock_behavior); int old_default_behavior = GMOCK_FLAG(default_mock_behavior);
const wchar_t* argv[] = { const wchar_t* argv[] = {L"foo.exe", L"--gmock_verbose=info",
L"foo.exe", L"--gmock_default_mock_behavior=2", nullptr};
L"--gmock_verbose=info",
L"--gmock_default_mock_behavior=2", const wchar_t* new_argv[] = {L"foo.exe", nullptr};
NULL
};
const wchar_t* new_argv[] = {
L"foo.exe",
NULL
};
TestInitGoogleMock(argv, new_argv, "info"); TestInitGoogleMock(argv, new_argv, "info");
EXPECT_EQ(2, GMOCK_FLAG(default_mock_behavior)); EXPECT_EQ(2, GMOCK_FLAG(default_mock_behavior));
...@@ -125,92 +101,52 @@ TEST(InitGoogleMockTest, ParsesMultipleFlags) { ...@@ -125,92 +101,52 @@ TEST(InitGoogleMockTest, ParsesMultipleFlags) {
} }
TEST(InitGoogleMockTest, ParsesUnrecognizedFlag) { TEST(InitGoogleMockTest, ParsesUnrecognizedFlag) {
const char* argv[] = { const char* argv[] = {"foo.exe", "--non_gmock_flag=blah", nullptr};
"foo.exe",
"--non_gmock_flag=blah", const char* new_argv[] = {"foo.exe", "--non_gmock_flag=blah", nullptr};
NULL
};
const char* new_argv[] = {
"foo.exe",
"--non_gmock_flag=blah",
NULL
};
TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
} }
TEST(InitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag) { TEST(InitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag) {
const char* argv[] = { const char* argv[] = {"foo.exe", "--non_gmock_flag=blah",
"foo.exe", "--gmock_verbose=error", nullptr};
"--non_gmock_flag=blah",
"--gmock_verbose=error", const char* new_argv[] = {"foo.exe", "--non_gmock_flag=blah", nullptr};
NULL
};
const char* new_argv[] = {
"foo.exe",
"--non_gmock_flag=blah",
NULL
};
TestInitGoogleMock(argv, new_argv, "error"); TestInitGoogleMock(argv, new_argv, "error");
} }
TEST(WideInitGoogleMockTest, ParsesInvalidCommandLine) { TEST(WideInitGoogleMockTest, ParsesInvalidCommandLine) {
const wchar_t* argv[] = { const wchar_t* argv[] = {nullptr};
NULL
};
const wchar_t* new_argv[] = { const wchar_t* new_argv[] = {nullptr};
NULL
};
TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
} }
TEST(WideInitGoogleMockTest, ParsesEmptyCommandLine) { TEST(WideInitGoogleMockTest, ParsesEmptyCommandLine) {
const wchar_t* argv[] = { const wchar_t* argv[] = {L"foo.exe", nullptr};
L"foo.exe",
NULL
};
const wchar_t* new_argv[] = { const wchar_t* new_argv[] = {L"foo.exe", nullptr};
L"foo.exe",
NULL
};
TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
} }
TEST(WideInitGoogleMockTest, ParsesSingleFlag) { TEST(WideInitGoogleMockTest, ParsesSingleFlag) {
const wchar_t* argv[] = { const wchar_t* argv[] = {L"foo.exe", L"--gmock_verbose=info", nullptr};
L"foo.exe",
L"--gmock_verbose=info",
NULL
};
const wchar_t* new_argv[] = { const wchar_t* new_argv[] = {L"foo.exe", nullptr};
L"foo.exe",
NULL
};
TestInitGoogleMock(argv, new_argv, "info"); TestInitGoogleMock(argv, new_argv, "info");
} }
TEST(WideInitGoogleMockTest, ParsesMultipleFlags) { TEST(WideInitGoogleMockTest, ParsesMultipleFlags) {
int old_default_behavior = GMOCK_FLAG(default_mock_behavior); int old_default_behavior = GMOCK_FLAG(default_mock_behavior);
const wchar_t* argv[] = { const wchar_t* argv[] = {L"foo.exe", L"--gmock_verbose=info",
L"foo.exe", L"--gmock_default_mock_behavior=2", nullptr};
L"--gmock_verbose=info",
L"--gmock_default_mock_behavior=2", const wchar_t* new_argv[] = {L"foo.exe", nullptr};
NULL
};
const wchar_t* new_argv[] = {
L"foo.exe",
NULL
};
TestInitGoogleMock(argv, new_argv, "info"); TestInitGoogleMock(argv, new_argv, "info");
EXPECT_EQ(2, GMOCK_FLAG(default_mock_behavior)); EXPECT_EQ(2, GMOCK_FLAG(default_mock_behavior));
...@@ -219,34 +155,18 @@ TEST(WideInitGoogleMockTest, ParsesMultipleFlags) { ...@@ -219,34 +155,18 @@ TEST(WideInitGoogleMockTest, ParsesMultipleFlags) {
} }
TEST(WideInitGoogleMockTest, ParsesUnrecognizedFlag) { TEST(WideInitGoogleMockTest, ParsesUnrecognizedFlag) {
const wchar_t* argv[] = { const wchar_t* argv[] = {L"foo.exe", L"--non_gmock_flag=blah", nullptr};
L"foo.exe",
L"--non_gmock_flag=blah", const wchar_t* new_argv[] = {L"foo.exe", L"--non_gmock_flag=blah", nullptr};
NULL
};
const wchar_t* new_argv[] = {
L"foo.exe",
L"--non_gmock_flag=blah",
NULL
};
TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose)); TestInitGoogleMock(argv, new_argv, GMOCK_FLAG(verbose));
} }
TEST(WideInitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag) { TEST(WideInitGoogleMockTest, ParsesGoogleMockFlagAndUnrecognizedFlag) {
const wchar_t* argv[] = { const wchar_t* argv[] = {L"foo.exe", L"--non_gmock_flag=blah",
L"foo.exe", L"--gmock_verbose=error", nullptr};
L"--non_gmock_flag=blah",
L"--gmock_verbose=error", const wchar_t* new_argv[] = {L"foo.exe", L"--non_gmock_flag=blah", nullptr};
NULL
};
const wchar_t* new_argv[] = {
L"foo.exe",
L"--non_gmock_flag=blah",
NULL
};
TestInitGoogleMock(argv, new_argv, "error"); TestInitGoogleMock(argv, new_argv, "error");
} }
......
...@@ -477,11 +477,8 @@ If a fatal failure happens the subsequent steps will be skipped. ...@@ -477,11 +477,8 @@ If a fatal failure happens the subsequent steps will be skipped.
## Writing the main() Function ## Writing the main() Function
In `google3`, the simplest approach is to use the default main() function Write your own main() function, which should
provided by linking in `"//testing/base/public:gtest_main"`. If that doesn't return the value of `RUN_ALL_TESTS()`
cover what you need, you should write your own main() function, which should
return the value of `RUN_ALL_TESTS()`. Link to `"//testing/base/public:gunit"`.
You can start from this boilerplate:
```c++ ```c++
#include "this/package/foo.h" #include "this/package/foo.h"
......
...@@ -151,7 +151,7 @@ class GTEST_API_ Message { ...@@ -151,7 +151,7 @@ class GTEST_API_ Message {
// as "(null)". // as "(null)".
template <typename T> template <typename T>
inline Message& operator <<(T* const& pointer) { // NOLINT inline Message& operator <<(T* const& pointer) { // NOLINT
if (pointer == NULL) { if (pointer == nullptr) {
*ss_ << "(null)"; *ss_ << "(null)";
} else { } else {
*ss_ << pointer; *ss_ << pointer;
......
...@@ -449,7 +449,7 @@ void DefaultPrintTo(WrapPrinterType<kPrintContainer> /* dummy */, ...@@ -449,7 +449,7 @@ void DefaultPrintTo(WrapPrinterType<kPrintContainer> /* dummy */,
template <typename T> template <typename T>
void DefaultPrintTo(WrapPrinterType<kPrintPointer> /* dummy */, void DefaultPrintTo(WrapPrinterType<kPrintPointer> /* dummy */,
T* p, ::std::ostream* os) { T* p, ::std::ostream* os) {
if (p == NULL) { if (p == nullptr) {
*os << "NULL"; *os << "NULL";
} else { } else {
// T is not a function type. We just call << to print p, // T is not a function type. We just call << to print p,
...@@ -461,7 +461,7 @@ void DefaultPrintTo(WrapPrinterType<kPrintPointer> /* dummy */, ...@@ -461,7 +461,7 @@ void DefaultPrintTo(WrapPrinterType<kPrintPointer> /* dummy */,
template <typename T> template <typename T>
void DefaultPrintTo(WrapPrinterType<kPrintFunctionPointer> /* dummy */, void DefaultPrintTo(WrapPrinterType<kPrintFunctionPointer> /* dummy */,
T* p, ::std::ostream* os) { T* p, ::std::ostream* os) {
if (p == NULL) { if (p == nullptr) {
*os << "NULL"; *os << "NULL";
} else { } else {
// T is a function type, so '*os << p' doesn't do what we want // T is a function type, so '*os << p' doesn't do what we want
...@@ -518,11 +518,7 @@ void PrintTo(const T& value, ::std::ostream* os) { ...@@ -518,11 +518,7 @@ void PrintTo(const T& value, ::std::ostream* os) {
? kPrintContainer ? kPrintContainer
: !is_pointer<T>::value : !is_pointer<T>::value
? kPrintOther ? kPrintOther
#if GTEST_LANG_CXX11
: std::is_function<typename std::remove_pointer<T>::type>::value : std::is_function<typename std::remove_pointer<T>::type>::value
#else
: !internal::ImplicitlyConvertible<T, const void*>::value
#endif
? kPrintFunctionPointer ? kPrintFunctionPointer
: kPrintPointer > (), : kPrintPointer > (),
value, os); value, os);
...@@ -639,8 +635,6 @@ inline void PrintTo(absl::string_view sp, ::std::ostream* os) { ...@@ -639,8 +635,6 @@ inline void PrintTo(absl::string_view sp, ::std::ostream* os) {
} }
#endif // GTEST_HAS_ABSL #endif // GTEST_HAS_ABSL
#if GTEST_LANG_CXX11
inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; } inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; }
template <typename T> template <typename T>
...@@ -649,8 +643,6 @@ void PrintTo(std::reference_wrapper<T> ref, ::std::ostream* os) { ...@@ -649,8 +643,6 @@ void PrintTo(std::reference_wrapper<T> ref, ::std::ostream* os) {
PrintTo(ref.get(), os); PrintTo(ref.get(), os);
} }
#endif // GTEST_LANG_CXX11
#if GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_ #if GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_
// Helper function for printing a tuple. T must be instantiated with // Helper function for printing a tuple. T must be instantiated with
// a tuple type. // a tuple type.
...@@ -914,7 +906,7 @@ template <> ...@@ -914,7 +906,7 @@ template <>
class UniversalTersePrinter<const char*> { class UniversalTersePrinter<const char*> {
public: public:
static void Print(const char* str, ::std::ostream* os) { static void Print(const char* str, ::std::ostream* os) {
if (str == NULL) { if (str == nullptr) {
*os << "NULL"; *os << "NULL";
} else { } else {
UniversalPrint(std::string(str), os); UniversalPrint(std::string(str), os);
...@@ -934,7 +926,7 @@ template <> ...@@ -934,7 +926,7 @@ template <>
class UniversalTersePrinter<const wchar_t*> { class UniversalTersePrinter<const wchar_t*> {
public: public:
static void Print(const wchar_t* str, ::std::ostream* os) { static void Print(const wchar_t* str, ::std::ostream* os) {
if (str == NULL) { if (str == nullptr) {
*os << "NULL"; *os << "NULL";
} else { } else {
UniversalPrint(::std::wstring(str), os); UniversalPrint(::std::wstring(str), os);
......
...@@ -60,16 +60,13 @@ class GTEST_API_ TestPartResult { ...@@ -60,16 +60,13 @@ class GTEST_API_ TestPartResult {
// C'tor. TestPartResult does NOT have a default constructor. // C'tor. TestPartResult does NOT have a default constructor.
// Always use this constructor (with parameters) to create a // Always use this constructor (with parameters) to create a
// TestPartResult object. // TestPartResult object.
TestPartResult(Type a_type, TestPartResult(Type a_type, const char* a_file_name, int a_line_number,
const char* a_file_name,
int a_line_number,
const char* a_message) const char* a_message)
: type_(a_type), : type_(a_type),
file_name_(a_file_name == NULL ? "" : a_file_name), file_name_(a_file_name == nullptr ? "" : a_file_name),
line_number_(a_line_number), line_number_(a_line_number),
summary_(ExtractSummary(a_message)), summary_(ExtractSummary(a_message)),
message_(a_message) { message_(a_message) {}
}
// Gets the outcome of the test part. // Gets the outcome of the test part.
Type type() const { return type_; } Type type() const { return type_; }
...@@ -77,7 +74,7 @@ class GTEST_API_ TestPartResult { ...@@ -77,7 +74,7 @@ class GTEST_API_ TestPartResult {
// Gets the name of the source file where the test part took place, or // Gets the name of the source file where the test part took place, or
// NULL if it's unknown. // NULL if it's unknown.
const char* file_name() const { const char* file_name() const {
return file_name_.empty() ? NULL : file_name_.c_str(); return file_name_.empty() ? nullptr : file_name_.c_str();
} }
// Gets the line in the source file where the test part took place, // Gets the line in the source file where the test part took place,
......
...@@ -300,7 +300,8 @@ class GTEST_API_ AssertionResult { ...@@ -300,7 +300,8 @@ class GTEST_API_ AssertionResult {
const T& success, const T& success,
typename internal::EnableIf< typename internal::EnableIf<
!internal::ImplicitlyConvertible<T, AssertionResult>::value>::type* !internal::ImplicitlyConvertible<T, AssertionResult>::value>::type*
/*enabler*/ = NULL) /*enabler*/
= nullptr)
: success_(success) {} : success_(success) {}
#if defined(_MSC_VER) && _MSC_VER < 1910 #if defined(_MSC_VER) && _MSC_VER < 1910
...@@ -324,7 +325,7 @@ class GTEST_API_ AssertionResult { ...@@ -324,7 +325,7 @@ class GTEST_API_ AssertionResult {
// assertion's expectation). When nothing has been streamed into the // assertion's expectation). When nothing has been streamed into the
// object, returns an empty string. // object, returns an empty string.
const char* message() const { const char* message() const {
return message_.get() != NULL ? message_->c_str() : ""; return message_.get() != nullptr ? message_->c_str() : "";
} }
// FIXME: Remove this after making sure no clients use it. // FIXME: Remove this after making sure no clients use it.
// Deprecated; please use message() instead. // Deprecated; please use message() instead.
...@@ -347,8 +348,7 @@ class GTEST_API_ AssertionResult { ...@@ -347,8 +348,7 @@ class GTEST_API_ AssertionResult {
private: private:
// Appends the contents of message to message_. // Appends the contents of message to message_.
void AppendMessage(const Message& a_message) { void AppendMessage(const Message& a_message) {
if (message_.get() == NULL) if (message_.get() == nullptr) message_.reset(new ::std::string);
message_.reset(new ::std::string);
message_->append(a_message.GetString().c_str()); message_->append(a_message.GetString().c_str());
} }
...@@ -512,7 +512,7 @@ class GTEST_API_ Test { ...@@ -512,7 +512,7 @@ class GTEST_API_ Test {
// If you see an error about overriding the following function or // If you see an error about overriding the following function or
// about it being private, you have mis-spelled SetUp() as Setup(). // about it being private, you have mis-spelled SetUp() as Setup().
struct Setup_should_be_spelled_SetUp {}; struct Setup_should_be_spelled_SetUp {};
virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; } virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; }
// We disallow copying Tests. // We disallow copying Tests.
GTEST_DISALLOW_COPY_AND_ASSIGN_(Test); GTEST_DISALLOW_COPY_AND_ASSIGN_(Test);
...@@ -700,17 +700,15 @@ class GTEST_API_ TestInfo { ...@@ -700,17 +700,15 @@ class GTEST_API_ TestInfo {
// Returns the name of the parameter type, or NULL if this is not a typed // Returns the name of the parameter type, or NULL if this is not a typed
// or a type-parameterized test. // or a type-parameterized test.
const char* type_param() const { const char* type_param() const {
if (type_param_.get() != NULL) if (type_param_.get() != nullptr) return type_param_->c_str();
return type_param_->c_str(); return nullptr;
return NULL;
} }
// Returns the text representation of the value parameter, or NULL if this // Returns the text representation of the value parameter, or NULL if this
// is not a value-parameterized test. // is not a value-parameterized test.
const char* value_param() const { const char* value_param() const {
if (value_param_.get() != NULL) if (value_param_.get() != nullptr) return value_param_->c_str();
return value_param_->c_str(); return nullptr;
return NULL;
} }
// Returns the file name where this test is defined. // Returns the file name where this test is defined.
...@@ -849,9 +847,8 @@ class GTEST_API_ TestCase { ...@@ -849,9 +847,8 @@ class GTEST_API_ TestCase {
// Returns the name of the parameter type, or NULL if this is not a // Returns the name of the parameter type, or NULL if this is not a
// type-parameterized test case. // type-parameterized test case.
const char* type_param() const { const char* type_param() const {
if (type_param_.get() != NULL) if (type_param_.get() != nullptr) return type_param_->c_str();
return type_param_->c_str(); return nullptr;
return NULL;
} }
// Returns true if any test in this test case should run. // Returns true if any test in this test case should run.
...@@ -1038,7 +1035,7 @@ class Environment { ...@@ -1038,7 +1035,7 @@ class Environment {
// If you see an error about overriding the following function or // If you see an error about overriding the following function or
// about it being private, you have mis-spelled SetUp() as Setup(). // about it being private, you have mis-spelled SetUp() as Setup().
struct Setup_should_be_spelled_SetUp {}; struct Setup_should_be_spelled_SetUp {};
virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; } virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; }
}; };
#if GTEST_HAS_EXCEPTIONS #if GTEST_HAS_EXCEPTIONS
...@@ -1514,16 +1511,14 @@ class EqHelper<true> { ...@@ -1514,16 +1511,14 @@ class EqHelper<true> {
// EXPECT_EQ(false, a_bool). // EXPECT_EQ(false, a_bool).
template <typename T1, typename T2> template <typename T1, typename T2>
static AssertionResult Compare( static AssertionResult Compare(
const char* lhs_expression, const char* lhs_expression, const char* rhs_expression, const T1& lhs,
const char* rhs_expression,
const T1& lhs,
const T2& rhs, const T2& rhs,
// The following line prevents this overload from being considered if T2 // The following line prevents this overload from being considered if T2
// is not a pointer type. We need this because ASSERT_EQ(NULL, my_ptr) // is not a pointer type. We need this because ASSERT_EQ(NULL, my_ptr)
// expands to Compare("", "", NULL, my_ptr), which requires a conversion // expands to Compare("", "", NULL, my_ptr), which requires a conversion
// to match the Secret* in the other overload, which would otherwise make // to match the Secret* in the other overload, which would otherwise make
// this template match better. // this template match better.
typename EnableIf<!is_pointer<T2>::value>::type* = 0) { typename EnableIf<!is_pointer<T2>::value>::type* = nullptr) {
return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
} }
...@@ -1542,8 +1537,8 @@ class EqHelper<true> { ...@@ -1542,8 +1537,8 @@ class EqHelper<true> {
Secret* /* lhs (NULL) */, Secret* /* lhs (NULL) */,
T* rhs) { T* rhs) {
// We already know that 'lhs' is a null pointer. // We already know that 'lhs' is a null pointer.
return CmpHelperEQ(lhs_expression, rhs_expression, return CmpHelperEQ(lhs_expression, rhs_expression, static_cast<T*>(nullptr),
static_cast<T*>(NULL), rhs); rhs);
} }
}; };
...@@ -1772,6 +1767,12 @@ class GTEST_API_ AssertHelper { ...@@ -1772,6 +1767,12 @@ class GTEST_API_ AssertHelper {
GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper); GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper);
}; };
enum GTestColor { COLOR_DEFAULT, COLOR_RED, COLOR_GREEN, COLOR_YELLOW };
GTEST_API_ GTEST_ATTRIBUTE_PRINTF_(2, 3) void ColoredPrintf(GTestColor color,
const char* fmt,
...);
} // namespace internal } // namespace internal
// The pure interface class that all value-parameterized tests inherit from. // The pure interface class that all value-parameterized tests inherit from.
...@@ -1817,7 +1818,7 @@ class WithParamInterface { ...@@ -1817,7 +1818,7 @@ class WithParamInterface {
// The current parameter value. Is also available in the test fixture's // The current parameter value. Is also available in the test fixture's
// constructor. // constructor.
static const ParamType& GetParam() { static const ParamType& GetParam() {
GTEST_CHECK_(parameter_ != NULL) GTEST_CHECK_(parameter_ != nullptr)
<< "GetParam() can only be called inside a value-parameterized test " << "GetParam() can only be called inside a value-parameterized test "
<< "-- did you intend to write TEST_P instead of TEST_F?"; << "-- did you intend to write TEST_P instead of TEST_F?";
return *parameter_; return *parameter_;
...@@ -1838,7 +1839,7 @@ class WithParamInterface { ...@@ -1838,7 +1839,7 @@ class WithParamInterface {
}; };
template <typename T> template <typename T>
const T* WithParamInterface<T>::parameter_ = NULL; const T* WithParamInterface<T>::parameter_ = nullptr;
// Most value-parameterized classes can ignore the existence of // Most value-parameterized classes can ignore the existence of
// WithParamInterface, and can just inherit from ::testing::TestWithParam. // WithParamInterface, and can just inherit from ::testing::TestWithParam.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment