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