Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
googletest
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
googletest
Commits
32de5f53
Commit
32de5f53
authored
Dec 23, 2009
by
zhanyong.wan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixes a slew of compiler warnings and turns on "warning as error" in the scons build.
parent
284b54d3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
703 additions
and
105 deletions
+703
-105
gmock-actions.h
include/gmock/gmock-actions.h
+49
-0
gmock-generated-actions.h
include/gmock/gmock-generated-actions.h
+64
-0
gmock-generated-actions.h.pump
include/gmock/gmock-generated-actions.h.pump
+24
-0
gmock-generated-function-mockers.h
include/gmock/gmock-generated-function-mockers.h
+55
-0
gmock-generated-function-mockers.h.pump
include/gmock/gmock-generated-function-mockers.h.pump
+5
-0
gmock-generated-matchers.h
include/gmock/gmock-generated-matchers.h
+70
-1
gmock-generated-matchers.h.pump
include/gmock/gmock-generated-matchers.h.pump
+12
-1
gmock-generated-nice-strict.h
include/gmock/gmock-generated-nice-strict.h
+6
-0
gmock-generated-nice-strict.h.pump
include/gmock/gmock-generated-nice-strict.h.pump
+6
-0
gmock-matchers.h
include/gmock/gmock-matchers.h
+106
-5
gmock-more-actions.h
include/gmock/gmock-more-actions.h
+20
-0
gmock-spec-builders.h
include/gmock/gmock-spec-builders.h
+23
-10
gmock-internal-utils.h
include/gmock/internal/gmock-internal-utils.h
+4
-4
SConscript
scons/SConscript
+13
-3
gmock-internal-utils.cc
src/gmock-internal-utils.cc
+1
-1
gmock-spec-builders.cc
src/gmock-spec-builders.cc
+10
-10
gmock-actions_test.cc
test/gmock-actions_test.cc
+19
-12
gmock-cardinalities_test.cc
test/gmock-cardinalities_test.cc
+7
-1
gmock-generated-actions_test.cc
test/gmock-generated-actions_test.cc
+31
-13
gmock-generated-function-mockers_test.cc
test/gmock-generated-function-mockers_test.cc
+30
-0
gmock-generated-matchers_test.cc
test/gmock-generated-matchers_test.cc
+16
-7
gmock-internal-utils_test.cc
test/gmock-internal-utils_test.cc
+7
-7
gmock-matchers_test.cc
test/gmock-matchers_test.cc
+22
-9
gmock-more-actions_test.cc
test/gmock-more-actions_test.cc
+12
-8
gmock-nice-strict_test.cc
test/gmock-nice-strict_test.cc
+11
-0
gmock-port_test.cc
test/gmock-port_test.cc
+4
-4
gmock-printers_test.cc
test/gmock-printers_test.cc
+7
-7
gmock-spec-builders_test.cc
test/gmock-spec-builders_test.cc
+39
-1
gmock_leak_test_.cc
test/gmock_leak_test_.cc
+5
-0
gmock_link_test.h
test/gmock_link_test.h
+20
-1
gmock_output_test_.cc
test/gmock_output_test_.cc
+5
-0
No files found.
include/gmock/gmock-actions.h
View file @
32de5f53
...
@@ -268,6 +268,7 @@ class ActionInterface {
...
@@ -268,6 +268,7 @@ class ActionInterface {
// Returns true iff this is the DoDefault() action.
// Returns true iff this is the DoDefault() action.
bool
IsDoDefault
()
const
{
return
is_do_default_
;
}
bool
IsDoDefault
()
const
{
return
is_do_default_
;
}
private
:
private
:
template
<
typename
Function
>
template
<
typename
Function
>
friend
class
internal
::
MonomorphicDoDefaultActionImpl
;
friend
class
internal
::
MonomorphicDoDefaultActionImpl
;
...
@@ -279,6 +280,8 @@ class ActionInterface {
...
@@ -279,6 +280,8 @@ class ActionInterface {
// True iff this action is DoDefault().
// True iff this action is DoDefault().
const
bool
is_do_default_
;
const
bool
is_do_default_
;
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
ActionInterface
);
};
};
// An Action<F> is a copyable and IMMUTABLE (except by assignment)
// An Action<F> is a copyable and IMMUTABLE (except by assignment)
...
@@ -325,6 +328,7 @@ class Action {
...
@@ -325,6 +328,7 @@ class Action {
Result
Perform
(
const
ArgumentTuple
&
args
)
const
{
Result
Perform
(
const
ArgumentTuple
&
args
)
const
{
return
impl_
->
Perform
(
args
);
return
impl_
->
Perform
(
args
);
}
}
private
:
private
:
template
<
typename
F1
,
typename
F2
>
template
<
typename
F1
,
typename
F2
>
friend
class
internal
::
ActionAdaptor
;
friend
class
internal
::
ActionAdaptor
;
...
@@ -362,6 +366,7 @@ class PolymorphicAction {
...
@@ -362,6 +366,7 @@ class PolymorphicAction {
operator
Action
<
F
>
()
const
{
operator
Action
<
F
>
()
const
{
return
Action
<
F
>
(
new
MonomorphicImpl
<
F
>
(
impl_
));
return
Action
<
F
>
(
new
MonomorphicImpl
<
F
>
(
impl_
));
}
}
private
:
private
:
template
<
typename
F
>
template
<
typename
F
>
class
MonomorphicImpl
:
public
ActionInterface
<
F
>
{
class
MonomorphicImpl
:
public
ActionInterface
<
F
>
{
...
@@ -377,9 +382,13 @@ class PolymorphicAction {
...
@@ -377,9 +382,13 @@ class PolymorphicAction {
private
:
private
:
Impl
impl_
;
Impl
impl_
;
GTEST_DISALLOW_ASSIGN_
(
MonomorphicImpl
);
};
};
Impl
impl_
;
Impl
impl_
;
GTEST_DISALLOW_ASSIGN_
(
PolymorphicAction
);
};
};
// Creates an Action from its implementation and returns it. The
// Creates an Action from its implementation and returns it. The
...
@@ -416,8 +425,11 @@ class ActionAdaptor : public ActionInterface<F1> {
...
@@ -416,8 +425,11 @@ class ActionAdaptor : public ActionInterface<F1> {
virtual
Result
Perform
(
const
ArgumentTuple
&
args
)
{
virtual
Result
Perform
(
const
ArgumentTuple
&
args
)
{
return
impl_
->
Perform
(
args
);
return
impl_
->
Perform
(
args
);
}
}
private
:
private
:
const
internal
::
linked_ptr
<
ActionInterface
<
F2
>
>
impl_
;
const
internal
::
linked_ptr
<
ActionInterface
<
F2
>
>
impl_
;
GTEST_DISALLOW_ASSIGN_
(
ActionAdaptor
);
};
};
// Implements the polymorphic Return(x) action, which can be used in
// Implements the polymorphic Return(x) action, which can be used in
...
@@ -470,6 +482,7 @@ class ReturnAction {
...
@@ -470,6 +482,7 @@ class ReturnAction {
use_ReturnRef_instead_of_Return_to_return_a_reference
);
use_ReturnRef_instead_of_Return_to_return_a_reference
);
return
Action
<
F
>
(
new
Impl
<
F
>
(
value_
));
return
Action
<
F
>
(
new
Impl
<
F
>
(
value_
));
}
}
private
:
private
:
// Implements the Return(x) action for a particular function type F.
// Implements the Return(x) action for a particular function type F.
template
<
typename
F
>
template
<
typename
F
>
...
@@ -494,9 +507,13 @@ class ReturnAction {
...
@@ -494,9 +507,13 @@ class ReturnAction {
GMOCK_COMPILE_ASSERT_
(
!
internal
::
is_reference
<
Result
>::
value
,
GMOCK_COMPILE_ASSERT_
(
!
internal
::
is_reference
<
Result
>::
value
,
Result_cannot_be_a_reference_type
);
Result_cannot_be_a_reference_type
);
Result
value_
;
Result
value_
;
GTEST_DISALLOW_ASSIGN_
(
Impl
);
};
};
R
value_
;
R
value_
;
GTEST_DISALLOW_ASSIGN_
(
ReturnAction
);
};
};
// Implements the ReturnNull() action.
// Implements the ReturnNull() action.
...
@@ -542,6 +559,7 @@ class ReturnRefAction {
...
@@ -542,6 +559,7 @@ class ReturnRefAction {
use_Return_instead_of_ReturnRef_to_return_a_value
);
use_Return_instead_of_ReturnRef_to_return_a_value
);
return
Action
<
F
>
(
new
Impl
<
F
>
(
ref_
));
return
Action
<
F
>
(
new
Impl
<
F
>
(
ref_
));
}
}
private
:
private
:
// Implements the ReturnRef(x) action for a particular function type F.
// Implements the ReturnRef(x) action for a particular function type F.
template
<
typename
F
>
template
<
typename
F
>
...
@@ -555,11 +573,16 @@ class ReturnRefAction {
...
@@ -555,11 +573,16 @@ class ReturnRefAction {
virtual
Result
Perform
(
const
ArgumentTuple
&
)
{
virtual
Result
Perform
(
const
ArgumentTuple
&
)
{
return
ref_
;
return
ref_
;
}
}
private
:
private
:
T
&
ref_
;
T
&
ref_
;
GTEST_DISALLOW_ASSIGN_
(
Impl
);
};
};
T
&
ref_
;
T
&
ref_
;
GTEST_DISALLOW_ASSIGN_
(
ReturnRefAction
);
};
};
// Implements the DoDefault() action for a particular function type F.
// Implements the DoDefault() action for a particular function type F.
...
@@ -611,9 +634,12 @@ class AssignAction {
...
@@ -611,9 +634,12 @@ class AssignAction {
void
Perform
(
const
ArgumentTuple
&
/* args */
)
const
{
void
Perform
(
const
ArgumentTuple
&
/* args */
)
const
{
*
ptr_
=
value_
;
*
ptr_
=
value_
;
}
}
private
:
private
:
T1
*
const
ptr_
;
T1
*
const
ptr_
;
const
T2
value_
;
const
T2
value_
;
GTEST_DISALLOW_ASSIGN_
(
AssignAction
);
};
};
#if !GTEST_OS_WINDOWS_MOBILE
#if !GTEST_OS_WINDOWS_MOBILE
...
@@ -631,9 +657,12 @@ class SetErrnoAndReturnAction {
...
@@ -631,9 +657,12 @@ class SetErrnoAndReturnAction {
errno
=
errno_
;
errno
=
errno_
;
return
result_
;
return
result_
;
}
}
private
:
private
:
const
int
errno_
;
const
int
errno_
;
const
T
result_
;
const
T
result_
;
GTEST_DISALLOW_ASSIGN_
(
SetErrnoAndReturnAction
);
};
};
#endif // !GTEST_OS_WINDOWS_MOBILE
#endif // !GTEST_OS_WINDOWS_MOBILE
...
@@ -657,6 +686,8 @@ class SetArgumentPointeeAction {
...
@@ -657,6 +686,8 @@ class SetArgumentPointeeAction {
private
:
private
:
const
A
value_
;
const
A
value_
;
GTEST_DISALLOW_ASSIGN_
(
SetArgumentPointeeAction
);
};
};
template
<
size_t
N
,
typename
Proto
>
template
<
size_t
N
,
typename
Proto
>
...
@@ -675,8 +706,11 @@ class SetArgumentPointeeAction<N, Proto, true> {
...
@@ -675,8 +706,11 @@ class SetArgumentPointeeAction<N, Proto, true> {
CompileAssertTypesEqual
<
void
,
Result
>
();
CompileAssertTypesEqual
<
void
,
Result
>
();
::
std
::
tr1
::
get
<
N
>
(
args
)
->
CopyFrom
(
*
proto_
);
::
std
::
tr1
::
get
<
N
>
(
args
)
->
CopyFrom
(
*
proto_
);
}
}
private
:
private
:
const
internal
::
linked_ptr
<
Proto
>
proto_
;
const
internal
::
linked_ptr
<
Proto
>
proto_
;
GTEST_DISALLOW_ASSIGN_
(
SetArgumentPointeeAction
);
};
};
// Implements the InvokeWithoutArgs(f) action. The template argument
// Implements the InvokeWithoutArgs(f) action. The template argument
...
@@ -696,8 +730,11 @@ class InvokeWithoutArgsAction {
...
@@ -696,8 +730,11 @@ class InvokeWithoutArgsAction {
// compatible with f.
// compatible with f.
template
<
typename
Result
,
typename
ArgumentTuple
>
template
<
typename
Result
,
typename
ArgumentTuple
>
Result
Perform
(
const
ArgumentTuple
&
)
{
return
function_impl_
();
}
Result
Perform
(
const
ArgumentTuple
&
)
{
return
function_impl_
();
}
private
:
private
:
FunctionImpl
function_impl_
;
FunctionImpl
function_impl_
;
GTEST_DISALLOW_ASSIGN_
(
InvokeWithoutArgsAction
);
};
};
// Implements the InvokeWithoutArgs(object_ptr, &Class::Method) action.
// Implements the InvokeWithoutArgs(object_ptr, &Class::Method) action.
...
@@ -711,9 +748,12 @@ class InvokeMethodWithoutArgsAction {
...
@@ -711,9 +748,12 @@ class InvokeMethodWithoutArgsAction {
Result
Perform
(
const
ArgumentTuple
&
)
const
{
Result
Perform
(
const
ArgumentTuple
&
)
const
{
return
(
obj_ptr_
->*
method_ptr_
)();
return
(
obj_ptr_
->*
method_ptr_
)();
}
}
private
:
private
:
Class
*
const
obj_ptr_
;
Class
*
const
obj_ptr_
;
const
MethodPtr
method_ptr_
;
const
MethodPtr
method_ptr_
;
GTEST_DISALLOW_ASSIGN_
(
InvokeMethodWithoutArgsAction
);
};
};
// Implements the IgnoreResult(action) action.
// Implements the IgnoreResult(action) action.
...
@@ -739,6 +779,7 @@ class IgnoreResultAction {
...
@@ -739,6 +779,7 @@ class IgnoreResultAction {
return
Action
<
F
>
(
new
Impl
<
F
>
(
action_
));
return
Action
<
F
>
(
new
Impl
<
F
>
(
action_
));
}
}
private
:
private
:
template
<
typename
F
>
template
<
typename
F
>
class
Impl
:
public
ActionInterface
<
F
>
{
class
Impl
:
public
ActionInterface
<
F
>
{
...
@@ -760,9 +801,13 @@ class IgnoreResultAction {
...
@@ -760,9 +801,13 @@ class IgnoreResultAction {
OriginalFunction
;
OriginalFunction
;
const
Action
<
OriginalFunction
>
action_
;
const
Action
<
OriginalFunction
>
action_
;
GTEST_DISALLOW_ASSIGN_
(
Impl
);
};
};
const
A
action_
;
const
A
action_
;
GTEST_DISALLOW_ASSIGN_
(
IgnoreResultAction
);
};
};
// A ReferenceWrapper<T> object represents a reference to type T,
// A ReferenceWrapper<T> object represents a reference to type T,
...
@@ -827,10 +872,14 @@ class DoBothAction {
...
@@ -827,10 +872,14 @@ class DoBothAction {
private
:
private
:
const
Action
<
VoidResult
>
action1_
;
const
Action
<
VoidResult
>
action1_
;
const
Action
<
F
>
action2_
;
const
Action
<
F
>
action2_
;
GTEST_DISALLOW_ASSIGN_
(
Impl
);
};
};
Action1
action1_
;
Action1
action1_
;
Action2
action2_
;
Action2
action2_
;
GTEST_DISALLOW_ASSIGN_
(
DoBothAction
);
};
};
}
// namespace internal
}
// namespace internal
...
...
include/gmock/gmock-generated-actions.h
View file @
32de5f53
...
@@ -615,6 +615,8 @@ class WithArgsAction {
...
@@ -615,6 +615,8 @@ class WithArgsAction {
};
};
const
InnerAction
action_
;
const
InnerAction
action_
;
GTEST_DISALLOW_ASSIGN_
(
WithArgsAction
);
};
};
// A macro from the ACTION* family (defined later in this file)
// A macro from the ACTION* family (defined later in this file)
...
@@ -1406,12 +1408,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1406,12 +1408,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
arg9_type arg9) const;\
arg9_type arg9) const;\
GMOCK_INTERNAL_DEFN_##value_params\
GMOCK_INTERNAL_DEFN_##value_params\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(\
return ::testing::Action<F>(\
new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\
new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\
}\
}\
GMOCK_INTERNAL_DEFN_##value_params\
GMOCK_INTERNAL_DEFN_##value_params\
private:\
GTEST_DISALLOW_ASSIGN_(GMOCK_ACTION_CLASS_(name, value_params));\
};\
};\
template <GMOCK_INTERNAL_DECL_##template_params\
template <GMOCK_INTERNAL_DECL_##template_params\
GMOCK_INTERNAL_DECL_TYPE_##value_params>\
GMOCK_INTERNAL_DECL_TYPE_##value_params>\
...
@@ -1462,10 +1468,14 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1462,10 +1468,14 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
arg9_type arg9) const;\
arg9_type arg9) const;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>());\
return ::testing::Action<F>(new gmock_Impl<F>());\
}\
}\
private:\
GTEST_DISALLOW_ASSIGN_(name##Action);\
};\
};\
inline name##Action name() {\
inline name##Action name() {\
return name##Action();\
return name##Action();\
...
@@ -1505,11 +1515,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1505,11 +1515,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
arg9_type arg9) const;\
arg9_type arg9) const;\
p0##_type p0;\
p0##_type p0;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0));\
return ::testing::Action<F>(new gmock_Impl<F>(p0));\
}\
}\
p0##_type p0;\
p0##_type p0;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP);\
};\
};\
template <typename p0##_type>\
template <typename p0##_type>\
inline name##ActionP<p0##_type> name(p0##_type p0) {\
inline name##ActionP<p0##_type> name(p0##_type p0) {\
...
@@ -1554,12 +1568,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1554,12 +1568,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
arg9_type arg9) const;\
arg9_type arg9) const;\
p0##_type p0;\
p0##_type p0;\
p1##_type p1;\
p1##_type p1;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\
}\
}\
p0##_type p0;\
p0##_type p0;\
p1##_type p1;\
p1##_type p1;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP2);\
};\
};\
template <typename p0##_type, typename p1##_type>\
template <typename p0##_type, typename p1##_type>\
inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \
inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \
...
@@ -1606,6 +1624,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1606,6 +1624,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p0##_type p0;\
p0##_type p0;\
p1##_type p1;\
p1##_type p1;\
p2##_type p2;\
p2##_type p2;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\
...
@@ -1613,6 +1633,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1613,6 +1633,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p0##_type p0;\
p0##_type p0;\
p1##_type p1;\
p1##_type p1;\
p2##_type p2;\
p2##_type p2;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP3);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type>\
template <typename p0##_type, typename p1##_type, typename p2##_type>\
inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \
inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \
...
@@ -1664,6 +1686,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1664,6 +1686,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p1##_type p1;\
p1##_type p1;\
p2##_type p2;\
p2##_type p2;\
p3##_type p3;\
p3##_type p3;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\
...
@@ -1672,6 +1696,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1672,6 +1696,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p1##_type p1;\
p1##_type p1;\
p2##_type p2;\
p2##_type p2;\
p3##_type p3;\
p3##_type p3;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP4);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type>\
typename p3##_type>\
...
@@ -1729,6 +1755,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1729,6 +1755,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p2##_type p2;\
p2##_type p2;\
p3##_type p3;\
p3##_type p3;\
p4##_type p4;\
p4##_type p4;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\
...
@@ -1738,6 +1766,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1738,6 +1766,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p2##_type p2;\
p2##_type p2;\
p3##_type p3;\
p3##_type p3;\
p4##_type p4;\
p4##_type p4;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP5);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type>\
typename p3##_type, typename p4##_type>\
...
@@ -1797,6 +1827,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1797,6 +1827,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p3##_type p3;\
p3##_type p3;\
p4##_type p4;\
p4##_type p4;\
p5##_type p5;\
p5##_type p5;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\
...
@@ -1807,6 +1839,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1807,6 +1839,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p3##_type p3;\
p3##_type p3;\
p4##_type p4;\
p4##_type p4;\
p5##_type p5;\
p5##_type p5;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP6);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type, typename p5##_type>\
typename p3##_type, typename p4##_type, typename p5##_type>\
...
@@ -1869,6 +1903,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1869,6 +1903,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p4##_type p4;\
p4##_type p4;\
p5##_type p5;\
p5##_type p5;\
p6##_type p6;\
p6##_type p6;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
...
@@ -1881,6 +1917,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1881,6 +1917,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p4##_type p4;\
p4##_type p4;\
p5##_type p5;\
p5##_type p5;\
p6##_type p6;\
p6##_type p6;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP7);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
...
@@ -1949,6 +1987,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1949,6 +1987,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p5##_type p5;\
p5##_type p5;\
p6##_type p6;\
p6##_type p6;\
p7##_type p7;\
p7##_type p7;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
...
@@ -1962,6 +2002,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -1962,6 +2002,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p5##_type p5;\
p5##_type p5;\
p6##_type p6;\
p6##_type p6;\
p7##_type p7;\
p7##_type p7;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP8);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
...
@@ -2034,6 +2076,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -2034,6 +2076,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p6##_type p6;\
p6##_type p6;\
p7##_type p7;\
p7##_type p7;\
p8##_type p8;\
p8##_type p8;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
...
@@ -2048,6 +2092,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -2048,6 +2092,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p6##_type p6;\
p6##_type p6;\
p7##_type p7;\
p7##_type p7;\
p8##_type p8;\
p8##_type p8;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP9);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
...
@@ -2123,6 +2169,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -2123,6 +2169,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p7##_type p7;\
p7##_type p7;\
p8##_type p8;\
p8##_type p8;\
p9##_type p9;\
p9##_type p9;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
};\
template <typename F> operator ::testing::Action<F>() const {\
template <typename F> operator ::testing::Action<F>() const {\
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
...
@@ -2138,6 +2186,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -2138,6 +2186,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
p7##_type p7;\
p7##_type p7;\
p8##_type p8;\
p8##_type p8;\
p9##_type p9;\
p9##_type p9;\
private:\
GTEST_DISALLOW_ASSIGN_(name##ActionP10);\
};\
};\
template <typename p0##_type, typename p1##_type, typename p2##_type, \
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p3##_type, typename p4##_type, typename p5##_type, \
...
@@ -2172,6 +2222,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
...
@@ -2172,6 +2222,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
// updated.
// updated.
namespace
testing
{
namespace
testing
{
// The ACTION*() macros trigger warning C4100 (unreferenced formal
// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
// the macro definition, as the warnings are generated when the macro
// is expanded and macro expansion cannot contain #pragma. Therefore
// we suppress them here.
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4100)
#endif
// Various overloads for InvokeArgument<N>().
// Various overloads for InvokeArgument<N>().
//
//
// The InvokeArgument<N>(a1, a2, ..., a_k) action invokes the N-th
// The InvokeArgument<N>(a1, a2, ..., a_k) action invokes the N-th
...
@@ -2350,6 +2410,10 @@ ACTION_TEMPLATE(ReturnNew,
...
@@ -2350,6 +2410,10 @@ ACTION_TEMPLATE(ReturnNew,
return
new
T
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
,
p8
,
p9
);
return
new
T
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
,
p8
,
p9
);
}
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif
}
// namespace testing
}
// namespace testing
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
include/gmock/gmock-generated-actions.h.pump
View file @
32de5f53
...
@@ -228,6 +228,8 @@ class WithArgsAction {
...
@@ -228,6 +228,8 @@ class WithArgsAction {
};
};
const
InnerAction
action_
;
const
InnerAction
action_
;
GTEST_DISALLOW_ASSIGN_
(
WithArgsAction
);
};
};
// A macro from the ACTION* family (defined later in this file)
// A macro from the ACTION* family (defined later in this file)
...
@@ -630,12 +632,16 @@ $range k 0..n-1
...
@@ -630,12 +632,16 @@ $range k 0..n-1
return_type gmock_PerformImpl(const args_type& args[[]]
return_type gmock_PerformImpl(const args_type& args[[]]
$
for
k
[[,
arg
$
k
[[]]
_type
arg
$
k
]])
const
;
\
$
for
k
[[,
arg
$
k
[[]]
_type
arg
$
k
]])
const
;
\
GMOCK_INTERNAL_DEFN_
##
value_params
\
GMOCK_INTERNAL_DEFN_
##
value_params
\
private
:
\
GTEST_DISALLOW_ASSIGN_
(
gmock_Impl
);
\
};
\
};
\
template
<
typename
F
>
operator
::
testing
::
Action
<
F
>
()
const
{
\
template
<
typename
F
>
operator
::
testing
::
Action
<
F
>
()
const
{
\
return
::
testing
::
Action
<
F
>
(
\
return
::
testing
::
Action
<
F
>
(
\
new
gmock_Impl
<
F
>
(
GMOCK_INTERNAL_LIST_
##
value_params
));
\
new
gmock_Impl
<
F
>
(
GMOCK_INTERNAL_LIST_
##
value_params
));
\
}
\
}
\
GMOCK_INTERNAL_DEFN_
##
value_params
\
GMOCK_INTERNAL_DEFN_
##
value_params
\
private
:
\
GTEST_DISALLOW_ASSIGN_
(
GMOCK_ACTION_CLASS_
(
name
,
value_params
));
\
};
\
};
\
template
<
GMOCK_INTERNAL_DECL_
##
template_params
\
template
<
GMOCK_INTERNAL_DECL_
##
template_params
\
GMOCK_INTERNAL_DECL_TYPE_
##
value_params
>
\
GMOCK_INTERNAL_DECL_TYPE_
##
value_params
>
\
...
@@ -712,10 +718,14 @@ $var macro_name = [[$if i==0 [[ACTION]] $elif i==1 [[ACTION_P]]
...
@@ -712,10 +718,14 @@ $var macro_name = [[$if i==0 [[ACTION]] $elif i==1 [[ACTION_P]]
template
<
$
typename_arg_types
>
\
template
<
$
typename_arg_types
>
\
return_type
gmock_PerformImpl
(
const
args_type
&
args
,
[[]]
return_type
gmock_PerformImpl
(
const
args_type
&
args
,
[[]]
$
arg_types_and_names
)
const
;
\$
param_field_decls
$
arg_types_and_names
)
const
;
\$
param_field_decls
private
:
\
GTEST_DISALLOW_ASSIGN_
(
gmock_Impl
);
\
};
\
};
\
template
<
typename
F
>
operator
::
testing
::
Action
<
F
>
()
const
{
\
template
<
typename
F
>
operator
::
testing
::
Action
<
F
>
()
const
{
\
return
::
testing
::
Action
<
F
>
(
new
gmock_Impl
<
F
>
(
$
params
));
\
return
::
testing
::
Action
<
F
>
(
new
gmock_Impl
<
F
>
(
$
params
));
\
}
\$
param_field_decls2
}
\$
param_field_decls2
private
:
\
GTEST_DISALLOW_ASSIGN_
(
$
class_name
);
\
};
\$
template
};
\$
template
inline
$
class_name
$
param_types
name
(
$
param_types_and_names
)
{
\
inline
$
class_name
$
param_types
name
(
$
param_types_and_names
)
{
\
return
$
class_name
$
param_types
(
$
params
);
\
return
$
class_name
$
param_types
(
$
params
);
\
...
@@ -735,6 +745,16 @@ $$ // show up in the generated code.
...
@@ -735,6 +745,16 @@ $$ // show up in the generated code.
// updated.
// updated.
namespace
testing
{
namespace
testing
{
// The ACTION*() macros trigger warning C4100 (unreferenced formal
// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
// the macro definition, as the warnings are generated when the macro
// is expanded and macro expansion cannot contain #pragma. Therefore
// we suppress them here.
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4100)
#endif
// Various overloads for InvokeArgument<N>().
// Various overloads for InvokeArgument<N>().
//
//
// The InvokeArgument<N>(a1, a2, ..., a_k) action invokes the N-th
// The InvokeArgument<N>(a1, a2, ..., a_k) action invokes the N-th
...
@@ -796,6 +816,10 @@ ACTION_TEMPLATE(ReturnNew,
...
@@ -796,6 +816,10 @@ ACTION_TEMPLATE(ReturnNew,
]]
]]
#ifdef _MSC_VER
#pragma warning(pop)
#endif
}
// namespace testing
}
// namespace testing
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
include/gmock/gmock-generated-function-mockers.h
View file @
32de5f53
...
@@ -794,66 +794,116 @@ class MockFunction;
...
@@ -794,66 +794,116 @@ class MockFunction;
template
<
typename
R
>
template
<
typename
R
>
class
MockFunction
<
R
()
>
{
class
MockFunction
<
R
()
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD0_T
(
Call
,
R
());
MOCK_METHOD0_T
(
Call
,
R
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
>
template
<
typename
R
,
typename
A0
>
class
MockFunction
<
R
(
A0
)
>
{
class
MockFunction
<
R
(
A0
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD1_T
(
Call
,
R
(
A0
));
MOCK_METHOD1_T
(
Call
,
R
(
A0
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
>
template
<
typename
R
,
typename
A0
,
typename
A1
>
class
MockFunction
<
R
(
A0
,
A1
)
>
{
class
MockFunction
<
R
(
A0
,
A1
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD2_T
(
Call
,
R
(
A0
,
A1
));
MOCK_METHOD2_T
(
Call
,
R
(
A0
,
A1
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
>
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD3_T
(
Call
,
R
(
A0
,
A1
,
A2
));
MOCK_METHOD3_T
(
Call
,
R
(
A0
,
A1
,
A2
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
>
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD4_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
));
MOCK_METHOD4_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
>
typename
A4
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD5_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
));
MOCK_METHOD5_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
>
typename
A4
,
typename
A5
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD6_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
));
MOCK_METHOD6_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
>
typename
A4
,
typename
A5
,
typename
A6
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD7_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
));
MOCK_METHOD7_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
>
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD8_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
));
MOCK_METHOD8_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
>
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD9_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
));
MOCK_METHOD9_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
template
<
typename
R
,
typename
A0
,
typename
A1
,
typename
A2
,
typename
A3
,
...
@@ -861,7 +911,12 @@ template <typename R, typename A0, typename A1, typename A2, typename A3,
...
@@ -861,7 +911,12 @@ template <typename R, typename A0, typename A1, typename A2, typename A3,
typename
A9
>
typename
A9
>
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
,
A9
)
>
{
class
MockFunction
<
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
,
A9
)
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD10_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
,
A9
));
MOCK_METHOD10_T
(
Call
,
R
(
A0
,
A1
,
A2
,
A3
,
A4
,
A5
,
A6
,
A7
,
A8
,
A9
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
}
// namespace testing
}
// namespace testing
...
...
include/gmock/gmock-generated-function-mockers.h.pump
View file @
32de5f53
...
@@ -242,7 +242,12 @@ $range j 0..i-1
...
@@ -242,7 +242,12 @@ $range j 0..i-1
template
<
typename
R
$
for
j
[[,
typename
A
$
j
]]
>
template
<
typename
R
$
for
j
[[,
typename
A
$
j
]]
>
class
MockFunction
<
R
(
$
for
j
,
[[
A
$
j
]])
>
{
class
MockFunction
<
R
(
$
for
j
,
[[
A
$
j
]])
>
{
public
:
public
:
MockFunction
()
{}
MOCK_METHOD
$
i
[[]]
_T
(
Call
,
R
(
$
for
j
,
[[
A
$
j
]]));
MOCK_METHOD
$
i
[[]]
_T
(
Call
,
R
(
$
for
j
,
[[
A
$
j
]]));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFunction
);
};
};
...
...
include/gmock/gmock-generated-matchers.h
View file @
32de5f53
This diff is collapsed.
Click to expand it.
include/gmock/gmock-generated-matchers.h.pump
View file @
32de5f53
...
@@ -91,7 +91,7 @@ template <class Tuple$for j [[, int k$j]]>
...
@@ -91,7 +91,7 @@ template <class Tuple$for j [[, int k$j]]>
class
TupleFields
<
Tuple
,
$
for
k
,
[[
$
if
k
<
i
[[
k
$
k
]]
$
else
[[
-
1
]]]]
>
{
class
TupleFields
<
Tuple
,
$
for
k
,
[[
$
if
k
<
i
[[
k
$
k
]]
$
else
[[
-
1
]]]]
>
{
public
:
public
:
typedef
::
std
::
tr1
::
tuple
<
$
for
j
,
[[
GMOCK_FIELD_TYPE_
(
Tuple
,
k
$
j
)]]
>
type
;
typedef
::
std
::
tr1
::
tuple
<
$
for
j
,
[[
GMOCK_FIELD_TYPE_
(
Tuple
,
k
$
j
)]]
>
type
;
static
type
GetSelectedFields
(
const
Tuple
&
t
)
{
static
type
GetSelectedFields
(
const
Tuple
&
$
if
i
==
0
[[
/* t */
]]
$
else
[[
t
]]
)
{
using
::
std
::
tr1
::
get
;
using
::
std
::
tr1
::
get
;
return
type
(
$
for
j
,
[[
get
<
k
$
j
>
(
t
)]]);
return
type
(
$
for
j
,
[[
get
<
k
$
j
>
(
t
)]]);
}
}
...
@@ -157,6 +157,8 @@ class ArgsMatcherImpl : public MatcherInterface<ArgsTuple> {
...
@@ -157,6 +157,8 @@ class ArgsMatcherImpl : public MatcherInterface<ArgsTuple> {
}
}
const
MonomorphicInnerMatcher
inner_matcher_
;
const
MonomorphicInnerMatcher
inner_matcher_
;
GTEST_DISALLOW_ASSIGN_
(
ArgsMatcherImpl
);
};
};
template
<
class
InnerMatcher
$
for
i
[[,
int
k
$
i
=
-
1
]]
>
template
<
class
InnerMatcher
$
for
i
[[,
int
k
$
i
=
-
1
]]
>
...
@@ -170,7 +172,10 @@ class ArgsMatcher {
...
@@ -170,7 +172,10 @@ class ArgsMatcher {
return
MakeMatcher
(
new
ArgsMatcherImpl
<
ArgsTuple
,
$
ks
>
(
inner_matcher_
));
return
MakeMatcher
(
new
ArgsMatcherImpl
<
ArgsTuple
,
$
ks
>
(
inner_matcher_
));
}
}
private
:
const
InnerMatcher
inner_matcher_
;
const
InnerMatcher
inner_matcher_
;
GTEST_DISALLOW_ASSIGN_
(
ArgsMatcher
);
};
};
// Implements ElementsAre() of 1-$n arguments.
// Implements ElementsAre() of 1-$n arguments.
...
@@ -224,6 +229,8 @@ $for j [[
...
@@ -224,6 +229,8 @@ $for j [[
const
T
$
j
&
e
$
j
[[]]
_
;
const
T
$
j
&
e
$
j
[[]]
_
;
]]
]]
GTEST_DISALLOW_ASSIGN_
(
ElementsAreMatcher
$
i
);
};
};
...
@@ -512,6 +519,8 @@ $var param_field_decls2 = [[$for j
...
@@ -512,6 +519,8 @@ $var param_field_decls2 = [[$for j
#
name
,
description
,
gmock_interp_
,
gmock_printed_params
);
\
#
name
,
description
,
gmock_interp_
,
gmock_printed_params
);
\
}
\$
param_field_decls
}
\$
param_field_decls
const
::
testing
::
internal
::
Interpolations
gmock_interp_
;
\
const
::
testing
::
internal
::
Interpolations
gmock_interp_
;
\
private
:
\
GTEST_DISALLOW_ASSIGN_
(
gmock_Impl
);
\
};
\
};
\
template
<
typename
arg_type
>
\
template
<
typename
arg_type
>
\
operator
::
testing
::
Matcher
<
arg_type
>
()
const
{
\
operator
::
testing
::
Matcher
<
arg_type
>
()
const
{
\
...
@@ -523,7 +532,9 @@ $var param_field_decls2 = [[$for j
...
@@ -523,7 +532,9 @@ $var param_field_decls2 = [[$for j
gmock_interp_
=
::
testing
::
internal
::
ValidateMatcherDescription
(
\
gmock_interp_
=
::
testing
::
internal
::
ValidateMatcherDescription
(
\
gmock_param_names
,
(
""
description
""
));
\
gmock_param_names
,
(
""
description
""
));
\
}
\$
param_field_decls2
}
\$
param_field_decls2
private
:
\
::
testing
::
internal
::
Interpolations
gmock_interp_
;
\
::
testing
::
internal
::
Interpolations
gmock_interp_
;
\
GTEST_DISALLOW_ASSIGN_
(
$
class_name
);
\
};
\$
template
};
\$
template
inline
$
class_name
$
param_types
name
(
$
param_types_and_names
)
{
\
inline
$
class_name
$
param_types
name
(
$
param_types_and_names
)
{
\
return
$
class_name
$
param_types
(
$
params
);
\
return
$
class_name
$
param_types
(
$
params
);
\
...
...
include/gmock/gmock-generated-nice-strict.h
View file @
32de5f53
...
@@ -155,6 +155,9 @@ class NiceMock : public MockClass {
...
@@ -155,6 +155,9 @@ class NiceMock : public MockClass {
::
testing
::
Mock
::
UnregisterCallReaction
(
::
testing
::
Mock
::
UnregisterCallReaction
(
internal
::
implicit_cast
<
MockClass
*>
(
this
));
internal
::
implicit_cast
<
MockClass
*>
(
this
));
}
}
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
NiceMock
);
};
};
template
<
class
MockClass
>
template
<
class
MockClass
>
...
@@ -246,6 +249,9 @@ class StrictMock : public MockClass {
...
@@ -246,6 +249,9 @@ class StrictMock : public MockClass {
::
testing
::
Mock
::
UnregisterCallReaction
(
::
testing
::
Mock
::
UnregisterCallReaction
(
internal
::
implicit_cast
<
MockClass
*>
(
this
));
internal
::
implicit_cast
<
MockClass
*>
(
this
));
}
}
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
StrictMock
);
};
};
// The following specializations catch some (relatively more common)
// The following specializations catch some (relatively more common)
...
...
include/gmock/gmock-generated-nice-strict.h.pump
View file @
32de5f53
...
@@ -100,6 +100,9 @@ $range j 1..i
...
@@ -100,6 +100,9 @@ $range j 1..i
::
testing
::
Mock
::
UnregisterCallReaction
(
::
testing
::
Mock
::
UnregisterCallReaction
(
internal
::
implicit_cast
<
MockClass
*>
(
this
));
internal
::
implicit_cast
<
MockClass
*>
(
this
));
}
}
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
NiceMock
);
};
};
template
<
class
MockClass
>
template
<
class
MockClass
>
...
@@ -132,6 +135,9 @@ $range j 1..i
...
@@ -132,6 +135,9 @@ $range j 1..i
::
testing
::
Mock
::
UnregisterCallReaction
(
::
testing
::
Mock
::
UnregisterCallReaction
(
internal
::
implicit_cast
<
MockClass
*>
(
this
));
internal
::
implicit_cast
<
MockClass
*>
(
this
));
}
}
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
StrictMock
);
};
};
// The following specializations catch some (relatively more common)
// The following specializations catch some (relatively more common)
...
...
include/gmock/gmock-matchers.h
View file @
32de5f53
This diff is collapsed.
Click to expand it.
include/gmock/gmock-more-actions.h
View file @
32de5f53
...
@@ -58,8 +58,11 @@ class InvokeAction {
...
@@ -58,8 +58,11 @@ class InvokeAction {
Result
Perform
(
const
ArgumentTuple
&
args
)
{
Result
Perform
(
const
ArgumentTuple
&
args
)
{
return
InvokeHelper
<
Result
,
ArgumentTuple
>::
Invoke
(
function_impl_
,
args
);
return
InvokeHelper
<
Result
,
ArgumentTuple
>::
Invoke
(
function_impl_
,
args
);
}
}
private
:
private
:
FunctionImpl
function_impl_
;
FunctionImpl
function_impl_
;
GTEST_DISALLOW_ASSIGN_
(
InvokeAction
);
};
};
// Implements the Invoke(object_ptr, &Class::Method) action.
// Implements the Invoke(object_ptr, &Class::Method) action.
...
@@ -74,9 +77,12 @@ class InvokeMethodAction {
...
@@ -74,9 +77,12 @@ class InvokeMethodAction {
return
InvokeHelper
<
Result
,
ArgumentTuple
>::
InvokeMethod
(
return
InvokeHelper
<
Result
,
ArgumentTuple
>::
InvokeMethod
(
obj_ptr_
,
method_ptr_
,
args
);
obj_ptr_
,
method_ptr_
,
args
);
}
}
private
:
private
:
Class
*
const
obj_ptr_
;
Class
*
const
obj_ptr_
;
const
MethodPtr
method_ptr_
;
const
MethodPtr
method_ptr_
;
GTEST_DISALLOW_ASSIGN_
(
InvokeMethodAction
);
};
};
}
// namespace internal
}
// namespace internal
...
@@ -122,6 +128,16 @@ WithArg(const InnerAction& action) {
...
@@ -122,6 +128,16 @@ WithArg(const InnerAction& action) {
return
internal
::
WithArgsAction
<
InnerAction
,
k
>
(
action
);
return
internal
::
WithArgsAction
<
InnerAction
,
k
>
(
action
);
}
}
// The ACTION*() macros trigger warning C4100 (unreferenced formal
// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
// the macro definition, as the warnings are generated when the macro
// is expanded and macro expansion cannot contain #pragma. Therefore
// we suppress them here.
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4100)
#endif
// Action ReturnArg<k>() returns the k-th argument of the mock function.
// Action ReturnArg<k>() returns the k-th argument of the mock function.
ACTION_TEMPLATE
(
ReturnArg
,
ACTION_TEMPLATE
(
ReturnArg
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
...
@@ -185,6 +201,10 @@ ACTION_TEMPLATE(DeleteArg,
...
@@ -185,6 +201,10 @@ ACTION_TEMPLATE(DeleteArg,
ACTION_P
(
Throw
,
exception
)
{
throw
exception
;
}
ACTION_P
(
Throw
,
exception
)
{
throw
exception
;
}
#endif // GTEST_HAS_EXCEPTIONS
#endif // GTEST_HAS_EXCEPTIONS
#ifdef _MSC_VER
#pragma warning(pop)
#endif
}
// namespace testing
}
// namespace testing
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_MORE_ACTIONS_H_
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_MORE_ACTIONS_H_
include/gmock/gmock-spec-builders.h
View file @
32de5f53
...
@@ -142,10 +142,10 @@ class DefaultActionSpec {
...
@@ -142,10 +142,10 @@ class DefaultActionSpec {
// Constructs a DefaultActionSpec object from the information inside
// Constructs a DefaultActionSpec object from the information inside
// the parenthesis of an ON_CALL() statement.
// the parenthesis of an ON_CALL() statement.
DefaultActionSpec
(
const
char
*
file
,
int
line
,
DefaultActionSpec
(
const
char
*
a_file
,
int
a_
line
,
const
ArgumentMatcherTuple
&
matchers
)
const
ArgumentMatcherTuple
&
matchers
)
:
file_
(
file
),
:
file_
(
a_
file
),
line_
(
line
),
line_
(
a_
line
),
matchers_
(
matchers
),
matchers_
(
matchers
),
// By default, extra_matcher_ should match anything. However,
// By default, extra_matcher_ should match anything. However,
// we cannot initialize it with _ as that triggers a compiler
// we cannot initialize it with _ as that triggers a compiler
...
@@ -196,6 +196,7 @@ class DefaultActionSpec {
...
@@ -196,6 +196,7 @@ class DefaultActionSpec {
"once in an ON_CALL()."
);
"once in an ON_CALL()."
);
return
action_
;
return
action_
;
}
}
private
:
private
:
// Gives each clause in the ON_CALL() statement a name.
// Gives each clause in the ON_CALL() statement a name.
enum
Clause
{
enum
Clause
{
...
@@ -582,6 +583,7 @@ class ExpectationBase {
...
@@ -582,6 +583,7 @@ class ExpectationBase {
// expectation has occurred.
// expectation has occurred.
// L >= g_gmock_mutex
// L >= g_gmock_mutex
virtual
void
DescribeCallCountTo
(
::
std
::
ostream
*
os
)
const
=
0
;
virtual
void
DescribeCallCountTo
(
::
std
::
ostream
*
os
)
const
=
0
;
protected
:
protected
:
friend
class
::
testing
::
Expectation
;
friend
class
::
testing
::
Expectation
;
...
@@ -620,8 +622,8 @@ class ExpectationBase {
...
@@ -620,8 +622,8 @@ class ExpectationBase {
bool
cardinality_specified
()
const
{
return
cardinality_specified_
;
}
bool
cardinality_specified
()
const
{
return
cardinality_specified_
;
}
// Sets the cardinality of this expectation spec.
// Sets the cardinality of this expectation spec.
void
set_cardinality
(
const
Cardinality
&
cardinality
)
{
void
set_cardinality
(
const
Cardinality
&
a_
cardinality
)
{
cardinality_
=
cardinality
;
cardinality_
=
a_
cardinality
;
}
}
// The following group of methods should only be called after the
// The following group of methods should only be called after the
...
@@ -716,6 +718,8 @@ class ExpectationBase {
...
@@ -716,6 +718,8 @@ class ExpectationBase {
// and can change as the mock function is called.
// and can change as the mock function is called.
int
call_count_
;
// How many times this expectation has been invoked.
int
call_count_
;
// How many times this expectation has been invoked.
bool
retired_
;
// True iff this expectation has retired.
bool
retired_
;
// True iff this expectation has retired.
GTEST_DISALLOW_ASSIGN_
(
ExpectationBase
);
};
// class ExpectationBase
};
// class ExpectationBase
// Impements an expectation for the given function type.
// Impements an expectation for the given function type.
...
@@ -727,9 +731,9 @@ class TypedExpectation : public ExpectationBase {
...
@@ -727,9 +731,9 @@ class TypedExpectation : public ExpectationBase {
typedef
typename
Function
<
F
>::
Result
Result
;
typedef
typename
Function
<
F
>::
Result
Result
;
TypedExpectation
(
FunctionMockerBase
<
F
>*
owner
,
TypedExpectation
(
FunctionMockerBase
<
F
>*
owner
,
const
char
*
file
,
int
line
,
const
string
&
source_text
,
const
char
*
a_file
,
int
a_line
,
const
string
&
a_
source_text
,
const
ArgumentMatcherTuple
&
m
)
const
ArgumentMatcherTuple
&
m
)
:
ExpectationBase
(
file
,
line
,
source_text
),
:
ExpectationBase
(
a_file
,
a_line
,
a_
source_text
),
owner_
(
owner
),
owner_
(
owner
),
matchers_
(
m
),
matchers_
(
m
),
extra_matcher_specified_
(
false
),
extra_matcher_specified_
(
false
),
...
@@ -769,7 +773,7 @@ class TypedExpectation : public ExpectationBase {
...
@@ -769,7 +773,7 @@ class TypedExpectation : public ExpectationBase {
}
}
// Implements the .Times() clause.
// Implements the .Times() clause.
TypedExpectation
&
Times
(
const
Cardinality
&
cardinality
)
{
TypedExpectation
&
Times
(
const
Cardinality
&
a_
cardinality
)
{
if
(
last_clause_
==
kTimes
)
{
if
(
last_clause_
==
kTimes
)
{
ExpectSpecProperty
(
false
,
ExpectSpecProperty
(
false
,
".Times() cannot appear "
".Times() cannot appear "
...
@@ -782,7 +786,7 @@ class TypedExpectation : public ExpectationBase {
...
@@ -782,7 +786,7 @@ class TypedExpectation : public ExpectationBase {
}
}
last_clause_
=
kTimes
;
last_clause_
=
kTimes
;
ExpectationBase
::
SpecifyCardinality
(
cardinality
);
ExpectationBase
::
SpecifyCardinality
(
a_
cardinality
);
return
*
this
;
return
*
this
;
}
}
...
@@ -1164,6 +1168,8 @@ class TypedExpectation : public ExpectationBase {
...
@@ -1164,6 +1168,8 @@ class TypedExpectation : public ExpectationBase {
Clause
last_clause_
;
Clause
last_clause_
;
mutable
bool
action_count_checked_
;
// Under mutex_.
mutable
bool
action_count_checked_
;
// Under mutex_.
mutable
Mutex
mutex_
;
// Protects action_count_checked_.
mutable
Mutex
mutex_
;
// Protects action_count_checked_.
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
TypedExpectation
);
};
// class TypedExpectation
};
// class TypedExpectation
// A MockSpec object is used by ON_CALL() or EXPECT_CALL() for
// A MockSpec object is used by ON_CALL() or EXPECT_CALL() for
...
@@ -1228,6 +1234,8 @@ class MockSpec {
...
@@ -1228,6 +1234,8 @@ class MockSpec {
internal
::
FunctionMockerBase
<
F
>*
const
function_mocker_
;
internal
::
FunctionMockerBase
<
F
>*
const
function_mocker_
;
// The argument matchers specified in the spec.
// The argument matchers specified in the spec.
ArgumentMatcherTuple
matchers_
;
ArgumentMatcherTuple
matchers_
;
GTEST_DISALLOW_ASSIGN_
(
MockSpec
);
};
// class MockSpec
};
// class MockSpec
// MSVC warns about using 'this' in base member initializer list, so
// MSVC warns about using 'this' in base member initializer list, so
...
@@ -1251,7 +1259,7 @@ class MockSpec {
...
@@ -1251,7 +1259,7 @@ class MockSpec {
template
<
typename
T
>
template
<
typename
T
>
class
ActionResultHolder
{
class
ActionResultHolder
{
public
:
public
:
explicit
ActionResultHolder
(
T
value
)
:
value_
(
value
)
{}
explicit
ActionResultHolder
(
T
a_value
)
:
value_
(
a_
value
)
{}
// The compiler-generated copy constructor and assignment operator
// The compiler-generated copy constructor and assignment operator
// are exactly what we need, so we don't need to define them.
// are exactly what we need, so we don't need to define them.
...
@@ -1285,6 +1293,9 @@ class ActionResultHolder {
...
@@ -1285,6 +1293,9 @@ class ActionResultHolder {
private
:
private
:
T
value_
;
T
value_
;
// T could be a reference type, so = isn't supported.
GTEST_DISALLOW_ASSIGN_
(
ActionResultHolder
);
};
};
// Specialization for T = void.
// Specialization for T = void.
...
@@ -1433,6 +1444,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
...
@@ -1433,6 +1444,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
}
}
return
name
;
return
name
;
}
}
protected
:
protected
:
template
<
typename
Function
>
template
<
typename
Function
>
friend
class
MockSpec
;
friend
class
MockSpec
;
...
@@ -1477,6 +1489,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
...
@@ -1477,6 +1489,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
// The current spec (either default action spec or expectation spec)
// The current spec (either default action spec or expectation spec)
// being described on this function mocker.
// being described on this function mocker.
MockSpec
<
F
>&
current_spec
()
{
return
current_spec_
;
}
MockSpec
<
F
>&
current_spec
()
{
return
current_spec_
;
}
private
:
private
:
template
<
typename
Func
>
friend
class
TypedExpectation
;
template
<
typename
Func
>
friend
class
TypedExpectation
;
...
...
include/gmock/internal/gmock-internal-utils.h
View file @
32de5f53
...
@@ -640,15 +640,15 @@ class NativeArray {
...
@@ -640,15 +640,15 @@ class NativeArray {
// Initializes this object; makes a copy of the input array if
// Initializes this object; makes a copy of the input array if
// 'relation' is kCopy.
// 'relation' is kCopy.
void
Init
(
const
Element
*
array
,
size_t
size
,
RelationToSource
relation
)
{
void
Init
(
const
Element
*
array
,
size_t
a_
size
,
RelationToSource
relation
)
{
if
(
relation
==
kReference
)
{
if
(
relation
==
kReference
)
{
array_
=
array
;
array_
=
array
;
}
else
{
}
else
{
Element
*
const
copy
=
new
Element
[
size
];
Element
*
const
copy
=
new
Element
[
a_
size
];
CopyArray
(
array
,
size
,
copy
);
CopyArray
(
array
,
a_
size
,
copy
);
array_
=
copy
;
array_
=
copy
;
}
}
size_
=
size
;
size_
=
a_
size
;
relation_to_source_
=
relation
;
relation_to_source_
=
relation
;
}
}
...
...
scons/SConscript
View file @
32de5f53
...
@@ -105,9 +105,19 @@ GtestTest = gtest_exports['GtestTest']
...
@@ -105,9 +105,19 @@ GtestTest = gtest_exports['GtestTest']
gtest_common_exports
=
SConscript
(
GTEST_DIR
+
'/scons/SConscript.common'
)
gtest_common_exports
=
SConscript
(
GTEST_DIR
+
'/scons/SConscript.common'
)
EnvCreator
=
gtest_common_exports
[
'EnvCreator'
]
EnvCreator
=
gtest_common_exports
[
'EnvCreator'
]
# TODO(vladl@google.com): restore warnings as errors once all warnings are fixed
env
=
env
.
Clone
()
# in gMock.
if
env
[
'PLATFORM'
]
==
'win32'
:
env
=
EnvCreator
.
Create
(
env
,
EnvCreator
.
WarningOk
)
env
.
Append
(
CCFLAGS
=
[
'-wd4127'
,
# Disables warning "conditional expression is constant",
# triggered by VC 8.0's own STL header <list>.
'-wd4702'
,
# Disables warning "unreachable code", triggered by VC
# 7.1's own STL header <xtree>.
'-wd4675'
,
# Disables warning "resolved overload was found by
# argument-dependent lookup" generated by VC 7.1.
# It just says that VC 7.1 fixed a bug in earlier
# versions of VC so the code behavior will be
# different than compiled with VC 6.0, for example.
])
# Note: The relative paths in SConscript files are relative to the location
# Note: The relative paths in SConscript files are relative to the location
# of the SConscript file itself. To make a path relative to the location of
# of the SConscript file itself. To make a path relative to the location of
...
...
src/gmock-internal-utils.cc
View file @
32de5f53
...
@@ -64,7 +64,7 @@ string ConvertIdentifierNameToWords(const char* id_name) {
...
@@ -64,7 +64,7 @@ string ConvertIdentifierNameToWords(const char* id_name) {
if
(
isalnum
(
*
p
))
{
if
(
isalnum
(
*
p
))
{
if
(
starts_new_word
&&
result
!=
""
)
if
(
starts_new_word
&&
result
!=
""
)
result
+=
' '
;
result
+=
' '
;
result
+=
tolower
(
*
p
);
result
+=
static_cast
<
char
>
(
tolower
(
*
p
)
);
}
}
}
}
return
result
;
return
result
;
...
...
src/gmock-spec-builders.cc
View file @
32de5f53
...
@@ -56,12 +56,12 @@ namespace internal {
...
@@ -56,12 +56,12 @@ namespace internal {
Mutex
g_gmock_mutex
(
Mutex
::
NO_CONSTRUCTOR_NEEDED_FOR_STATIC_MUTEX
);
Mutex
g_gmock_mutex
(
Mutex
::
NO_CONSTRUCTOR_NEEDED_FOR_STATIC_MUTEX
);
// Constructs an ExpectationBase object.
// Constructs an ExpectationBase object.
ExpectationBase
::
ExpectationBase
(
const
char
*
file
,
ExpectationBase
::
ExpectationBase
(
const
char
*
a_
file
,
int
line
,
int
a_
line
,
const
string
&
source_text
)
const
string
&
a_
source_text
)
:
file_
(
file
),
:
file_
(
a_
file
),
line_
(
line
),
line_
(
a_
line
),
source_text_
(
source_text
),
source_text_
(
a_
source_text
),
cardinality_specified_
(
false
),
cardinality_specified_
(
false
),
cardinality_
(
Exactly
(
1
)),
cardinality_
(
Exactly
(
1
)),
call_count_
(
0
),
call_count_
(
0
),
...
@@ -73,9 +73,9 @@ ExpectationBase::~ExpectationBase() {}
...
@@ -73,9 +73,9 @@ ExpectationBase::~ExpectationBase() {}
// Explicitly specifies the cardinality of this expectation. Used by
// Explicitly specifies the cardinality of this expectation. Used by
// the subclasses to implement the .Times() clause.
// the subclasses to implement the .Times() clause.
void
ExpectationBase
::
SpecifyCardinality
(
const
Cardinality
&
cardinality
)
{
void
ExpectationBase
::
SpecifyCardinality
(
const
Cardinality
&
a_
cardinality
)
{
cardinality_specified_
=
true
;
cardinality_specified_
=
true
;
cardinality_
=
cardinality
;
cardinality_
=
a_
cardinality
;
}
}
// Retires all pre-requisites of this expectation.
// Retires all pre-requisites of this expectation.
...
@@ -427,8 +427,8 @@ void Mock::ClearDefaultActionsLocked(void* mock_obj) {
...
@@ -427,8 +427,8 @@ void Mock::ClearDefaultActionsLocked(void* mock_obj) {
Expectation
::
Expectation
()
{}
Expectation
::
Expectation
()
{}
Expectation
::
Expectation
(
Expectation
::
Expectation
(
const
internal
::
linked_ptr
<
internal
::
ExpectationBase
>&
expectation_base
)
const
internal
::
linked_ptr
<
internal
::
ExpectationBase
>&
an_
expectation_base
)
:
expectation_base_
(
expectation_base
)
{}
:
expectation_base_
(
an_
expectation_base
)
{}
Expectation
::~
Expectation
()
{}
Expectation
::~
Expectation
()
{}
...
...
test/gmock-actions_test.cc
View file @
32de5f53
...
@@ -95,26 +95,26 @@ TEST(BuiltInDefaultValueTest, ExistsForPointerTypes) {
...
@@ -95,26 +95,26 @@ TEST(BuiltInDefaultValueTest, ExistsForPointerTypes) {
// Tests that BuiltInDefaultValue<T>::Get() returns 0 when T is a
// Tests that BuiltInDefaultValue<T>::Get() returns 0 when T is a
// built-in numeric type.
// built-in numeric type.
TEST
(
BuiltInDefaultValueTest
,
IsZeroForNumericTypes
)
{
TEST
(
BuiltInDefaultValueTest
,
IsZeroForNumericTypes
)
{
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
unsigned
char
>::
Get
());
EXPECT_EQ
(
0
U
,
BuiltInDefaultValue
<
unsigned
char
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
char
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
char
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
char
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
char
>::
Get
());
#if GMOCK_HAS_SIGNED_WCHAR_T_
#if GMOCK_HAS_SIGNED_WCHAR_T_
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
unsigned
wchar_t
>::
Get
());
EXPECT_EQ
(
0
U
,
BuiltInDefaultValue
<
unsigned
wchar_t
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
wchar_t
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
wchar_t
>::
Get
());
#endif
#endif
#if GMOCK_WCHAR_T_IS_NATIVE_
#if GMOCK_WCHAR_T_IS_NATIVE_
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
wchar_t
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
wchar_t
>::
Get
());
#endif
#endif
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
unsigned
short
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
U
,
BuiltInDefaultValue
<
unsigned
short
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
short
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
short
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
short
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
short
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
unsigned
int
>::
Get
());
EXPECT_EQ
(
0
U
,
BuiltInDefaultValue
<
unsigned
int
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
int
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
int
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
int
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
int
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
unsigned
long
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
U
,
BuiltInDefaultValue
<
unsigned
long
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
long
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
signed
long
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
long
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
long
>::
Get
());
// NOLINT
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
UInt64
>::
Get
());
EXPECT_EQ
(
0
U
,
BuiltInDefaultValue
<
UInt64
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
Int64
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
Int64
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
float
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
float
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
double
>::
Get
());
EXPECT_EQ
(
0
,
BuiltInDefaultValue
<
double
>::
Get
());
...
@@ -517,11 +517,13 @@ TEST(ReturnTest, IsCovariant) {
...
@@ -517,11 +517,13 @@ TEST(ReturnTest, IsCovariant) {
// gmock-actions.h for more information.
// gmock-actions.h for more information.
class
FromType
{
class
FromType
{
public
:
public
:
FromType
(
bool
*
converted
)
:
converted_
(
converted
)
{}
FromType
(
bool
*
is_converted
)
:
converted_
(
is_
converted
)
{}
bool
*
converted
()
const
{
return
converted_
;
}
bool
*
converted
()
const
{
return
converted_
;
}
private
:
private
:
bool
*
const
converted_
;
bool
*
const
converted_
;
GTEST_DISALLOW_ASSIGN_
(
FromType
);
};
};
class
ToType
{
class
ToType
{
...
@@ -588,8 +590,13 @@ class MyClass {};
...
@@ -588,8 +590,13 @@ class MyClass {};
class
MockClass
{
class
MockClass
{
public
:
public
:
MockClass
()
{}
MOCK_METHOD1
(
IntFunc
,
int
(
bool
flag
));
// NOLINT
MOCK_METHOD1
(
IntFunc
,
int
(
bool
flag
));
// NOLINT
MOCK_METHOD0
(
Foo
,
MyClass
());
MOCK_METHOD0
(
Foo
,
MyClass
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockClass
);
};
};
// Tests that DoDefault() returns the built-in default value for the
// Tests that DoDefault() returns the built-in default value for the
...
@@ -615,7 +622,7 @@ TEST(DoDefaultDeathTest, DiesForUnknowType) {
...
@@ -615,7 +622,7 @@ TEST(DoDefaultDeathTest, DiesForUnknowType) {
// Tests that using DoDefault() inside a composite action leads to a
// Tests that using DoDefault() inside a composite action leads to a
// run-time error.
// run-time error.
void
VoidFunc
(
bool
flag
)
{}
void
VoidFunc
(
bool
/* flag */
)
{}
TEST
(
DoDefaultDeathTest
,
DiesIfUsedInCompositeAction
)
{
TEST
(
DoDefaultDeathTest
,
DiesIfUsedInCompositeAction
)
{
MockClass
mock
;
MockClass
mock
;
...
@@ -801,7 +808,7 @@ bool Unary(int x) { return x < 0; }
...
@@ -801,7 +808,7 @@ bool Unary(int x) { return x < 0; }
const
char
*
Plus1
(
const
char
*
s
)
{
return
s
+
1
;
}
const
char
*
Plus1
(
const
char
*
s
)
{
return
s
+
1
;
}
void
VoidUnary
(
int
n
)
{
g_done
=
true
;
}
void
VoidUnary
(
int
/* n */
)
{
g_done
=
true
;
}
bool
ByConstRef
(
const
std
::
string
&
s
)
{
return
s
==
"Hi"
;
}
bool
ByConstRef
(
const
std
::
string
&
s
)
{
return
s
==
"Hi"
;
}
...
@@ -870,7 +877,7 @@ TEST(InvokeWithoutArgsTest, Function) {
...
@@ -870,7 +877,7 @@ TEST(InvokeWithoutArgsTest, Function) {
EXPECT_EQ
(
1
,
a
.
Perform
(
make_tuple
(
2
)));
EXPECT_EQ
(
1
,
a
.
Perform
(
make_tuple
(
2
)));
// As an action that takes two arguments.
// As an action that takes two arguments.
Action
<
shor
t
(
int
,
double
)
>
a2
=
InvokeWithoutArgs
(
Nullary
);
// NOLINT
Action
<
in
t
(
int
,
double
)
>
a2
=
InvokeWithoutArgs
(
Nullary
);
// NOLINT
EXPECT_EQ
(
1
,
a2
.
Perform
(
make_tuple
(
2
,
3.5
)));
EXPECT_EQ
(
1
,
a2
.
Perform
(
make_tuple
(
2
,
3.5
)));
// As an action that returns void.
// As an action that returns void.
...
@@ -887,7 +894,7 @@ TEST(InvokeWithoutArgsTest, Functor) {
...
@@ -887,7 +894,7 @@ TEST(InvokeWithoutArgsTest, Functor) {
EXPECT_EQ
(
2
,
a
.
Perform
(
make_tuple
()));
EXPECT_EQ
(
2
,
a
.
Perform
(
make_tuple
()));
// As an action that takes three arguments.
// As an action that takes three arguments.
Action
<
shor
t
(
int
,
double
,
char
)
>
a2
=
// NOLINT
Action
<
in
t
(
int
,
double
,
char
)
>
a2
=
// NOLINT
InvokeWithoutArgs
(
NullaryFunctor
());
InvokeWithoutArgs
(
NullaryFunctor
());
EXPECT_EQ
(
2
,
a2
.
Perform
(
make_tuple
(
3
,
3.5
,
'a'
)));
EXPECT_EQ
(
2
,
a2
.
Perform
(
make_tuple
(
3
,
3.5
,
'a'
)));
...
@@ -928,7 +935,7 @@ TEST(IgnoreResultTest, MonomorphicAction) {
...
@@ -928,7 +935,7 @@ TEST(IgnoreResultTest, MonomorphicAction) {
// Tests using IgnoreResult() on an action that returns a class type.
// Tests using IgnoreResult() on an action that returns a class type.
MyClass
ReturnMyClass
(
double
x
)
{
MyClass
ReturnMyClass
(
double
/* x */
)
{
g_done
=
true
;
g_done
=
true
;
return
MyClass
();
return
MyClass
();
}
}
...
...
test/gmock-cardinalities_test.cc
View file @
32de5f53
...
@@ -52,7 +52,11 @@ using testing::MakeCardinality;
...
@@ -52,7 +52,11 @@ using testing::MakeCardinality;
class
MockFoo
{
class
MockFoo
{
public
:
public
:
MockFoo
()
{}
MOCK_METHOD0
(
Bar
,
int
());
// NOLINT
MOCK_METHOD0
(
Bar
,
int
());
// NOLINT
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFoo
);
};
};
// Tests that Cardinality objects can be default constructed.
// Tests that Cardinality objects can be default constructed.
...
@@ -398,7 +402,9 @@ class EvenCardinality : public CardinalityInterface {
...
@@ -398,7 +402,9 @@ class EvenCardinality : public CardinalityInterface {
}
}
// Returns true iff call_count calls will saturate this cardinality.
// Returns true iff call_count calls will saturate this cardinality.
virtual
bool
IsSaturatedByCallCount
(
int
call_count
)
const
{
return
false
;
}
virtual
bool
IsSaturatedByCallCount
(
int
/* call_count */
)
const
{
return
false
;
}
// Describes self to an ostream.
// Describes self to an ostream.
virtual
void
DescribeTo
(
::
std
::
ostream
*
ss
)
const
{
virtual
void
DescribeTo
(
::
std
::
ostream
*
ss
)
const
{
...
...
test/gmock-generated-actions_test.cc
View file @
32de5f53
...
@@ -63,6 +63,10 @@ using testing::StaticAssertTypeEq;
...
@@ -63,6 +63,10 @@ using testing::StaticAssertTypeEq;
using
testing
::
Unused
;
using
testing
::
Unused
;
using
testing
::
WithArgs
;
using
testing
::
WithArgs
;
// For suppressing compiler warnings on conversion possibly losing precision.
inline
short
Short
(
short
n
)
{
return
n
;
}
// NOLINT
inline
char
Char
(
char
ch
)
{
return
ch
;
}
// Sample functions and functors for testing various actions.
// Sample functions and functors for testing various actions.
int
Nullary
()
{
return
1
;
}
int
Nullary
()
{
return
1
;
}
...
@@ -242,7 +246,7 @@ TEST(InvokeArgumentTest, Function10) {
...
@@ -242,7 +246,7 @@ TEST(InvokeArgumentTest, Function10) {
// Tests using InvokeArgument with a function that takes a pointer argument.
// Tests using InvokeArgument with a function that takes a pointer argument.
TEST
(
InvokeArgumentTest
,
ByPointerFunction
)
{
TEST
(
InvokeArgumentTest
,
ByPointerFunction
)
{
Action
<
const
char
*
(
const
char
*
(
*
)(
const
char
*
input
,
short
n
))
>
a
=
// NOLINT
Action
<
const
char
*
(
const
char
*
(
*
)(
const
char
*
input
,
short
n
))
>
a
=
// NOLINT
InvokeArgument
<
0
>
(
static_cast
<
const
char
*>
(
"Hi"
),
1
);
InvokeArgument
<
0
>
(
static_cast
<
const
char
*>
(
"Hi"
),
Short
(
1
)
);
EXPECT_STREQ
(
"i"
,
a
.
Perform
(
make_tuple
(
&
Binary
)));
EXPECT_STREQ
(
"i"
,
a
.
Perform
(
make_tuple
(
&
Binary
)));
}
}
...
@@ -250,7 +254,7 @@ TEST(InvokeArgumentTest, ByPointerFunction) {
...
@@ -250,7 +254,7 @@ TEST(InvokeArgumentTest, ByPointerFunction) {
// by passing it a C-string literal.
// by passing it a C-string literal.
TEST
(
InvokeArgumentTest
,
FunctionWithCStringLiteral
)
{
TEST
(
InvokeArgumentTest
,
FunctionWithCStringLiteral
)
{
Action
<
const
char
*
(
const
char
*
(
*
)(
const
char
*
input
,
short
n
))
>
a
=
// NOLINT
Action
<
const
char
*
(
const
char
*
(
*
)(
const
char
*
input
,
short
n
))
>
a
=
// NOLINT
InvokeArgument
<
0
>
(
"Hi"
,
1
);
InvokeArgument
<
0
>
(
"Hi"
,
Short
(
1
)
);
EXPECT_STREQ
(
"i"
,
a
.
Perform
(
make_tuple
(
&
Binary
)));
EXPECT_STREQ
(
"i"
,
a
.
Perform
(
make_tuple
(
&
Binary
)));
}
}
...
@@ -286,17 +290,17 @@ TEST(WithArgsTest, OneArg) {
...
@@ -286,17 +290,17 @@ TEST(WithArgsTest, OneArg) {
// Tests using WithArgs with an action that takes 2 arguments.
// Tests using WithArgs with an action that takes 2 arguments.
TEST
(
WithArgsTest
,
TwoArgs
)
{
TEST
(
WithArgsTest
,
TwoArgs
)
{
Action
<
const
char
*
(
const
char
*
s
,
double
x
,
in
t
n
)
>
a
=
Action
<
const
char
*
(
const
char
*
s
,
double
x
,
shor
t
n
)
>
a
=
WithArgs
<
0
,
2
>
(
Invoke
(
Binary
));
WithArgs
<
0
,
2
>
(
Invoke
(
Binary
));
const
char
s
[]
=
"Hello"
;
const
char
s
[]
=
"Hello"
;
EXPECT_EQ
(
s
+
2
,
a
.
Perform
(
make_tuple
(
CharPtr
(
s
),
0.5
,
2
)));
EXPECT_EQ
(
s
+
2
,
a
.
Perform
(
make_tuple
(
CharPtr
(
s
),
0.5
,
Short
(
2
)
)));
}
}
// Tests using WithArgs with an action that takes 3 arguments.
// Tests using WithArgs with an action that takes 3 arguments.
TEST
(
WithArgsTest
,
ThreeArgs
)
{
TEST
(
WithArgsTest
,
ThreeArgs
)
{
Action
<
int
(
int
,
double
,
char
,
short
)
>
a
=
// NOLINT
Action
<
int
(
int
,
double
,
char
,
short
)
>
a
=
// NOLINT
WithArgs
<
0
,
2
,
3
>
(
Invoke
(
Ternary
));
WithArgs
<
0
,
2
,
3
>
(
Invoke
(
Ternary
));
EXPECT_EQ
(
123
,
a
.
Perform
(
make_tuple
(
100
,
6.5
,
20
,
3
)));
EXPECT_EQ
(
123
,
a
.
Perform
(
make_tuple
(
100
,
6.5
,
Char
(
20
),
Short
(
3
)
)));
}
}
// Tests using WithArgs with an action that takes 4 arguments.
// Tests using WithArgs with an action that takes 4 arguments.
...
@@ -379,7 +383,7 @@ TEST(WithArgsTest, NonInvokeAction) {
...
@@ -379,7 +383,7 @@ TEST(WithArgsTest, NonInvokeAction) {
TEST
(
WithArgsTest
,
Identity
)
{
TEST
(
WithArgsTest
,
Identity
)
{
Action
<
int
(
int
x
,
char
y
,
short
z
)
>
a
=
// NOLINT
Action
<
int
(
int
x
,
char
y
,
short
z
)
>
a
=
// NOLINT
WithArgs
<
0
,
1
,
2
>
(
Invoke
(
Ternary
));
WithArgs
<
0
,
1
,
2
>
(
Invoke
(
Ternary
));
EXPECT_EQ
(
123
,
a
.
Perform
(
make_tuple
(
100
,
20
,
3
)));
EXPECT_EQ
(
123
,
a
.
Perform
(
make_tuple
(
100
,
Char
(
20
),
Short
(
3
)
)));
}
}
// Tests using WithArgs with repeated arguments.
// Tests using WithArgs with repeated arguments.
...
@@ -394,14 +398,14 @@ TEST(WithArgsTest, ReversedArgumentOrder) {
...
@@ -394,14 +398,14 @@ TEST(WithArgsTest, ReversedArgumentOrder) {
Action
<
const
char
*
(
short
n
,
const
char
*
input
)
>
a
=
// NOLINT
Action
<
const
char
*
(
short
n
,
const
char
*
input
)
>
a
=
// NOLINT
WithArgs
<
1
,
0
>
(
Invoke
(
Binary
));
WithArgs
<
1
,
0
>
(
Invoke
(
Binary
));
const
char
s
[]
=
"Hello"
;
const
char
s
[]
=
"Hello"
;
EXPECT_EQ
(
s
+
2
,
a
.
Perform
(
make_tuple
(
2
,
CharPtr
(
s
))));
EXPECT_EQ
(
s
+
2
,
a
.
Perform
(
make_tuple
(
Short
(
2
)
,
CharPtr
(
s
))));
}
}
// Tests using WithArgs with compatible, but not identical, argument types.
// Tests using WithArgs with compatible, but not identical, argument types.
TEST
(
WithArgsTest
,
ArgsOfCompatibleTypes
)
{
TEST
(
WithArgsTest
,
ArgsOfCompatibleTypes
)
{
Action
<
long
(
short
x
,
int
y
,
double
z
,
char
c
)
>
a
=
// NOLINT
Action
<
long
(
short
x
,
char
y
,
double
z
,
char
c
)
>
a
=
// NOLINT
WithArgs
<
0
,
1
,
3
>
(
Invoke
(
Ternary
));
WithArgs
<
0
,
1
,
3
>
(
Invoke
(
Ternary
));
EXPECT_EQ
(
123
,
a
.
Perform
(
make_tuple
(
100
,
20
,
5.6
,
3
)));
EXPECT_EQ
(
123
,
a
.
Perform
(
make_tuple
(
Short
(
100
),
Char
(
20
),
5.6
,
Char
(
3
)
)));
}
}
// Tests using WithArgs with an action that returns void.
// Tests using WithArgs with an action that returns void.
...
@@ -583,6 +587,16 @@ TEST(DoAllTest, TenActions) {
...
@@ -583,6 +587,16 @@ TEST(DoAllTest, TenActions) {
EXPECT_EQ
(
'g'
,
g
);
EXPECT_EQ
(
'g'
,
g
);
}
}
// The ACTION*() macros trigger warning C4100 (unreferenced formal
// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
// the macro definition, as the warnings are generated when the macro
// is expanded and macro expansion cannot contain #pragma. Therefore
// we suppress them here.
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4100)
#endif
// Tests the ACTION*() macro family.
// Tests the ACTION*() macro family.
// Tests that ACTION() can define an action that doesn't reference the
// Tests that ACTION() can define an action that doesn't reference the
...
@@ -633,7 +647,7 @@ ACTION(Sum2) {
...
@@ -633,7 +647,7 @@ ACTION(Sum2) {
TEST
(
ActionMacroTest
,
CanReferenceArgumentTuple
)
{
TEST
(
ActionMacroTest
,
CanReferenceArgumentTuple
)
{
Action
<
int
(
int
,
char
,
int
*
)
>
a1
=
Sum2
();
Action
<
int
(
int
,
char
,
int
*
)
>
a1
=
Sum2
();
int
dummy
=
0
;
int
dummy
=
0
;
EXPECT_EQ
(
11
,
a1
.
Perform
(
make_tuple
(
5
,
static_cast
<
char
>
(
6
),
&
dummy
)));
EXPECT_EQ
(
11
,
a1
.
Perform
(
make_tuple
(
5
,
Char
(
6
),
&
dummy
)));
}
}
// Tests that the body of ACTION() can reference the mock function
// Tests that the body of ACTION() can reference the mock function
...
@@ -731,7 +745,7 @@ ACTION_P(TypedPlus, n) {
...
@@ -731,7 +745,7 @@ ACTION_P(TypedPlus, n) {
TEST
(
ActionPMacroTest
,
CanReferenceArgumentAndParameterTypes
)
{
TEST
(
ActionPMacroTest
,
CanReferenceArgumentAndParameterTypes
)
{
Action
<
int
(
char
m
,
bool
t
)
>
a1
=
TypedPlus
(
9
);
Action
<
int
(
char
m
,
bool
t
)
>
a1
=
TypedPlus
(
9
);
EXPECT_EQ
(
10
,
a1
.
Perform
(
make_tuple
(
static_cast
<
char
>
(
1
),
true
)));
EXPECT_EQ
(
10
,
a1
.
Perform
(
make_tuple
(
Char
(
1
),
true
)));
}
}
// Tests that a parameterized action can be used in any mock function
// Tests that a parameterized action can be used in any mock function
...
@@ -851,7 +865,7 @@ TEST(ActionPnMacroTest, WorksFor10Parameters) {
...
@@ -851,7 +865,7 @@ TEST(ActionPnMacroTest, WorksFor10Parameters) {
ACTION_P2
(
PadArgument
,
prefix
,
suffix
)
{
ACTION_P2
(
PadArgument
,
prefix
,
suffix
)
{
// The following lines promote the two parameters to desired types.
// The following lines promote the two parameters to desired types.
std
::
string
prefix_str
(
prefix
);
std
::
string
prefix_str
(
prefix
);
char
suffix_char
(
suffix
);
char
suffix_char
=
static_cast
<
char
>
(
suffix
);
return
prefix_str
+
arg0
+
suffix_char
;
return
prefix_str
+
arg0
+
suffix_char
;
}
}
...
@@ -1078,7 +1092,7 @@ class BoolResetter {
...
@@ -1078,7 +1092,7 @@ class BoolResetter {
explicit
BoolResetter
(
bool
*
value
)
:
value_
(
value
)
{}
explicit
BoolResetter
(
bool
*
value
)
:
value_
(
value
)
{}
~
BoolResetter
()
{
*
value_
=
false
;
}
~
BoolResetter
()
{
*
value_
=
false
;
}
private
:
private
:
bool
*
const
value_
;
bool
*
value_
;
};
};
TEST
(
ActionTemplateTest
,
WorksForIntegralTemplateParams
)
{
TEST
(
ActionTemplateTest
,
WorksForIntegralTemplateParams
)
{
...
@@ -1190,5 +1204,9 @@ TEST(ActionTemplateTest, CanBeOverloadedOnNumberOfValueParameters) {
...
@@ -1190,5 +1204,9 @@ TEST(ActionTemplateTest, CanBeOverloadedOnNumberOfValueParameters) {
EXPECT_EQ
(
12345
,
a4
.
Perform
(
make_tuple
()));
EXPECT_EQ
(
12345
,
a4
.
Perform
(
make_tuple
()));
}
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif
}
// namespace gmock_generated_actions_test
}
// namespace gmock_generated_actions_test
}
// namespace testing
}
// namespace testing
test/gmock-generated-function-mockers_test.cc
View file @
32de5f53
...
@@ -114,6 +114,8 @@ class FooInterface {
...
@@ -114,6 +114,8 @@ class FooInterface {
class
MockFoo
:
public
FooInterface
{
class
MockFoo
:
public
FooInterface
{
public
:
public
:
MockFoo
()
{}
// Makes sure that a mock function parameter can be named.
// Makes sure that a mock function parameter can be named.
MOCK_METHOD1
(
VoidReturning
,
void
(
int
n
));
// NOLINT
MOCK_METHOD1
(
VoidReturning
,
void
(
int
n
));
// NOLINT
...
@@ -149,6 +151,9 @@ class MockFoo : public FooInterface {
...
@@ -149,6 +151,9 @@ class MockFoo : public FooInterface {
const
string
&
k
));
const
string
&
k
));
MOCK_CONST_METHOD1_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
CTConst
,
char
(
int
));
MOCK_CONST_METHOD1_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
CTConst
,
char
(
int
));
#endif // GTEST_OS_WINDOWS
#endif // GTEST_OS_WINDOWS
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFoo
);
};
};
class
FunctionMockerTest
:
public
testing
::
Test
{
class
FunctionMockerTest
:
public
testing
::
Test
{
...
@@ -305,7 +310,12 @@ TEST_F(FunctionMockerTest, MocksFunctionsConstFunctionWithCallType) {
...
@@ -305,7 +310,12 @@ TEST_F(FunctionMockerTest, MocksFunctionsConstFunctionWithCallType) {
class
MockB
{
class
MockB
{
public
:
public
:
MockB
()
{}
MOCK_METHOD0
(
DoB
,
void
());
MOCK_METHOD0
(
DoB
,
void
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockB
);
};
};
// Tests that functions with no EXPECT_CALL() ruls can be called any
// Tests that functions with no EXPECT_CALL() ruls can be called any
...
@@ -345,10 +355,15 @@ class StackInterface {
...
@@ -345,10 +355,15 @@ class StackInterface {
template
<
typename
T
>
template
<
typename
T
>
class
MockStack
:
public
StackInterface
<
T
>
{
class
MockStack
:
public
StackInterface
<
T
>
{
public
:
public
:
MockStack
()
{}
MOCK_METHOD1_T
(
Push
,
void
(
const
T
&
elem
));
MOCK_METHOD1_T
(
Push
,
void
(
const
T
&
elem
));
MOCK_METHOD0_T
(
Pop
,
void
());
MOCK_METHOD0_T
(
Pop
,
void
());
MOCK_CONST_METHOD0_T
(
GetSize
,
int
());
// NOLINT
MOCK_CONST_METHOD0_T
(
GetSize
,
int
());
// NOLINT
MOCK_CONST_METHOD0_T
(
GetTop
,
const
T
&
());
MOCK_CONST_METHOD0_T
(
GetTop
,
const
T
&
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockStack
);
};
};
// Tests that template mock works.
// Tests that template mock works.
...
@@ -393,10 +408,15 @@ class StackInterfaceWithCallType {
...
@@ -393,10 +408,15 @@ class StackInterfaceWithCallType {
template
<
typename
T
>
template
<
typename
T
>
class
MockStackWithCallType
:
public
StackInterfaceWithCallType
<
T
>
{
class
MockStackWithCallType
:
public
StackInterfaceWithCallType
<
T
>
{
public
:
public
:
MockStackWithCallType
()
{}
MOCK_METHOD1_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
Push
,
void
(
const
T
&
elem
));
MOCK_METHOD1_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
Push
,
void
(
const
T
&
elem
));
MOCK_METHOD0_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
Pop
,
void
());
MOCK_METHOD0_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
Pop
,
void
());
MOCK_CONST_METHOD0_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
GetSize
,
int
());
MOCK_CONST_METHOD0_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
GetSize
,
int
());
MOCK_CONST_METHOD0_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
GetTop
,
const
T
&
());
MOCK_CONST_METHOD0_T_WITH_CALLTYPE
(
STDMETHODCALLTYPE
,
GetTop
,
const
T
&
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockStackWithCallType
);
};
};
// Tests that template mock with calltype works.
// Tests that template mock with calltype works.
...
@@ -430,7 +450,12 @@ TEST(TemplateMockTestWithCallType, Works) {
...
@@ -430,7 +450,12 @@ TEST(TemplateMockTestWithCallType, Works) {
class
MockOverloadedOnArgNumber
{
class
MockOverloadedOnArgNumber
{
public
:
public
:
MockOverloadedOnArgNumber
()
{}
MY_MOCK_METHODS1_
;
MY_MOCK_METHODS1_
;
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockOverloadedOnArgNumber
);
};
};
TEST
(
OverloadedMockMethodTest
,
CanOverloadOnArgNumberInMacroBody
)
{
TEST
(
OverloadedMockMethodTest
,
CanOverloadOnArgNumberInMacroBody
)
{
...
@@ -450,7 +475,12 @@ TEST(OverloadedMockMethodTest, CanOverloadOnArgNumberInMacroBody) {
...
@@ -450,7 +475,12 @@ TEST(OverloadedMockMethodTest, CanOverloadOnArgNumberInMacroBody) {
class
MockOverloadedOnConstness
{
class
MockOverloadedOnConstness
{
public
:
public
:
MockOverloadedOnConstness
()
{}
MY_MOCK_METHODS2_
;
MY_MOCK_METHODS2_
;
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockOverloadedOnConstness
);
};
};
TEST
(
OverloadedMockMethodTest
,
CanOverloadOnConstnessInMacroBody
)
{
TEST
(
OverloadedMockMethodTest
,
CanOverloadOnConstnessInMacroBody
)
{
...
...
test/gmock-generated-matchers_test.cc
View file @
32de5f53
...
@@ -223,8 +223,9 @@ class GreaterThanMatcher : public MatcherInterface<int> {
...
@@ -223,8 +223,9 @@ class GreaterThanMatcher : public MatcherInterface<int> {
*
os
<<
"is "
<<
-
diff
<<
" less than "
<<
rhs_
;
*
os
<<
"is "
<<
-
diff
<<
" less than "
<<
rhs_
;
}
}
}
}
private
:
private
:
const
int
rhs_
;
int
rhs_
;
};
};
Matcher
<
int
>
GreaterThan
(
int
n
)
{
Matcher
<
int
>
GreaterThan
(
int
n
)
{
...
@@ -411,7 +412,7 @@ TEST(ElementsAreTest, WorksForNestedContainer) {
...
@@ -411,7 +412,7 @@ TEST(ElementsAreTest, WorksForNestedContainer) {
};
};
vector
<
list
<
char
>
>
nested
;
vector
<
list
<
char
>
>
nested
;
for
(
in
t
i
=
0
;
i
<
GMOCK_ARRAY_SIZE_
(
strings
);
i
++
)
{
for
(
size_
t
i
=
0
;
i
<
GMOCK_ARRAY_SIZE_
(
strings
);
i
++
)
{
nested
.
push_back
(
list
<
char
>
(
strings
[
i
],
strings
[
i
]
+
strlen
(
strings
[
i
])));
nested
.
push_back
(
list
<
char
>
(
strings
[
i
],
strings
[
i
]
+
strlen
(
strings
[
i
])));
}
}
...
@@ -446,7 +447,12 @@ TEST(ElementsAreTest, WorksWithNativeArrayPassedByReference) {
...
@@ -446,7 +447,12 @@ TEST(ElementsAreTest, WorksWithNativeArrayPassedByReference) {
class
NativeArrayPassedAsPointerAndSize
{
class
NativeArrayPassedAsPointerAndSize
{
public
:
public
:
NativeArrayPassedAsPointerAndSize
()
{}
MOCK_METHOD2
(
Helper
,
void
(
int
*
array
,
int
size
));
MOCK_METHOD2
(
Helper
,
void
(
int
*
array
,
int
size
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
NativeArrayPassedAsPointerAndSize
);
};
};
TEST
(
ElementsAreTest
,
WorksWithNativeArrayPassedAsPointerAndSize
)
{
TEST
(
ElementsAreTest
,
WorksWithNativeArrayPassedAsPointerAndSize
)
{
...
@@ -550,7 +556,10 @@ TEST(MatcherMacroTest, Works) {
...
@@ -550,7 +556,10 @@ TEST(MatcherMacroTest, Works) {
// Tests that the description string supplied to MATCHER() must be
// Tests that the description string supplied to MATCHER() must be
// valid.
// valid.
MATCHER
(
HasBadDescription
,
"Invalid%"
)
{
return
true
;
}
MATCHER
(
HasBadDescription
,
"Invalid%"
)
{
// Uses arg to suppress "unused parameter" warning.
return
arg
==
arg
;
}
TEST
(
MatcherMacroTest
,
TEST
(
MatcherMacroTest
,
CreatingMatcherWithBadDescriptionGeneratesNonfatalFailure
)
{
CreatingMatcherWithBadDescriptionGeneratesNonfatalFailure
)
{
...
@@ -560,7 +569,7 @@ TEST(MatcherMacroTest,
...
@@ -560,7 +569,7 @@ TEST(MatcherMacroTest,
"use
\"
%%
\"
instead of
\"
%
\"
to print
\"
%
\"
."
);
"use
\"
%%
\"
instead of
\"
%
\"
to print
\"
%
\"
."
);
}
}
MATCHER
(
HasGoodDescription
,
"good"
)
{
return
true
;
}
MATCHER
(
HasGoodDescription
,
"good"
)
{
return
arg
==
arg
;
}
TEST
(
MatcherMacroTest
,
AcceptsValidDescription
)
{
TEST
(
MatcherMacroTest
,
AcceptsValidDescription
)
{
const
Matcher
<
int
>
m
=
HasGoodDescription
();
const
Matcher
<
int
>
m
=
HasGoodDescription
();
...
@@ -642,7 +651,7 @@ TEST(MatcherPMacroTest,
...
@@ -642,7 +651,7 @@ TEST(MatcherPMacroTest,
}
}
MATCHER_P
(
HasGoodDescription1
,
n
,
"good %(n)s"
)
{
return
true
;
}
MATCHER_P
(
HasGoodDescription1
,
n
,
"good %(n)s"
)
{
return
arg
==
arg
;
}
TEST
(
MatcherPMacroTest
,
AcceptsValidDescription
)
{
TEST
(
MatcherPMacroTest
,
AcceptsValidDescription
)
{
const
Matcher
<
int
>
m
=
HasGoodDescription1
(
5
);
const
Matcher
<
int
>
m
=
HasGoodDescription1
(
5
);
...
@@ -709,7 +718,7 @@ TEST(MatcherPnMacroTest,
...
@@ -709,7 +718,7 @@ TEST(MatcherPnMacroTest,
MATCHER_P2
(
HasComplexDescription
,
foo
,
bar
,
MATCHER_P2
(
HasComplexDescription
,
foo
,
bar
,
"is as complex as %(foo)s %(bar)s (i.e. %(*)s or %%%(foo)s!)"
)
{
"is as complex as %(foo)s %(bar)s (i.e. %(*)s or %%%(foo)s!)"
)
{
return
true
;
return
arg
==
arg
;
}
}
TEST
(
MatcherPnMacroTest
,
AcceptsValidDescription
)
{
TEST
(
MatcherPnMacroTest
,
AcceptsValidDescription
)
{
...
@@ -861,7 +870,7 @@ TEST(MatcherPnMacroTest, WorksForDifferentParameterTypes) {
...
@@ -861,7 +870,7 @@ TEST(MatcherPnMacroTest, WorksForDifferentParameterTypes) {
MATCHER_P2
(
EqConcat
,
prefix
,
suffix
,
""
)
{
MATCHER_P2
(
EqConcat
,
prefix
,
suffix
,
""
)
{
// The following lines promote the two parameters to desired types.
// The following lines promote the two parameters to desired types.
std
::
string
prefix_str
(
prefix
);
std
::
string
prefix_str
(
prefix
);
char
suffix_char
(
suffix
);
char
suffix_char
=
static_cast
<
char
>
(
suffix
);
return
arg
==
prefix_str
+
suffix_char
;
return
arg
==
prefix_str
+
suffix_char
;
}
}
...
...
test/gmock-internal-utils_test.cc
View file @
32de5f53
...
@@ -819,7 +819,7 @@ TEST(CopyArrayTest, WorksForTwoDimensionalArrays) {
...
@@ -819,7 +819,7 @@ TEST(CopyArrayTest, WorksForTwoDimensionalArrays) {
TEST
(
NativeArrayTest
,
ConstructorFromArrayWorks
)
{
TEST
(
NativeArrayTest
,
ConstructorFromArrayWorks
)
{
const
int
a
[
3
]
=
{
0
,
1
,
2
};
const
int
a
[
3
]
=
{
0
,
1
,
2
};
NativeArray
<
int
>
na
(
a
,
3
,
kReference
);
NativeArray
<
int
>
na
(
a
,
3
,
kReference
);
EXPECT_EQ
(
3
,
na
.
size
());
EXPECT_EQ
(
3
U
,
na
.
size
());
EXPECT_EQ
(
a
,
na
.
begin
());
EXPECT_EQ
(
a
,
na
.
begin
());
}
}
...
@@ -849,7 +849,7 @@ TEST(NativeArrayTest, TypeMembersAreCorrect) {
...
@@ -849,7 +849,7 @@ TEST(NativeArrayTest, TypeMembersAreCorrect) {
TEST
(
NativeArrayTest
,
MethodsWork
)
{
TEST
(
NativeArrayTest
,
MethodsWork
)
{
const
int
a
[
3
]
=
{
0
,
1
,
2
};
const
int
a
[
3
]
=
{
0
,
1
,
2
};
NativeArray
<
int
>
na
(
a
,
3
,
kCopy
);
NativeArray
<
int
>
na
(
a
,
3
,
kCopy
);
ASSERT_EQ
(
3
,
na
.
size
());
ASSERT_EQ
(
3
U
,
na
.
size
());
EXPECT_EQ
(
3
,
na
.
end
()
-
na
.
begin
());
EXPECT_EQ
(
3
,
na
.
end
()
-
na
.
begin
());
NativeArray
<
int
>::
const_iterator
it
=
na
.
begin
();
NativeArray
<
int
>::
const_iterator
it
=
na
.
begin
();
...
@@ -875,7 +875,7 @@ TEST(NativeArrayTest, MethodsWork) {
...
@@ -875,7 +875,7 @@ TEST(NativeArrayTest, MethodsWork) {
TEST
(
NativeArrayTest
,
WorksForTwoDimensionalArray
)
{
TEST
(
NativeArrayTest
,
WorksForTwoDimensionalArray
)
{
const
char
a
[
2
][
3
]
=
{
"hi"
,
"lo"
};
const
char
a
[
2
][
3
]
=
{
"hi"
,
"lo"
};
NativeArray
<
char
[
3
]
>
na
(
a
,
2
,
kReference
);
NativeArray
<
char
[
3
]
>
na
(
a
,
2
,
kReference
);
ASSERT_EQ
(
2
,
na
.
size
());
ASSERT_EQ
(
2
U
,
na
.
size
());
EXPECT_EQ
(
a
,
na
.
begin
());
EXPECT_EQ
(
a
,
na
.
begin
());
}
}
...
@@ -910,11 +910,11 @@ TEST(StlContainerViewTest, WorksForStaticNativeArray) {
...
@@ -910,11 +910,11 @@ TEST(StlContainerViewTest, WorksForStaticNativeArray) {
int
a1
[
3
]
=
{
0
,
1
,
2
};
int
a1
[
3
]
=
{
0
,
1
,
2
};
NativeArray
<
int
>
a2
=
StlContainerView
<
int
[
3
]
>::
ConstReference
(
a1
);
NativeArray
<
int
>
a2
=
StlContainerView
<
int
[
3
]
>::
ConstReference
(
a1
);
EXPECT_EQ
(
3
,
a2
.
size
());
EXPECT_EQ
(
3
U
,
a2
.
size
());
EXPECT_EQ
(
a1
,
a2
.
begin
());
EXPECT_EQ
(
a1
,
a2
.
begin
());
const
NativeArray
<
int
>
a3
=
StlContainerView
<
int
[
3
]
>::
Copy
(
a1
);
const
NativeArray
<
int
>
a3
=
StlContainerView
<
int
[
3
]
>::
Copy
(
a1
);
ASSERT_EQ
(
3
,
a3
.
size
());
ASSERT_EQ
(
3
U
,
a3
.
size
());
EXPECT_EQ
(
0
,
a3
.
begin
()[
0
]);
EXPECT_EQ
(
0
,
a3
.
begin
()[
0
]);
EXPECT_EQ
(
1
,
a3
.
begin
()[
1
]);
EXPECT_EQ
(
1
,
a3
.
begin
()[
1
]);
EXPECT_EQ
(
2
,
a3
.
begin
()[
2
]);
EXPECT_EQ
(
2
,
a3
.
begin
()[
2
]);
...
@@ -937,12 +937,12 @@ TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
...
@@ -937,12 +937,12 @@ TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
const
int
*
const
p1
=
a1
;
const
int
*
const
p1
=
a1
;
NativeArray
<
int
>
a2
=
StlContainerView
<
tuple
<
const
int
*
,
int
>
>::
NativeArray
<
int
>
a2
=
StlContainerView
<
tuple
<
const
int
*
,
int
>
>::
ConstReference
(
make_tuple
(
p1
,
3
));
ConstReference
(
make_tuple
(
p1
,
3
));
EXPECT_EQ
(
3
,
a2
.
size
());
EXPECT_EQ
(
3
U
,
a2
.
size
());
EXPECT_EQ
(
a1
,
a2
.
begin
());
EXPECT_EQ
(
a1
,
a2
.
begin
());
const
NativeArray
<
int
>
a3
=
StlContainerView
<
tuple
<
int
*
,
size_t
>
>::
const
NativeArray
<
int
>
a3
=
StlContainerView
<
tuple
<
int
*
,
size_t
>
>::
Copy
(
make_tuple
(
static_cast
<
int
*>
(
a1
),
3
));
Copy
(
make_tuple
(
static_cast
<
int
*>
(
a1
),
3
));
ASSERT_EQ
(
3
,
a3
.
size
());
ASSERT_EQ
(
3
U
,
a3
.
size
());
EXPECT_EQ
(
0
,
a3
.
begin
()[
0
]);
EXPECT_EQ
(
0
,
a3
.
begin
()[
0
]);
EXPECT_EQ
(
1
,
a3
.
begin
()[
1
]);
EXPECT_EQ
(
1
,
a3
.
begin
()[
1
]);
EXPECT_EQ
(
2
,
a3
.
begin
()[
2
]);
EXPECT_EQ
(
2
,
a3
.
begin
()[
2
]);
...
...
test/gmock-matchers_test.cc
View file @
32de5f53
...
@@ -152,8 +152,9 @@ class GreaterThanMatcher : public MatcherInterface<int> {
...
@@ -152,8 +152,9 @@ class GreaterThanMatcher : public MatcherInterface<int> {
*
os
<<
"is "
<<
-
diff
<<
" less than "
<<
rhs_
;
*
os
<<
"is "
<<
-
diff
<<
" less than "
<<
rhs_
;
}
}
}
}
private
:
private
:
const
int
rhs_
;
int
rhs_
;
};
};
Matcher
<
int
>
GreaterThan
(
int
n
)
{
Matcher
<
int
>
GreaterThan
(
int
n
)
{
...
@@ -335,7 +336,7 @@ class IntValue {
...
@@ -335,7 +336,7 @@ class IntValue {
public
:
public
:
// An int can be statically (although not implicitly) cast to a
// An int can be statically (although not implicitly) cast to a
// IntValue.
// IntValue.
explicit
IntValue
(
int
value
)
:
value_
(
value
)
{}
explicit
IntValue
(
int
a_value
)
:
value_
(
a_
value
)
{}
int
value
()
const
{
return
value_
;
}
int
value
()
const
{
return
value_
;
}
private
:
private
:
...
@@ -560,7 +561,7 @@ class Unprintable {
...
@@ -560,7 +561,7 @@ class Unprintable {
public
:
public
:
Unprintable
()
:
c_
(
'a'
)
{}
Unprintable
()
:
c_
(
'a'
)
{}
bool
operator
==
(
const
Unprintable
&
rhs
)
{
return
true
;
}
bool
operator
==
(
const
Unprintable
&
/* rhs */
)
{
return
true
;
}
private
:
private
:
char
c_
;
char
c_
;
};
};
...
@@ -606,7 +607,7 @@ TEST(TypedEqTest, CanDescribeSelf) {
...
@@ -606,7 +607,7 @@ TEST(TypedEqTest, CanDescribeSelf) {
// "undefined referece".
// "undefined referece".
template
<
typename
T
>
template
<
typename
T
>
struct
Type
{
struct
Type
{
static
bool
IsTypeOf
(
const
T
&
v
)
{
return
true
;
}
static
bool
IsTypeOf
(
const
T
&
/* v */
)
{
return
true
;
}
template
<
typename
T2
>
template
<
typename
T2
>
static
void
IsTypeOf
(
T2
v
);
static
void
IsTypeOf
(
T2
v
);
...
@@ -1861,8 +1862,9 @@ class IsGreaterThan {
...
@@ -1861,8 +1862,9 @@ class IsGreaterThan {
explicit
IsGreaterThan
(
int
threshold
)
:
threshold_
(
threshold
)
{}
explicit
IsGreaterThan
(
int
threshold
)
:
threshold_
(
threshold
)
{}
bool
operator
()(
int
n
)
const
{
return
n
>
threshold_
;
}
bool
operator
()(
int
n
)
const
{
return
n
>
threshold_
;
}
private
:
private
:
const
int
threshold_
;
int
threshold_
;
};
};
// For testing Truly().
// For testing Truly().
...
@@ -1959,7 +1961,12 @@ TEST(AllArgsTest, WorksForNonTuple) {
...
@@ -1959,7 +1961,12 @@ TEST(AllArgsTest, WorksForNonTuple) {
class
AllArgsHelper
{
class
AllArgsHelper
{
public
:
public
:
AllArgsHelper
()
{}
MOCK_METHOD2
(
Helper
,
int
(
char
x
,
int
y
));
MOCK_METHOD2
(
Helper
,
int
(
char
x
,
int
y
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
AllArgsHelper
);
};
};
TEST
(
AllArgsTest
,
WorksInWithClause
)
{
TEST
(
AllArgsTest
,
WorksInWithClause
)
{
...
@@ -2384,7 +2391,7 @@ TEST(PointeeTest, CanExplainMatchResult) {
...
@@ -2384,7 +2391,7 @@ TEST(PointeeTest, CanExplainMatchResult) {
// An uncopyable class.
// An uncopyable class.
class
Uncopyable
{
class
Uncopyable
{
public
:
public
:
explicit
Uncopyable
(
int
value
)
:
value_
(
value
)
{}
explicit
Uncopyable
(
int
a_value
)
:
value_
(
a_
value
)
{}
int
value
()
const
{
return
value_
;
}
int
value
()
const
{
return
value_
;
}
private
:
private
:
...
@@ -2405,11 +2412,17 @@ struct AStruct {
...
@@ -2405,11 +2412,17 @@ struct AStruct {
const
double
y
;
// A const field.
const
double
y
;
// A const field.
Uncopyable
z
;
// An uncopyable field.
Uncopyable
z
;
// An uncopyable field.
const
char
*
p
;
// A pointer field.
const
char
*
p
;
// A pointer field.
private
:
GTEST_DISALLOW_ASSIGN_
(
AStruct
);
};
};
// A derived struct for testing Field().
// A derived struct for testing Field().
struct
DerivedStruct
:
public
AStruct
{
struct
DerivedStruct
:
public
AStruct
{
char
ch
;
char
ch
;
private
:
GTEST_DISALLOW_ASSIGN_
(
DerivedStruct
);
};
};
// Tests that Field(&Foo::field, ...) works when field is non-const.
// Tests that Field(&Foo::field, ...) works when field is non-const.
...
@@ -2943,7 +2956,7 @@ TEST(ResultOfTest, WorksForReferencingCallables) {
...
@@ -2943,7 +2956,7 @@ TEST(ResultOfTest, WorksForReferencingCallables) {
class
DivisibleByImpl
{
class
DivisibleByImpl
{
public
:
public
:
explicit
DivisibleByImpl
(
int
divider
)
:
divider_
(
divider
)
{}
explicit
DivisibleByImpl
(
int
a_divider
)
:
divider_
(
a_
divider
)
{}
template
<
typename
T
>
template
<
typename
T
>
bool
Matches
(
const
T
&
n
)
const
{
bool
Matches
(
const
T
&
n
)
const
{
...
@@ -2958,7 +2971,7 @@ class DivisibleByImpl {
...
@@ -2958,7 +2971,7 @@ class DivisibleByImpl {
*
os
<<
"is not divisible by "
<<
divider_
;
*
os
<<
"is not divisible by "
<<
divider_
;
}
}
void
set_divider
(
int
divider
)
{
divider_
=
divider
;
}
void
set_divider
(
int
a_divider
)
{
divider_
=
a_
divider
;
}
int
divider
()
const
{
return
divider_
;
}
int
divider
()
const
{
return
divider_
;
}
private
:
private
:
...
@@ -3021,7 +3034,7 @@ TEST(ExplainmatcherResultTest, MonomorphicMatcher) {
...
@@ -3021,7 +3034,7 @@ TEST(ExplainmatcherResultTest, MonomorphicMatcher) {
class
NotCopyable
{
class
NotCopyable
{
public
:
public
:
explicit
NotCopyable
(
int
value
)
:
value_
(
value
)
{}
explicit
NotCopyable
(
int
a_value
)
:
value_
(
a_
value
)
{}
int
value
()
const
{
return
value_
;
}
int
value
()
const
{
return
value_
;
}
...
...
test/gmock-more-actions_test.cc
View file @
32de5f53
...
@@ -65,6 +65,10 @@ using testing::Unused;
...
@@ -65,6 +65,10 @@ using testing::Unused;
using
testing
::
WithArg
;
using
testing
::
WithArg
;
using
testing
::
WithoutArgs
;
using
testing
::
WithoutArgs
;
// For suppressing compiler warnings on conversion possibly losing precision.
inline
short
Short
(
short
n
)
{
return
n
;
}
// NOLINT
inline
char
Char
(
char
ch
)
{
return
ch
;
}
// Sample functions and functors for testing Invoke() and etc.
// Sample functions and functors for testing Invoke() and etc.
int
Nullary
()
{
return
1
;
}
int
Nullary
()
{
return
1
;
}
...
@@ -85,7 +89,7 @@ bool Unary(int x) { return x < 0; }
...
@@ -85,7 +89,7 @@ bool Unary(int x) { return x < 0; }
const
char
*
Plus1
(
const
char
*
s
)
{
return
s
+
1
;
}
const
char
*
Plus1
(
const
char
*
s
)
{
return
s
+
1
;
}
void
VoidUnary
(
int
n
)
{
g_done
=
true
;
}
void
VoidUnary
(
int
/* n */
)
{
g_done
=
true
;
}
bool
ByConstRef
(
const
string
&
s
)
{
return
s
==
"Hi"
;
}
bool
ByConstRef
(
const
string
&
s
)
{
return
s
==
"Hi"
;
}
...
@@ -239,13 +243,13 @@ TEST(InvokeTest, Unary) {
...
@@ -239,13 +243,13 @@ TEST(InvokeTest, Unary) {
TEST
(
InvokeTest
,
Binary
)
{
TEST
(
InvokeTest
,
Binary
)
{
Action
<
const
char
*
(
const
char
*
,
short
)
>
a
=
Invoke
(
Binary
);
// NOLINT
Action
<
const
char
*
(
const
char
*
,
short
)
>
a
=
Invoke
(
Binary
);
// NOLINT
const
char
*
p
=
"Hello"
;
const
char
*
p
=
"Hello"
;
EXPECT_EQ
(
p
+
2
,
a
.
Perform
(
make_tuple
(
p
,
2
)));
EXPECT_EQ
(
p
+
2
,
a
.
Perform
(
make_tuple
(
p
,
Short
(
2
)
)));
}
}
// Tests using Invoke() with a ternary function.
// Tests using Invoke() with a ternary function.
TEST
(
InvokeTest
,
Ternary
)
{
TEST
(
InvokeTest
,
Ternary
)
{
Action
<
int
(
int
,
char
,
short
)
>
a
=
Invoke
(
Ternary
);
// NOLINT
Action
<
int
(
int
,
char
,
short
)
>
a
=
Invoke
(
Ternary
);
// NOLINT
EXPECT_EQ
(
6
,
a
.
Perform
(
make_tuple
(
1
,
'\2'
,
3
)));
EXPECT_EQ
(
6
,
a
.
Perform
(
make_tuple
(
1
,
'\2'
,
Short
(
3
)
)));
}
}
// Tests using Invoke() with a 4-argument function.
// Tests using Invoke() with a 4-argument function.
...
@@ -340,14 +344,14 @@ TEST(InvokeTest, MethodWithUnusedParameters) {
...
@@ -340,14 +344,14 @@ TEST(InvokeTest, MethodWithUnusedParameters) {
// Tests using Invoke() with a functor.
// Tests using Invoke() with a functor.
TEST
(
InvokeTest
,
Functor
)
{
TEST
(
InvokeTest
,
Functor
)
{
Action
<
int
(
short
,
char
)
>
a
=
Invoke
(
plus
<
short
>
());
// NOLINT
Action
<
long
(
long
,
int
)
>
a
=
Invoke
(
plus
<
long
>
());
// NOLINT
EXPECT_EQ
(
3
,
a
.
Perform
(
make_tuple
(
1
,
2
)));
EXPECT_EQ
(
3
L
,
a
.
Perform
(
make_tuple
(
1
,
2
)));
}
}
// Tests using Invoke(f) as an action of a compatible type.
// Tests using Invoke(f) as an action of a compatible type.
TEST
(
InvokeTest
,
FunctionWithCompatibleType
)
{
TEST
(
InvokeTest
,
FunctionWithCompatibleType
)
{
Action
<
long
(
int
,
short
,
char
,
bool
)
>
a
=
Invoke
(
SumOf4
);
// NOLINT
Action
<
long
(
int
,
short
,
char
,
bool
)
>
a
=
Invoke
(
SumOf4
);
// NOLINT
EXPECT_EQ
(
4321
,
a
.
Perform
(
make_tuple
(
4000
,
300
,
20
,
true
)));
EXPECT_EQ
(
4321
,
a
.
Perform
(
make_tuple
(
4000
,
Short
(
300
),
Char
(
20
)
,
true
)));
}
}
// Tests using Invoke() with an object pointer and a method pointer.
// Tests using Invoke() with an object pointer and a method pointer.
...
@@ -378,7 +382,7 @@ TEST(InvokeMethodTest, Binary) {
...
@@ -378,7 +382,7 @@ TEST(InvokeMethodTest, Binary) {
TEST
(
InvokeMethodTest
,
Ternary
)
{
TEST
(
InvokeMethodTest
,
Ternary
)
{
Foo
foo
;
Foo
foo
;
Action
<
int
(
int
,
bool
,
char
)
>
a
=
Invoke
(
&
foo
,
&
Foo
::
Ternary
);
// NOLINT
Action
<
int
(
int
,
bool
,
char
)
>
a
=
Invoke
(
&
foo
,
&
Foo
::
Ternary
);
// NOLINT
EXPECT_EQ
(
1124
,
a
.
Perform
(
make_tuple
(
1000
,
true
,
1
)));
EXPECT_EQ
(
1124
,
a
.
Perform
(
make_tuple
(
1000
,
true
,
Char
(
1
)
)));
}
}
// Tests using Invoke() with a 4-argument method.
// Tests using Invoke() with a 4-argument method.
...
@@ -457,7 +461,7 @@ TEST(InvokeMethodTest, MethodWithCompatibleType) {
...
@@ -457,7 +461,7 @@ TEST(InvokeMethodTest, MethodWithCompatibleType) {
Foo
foo
;
Foo
foo
;
Action
<
long
(
int
,
short
,
char
,
bool
)
>
a
=
// NOLINT
Action
<
long
(
int
,
short
,
char
,
bool
)
>
a
=
// NOLINT
Invoke
(
&
foo
,
&
Foo
::
SumOf4
);
Invoke
(
&
foo
,
&
Foo
::
SumOf4
);
EXPECT_EQ
(
4444
,
a
.
Perform
(
make_tuple
(
4000
,
300
,
20
,
true
)));
EXPECT_EQ
(
4444
,
a
.
Perform
(
make_tuple
(
4000
,
Short
(
300
),
Char
(
20
)
,
true
)));
}
}
// Tests using WithoutArgs with an action that takes no argument.
// Tests using WithoutArgs with an action that takes no argument.
...
...
test/gmock-nice-strict_test.cc
View file @
32de5f53
...
@@ -40,7 +40,12 @@
...
@@ -40,7 +40,12 @@
// clash with ::testing::Mock.
// clash with ::testing::Mock.
class
Mock
{
class
Mock
{
public
:
public
:
Mock
()
{}
MOCK_METHOD0
(
DoThis
,
void
());
MOCK_METHOD0
(
DoThis
,
void
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
Mock
);
};
};
namespace
testing
{
namespace
testing
{
...
@@ -64,10 +69,14 @@ class Foo {
...
@@ -64,10 +69,14 @@ class Foo {
class
MockFoo
:
public
Foo
{
class
MockFoo
:
public
Foo
{
public
:
public
:
MockFoo
()
{}
void
Delete
()
{
delete
this
;
}
void
Delete
()
{
delete
this
;
}
MOCK_METHOD0
(
DoThis
,
void
());
MOCK_METHOD0
(
DoThis
,
void
());
MOCK_METHOD1
(
DoThat
,
int
(
bool
flag
));
MOCK_METHOD1
(
DoThat
,
int
(
bool
flag
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFoo
);
};
};
class
MockBar
{
class
MockBar
{
...
@@ -89,6 +98,8 @@ class MockBar {
...
@@ -89,6 +98,8 @@ class MockBar {
private
:
private
:
string
str_
;
string
str_
;
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockBar
);
};
};
// TODO(wan@google.com): find a way to re-enable these tests.
// TODO(wan@google.com): find a way to re-enable these tests.
...
...
test/gmock-port_test.cc
View file @
32de5f53
...
@@ -85,7 +85,7 @@ class Castable {
...
@@ -85,7 +85,7 @@ class Castable {
}
}
private
:
private
:
bool
*
con
st
con
verted_
;
bool
*
converted_
;
};
};
TEST
(
ImplicitCastTest
,
CanUseNonConstCastOperator
)
{
TEST
(
ImplicitCastTest
,
CanUseNonConstCastOperator
)
{
...
@@ -104,7 +104,7 @@ class ConstCastable {
...
@@ -104,7 +104,7 @@ class ConstCastable {
}
}
private
:
private
:
bool
*
con
st
con
verted_
;
bool
*
converted_
;
};
};
TEST
(
ImplicitCastTest
,
CanUseConstCastOperatorOnConstValues
)
{
TEST
(
ImplicitCastTest
,
CanUseConstCastOperatorOnConstValues
)
{
...
@@ -128,8 +128,8 @@ class ConstAndNonConstCastable {
...
@@ -128,8 +128,8 @@ class ConstAndNonConstCastable {
}
}
private
:
private
:
bool
*
con
st
con
verted_
;
bool
*
converted_
;
bool
*
const
const
_converted_
;
bool
*
const_converted_
;
};
};
TEST
(
ImplicitCastTest
,
CanSelectBetweenConstAndNonConstCasrAppropriately
)
{
TEST
(
ImplicitCastTest
,
CanSelectBetweenConstAndNonConstCasrAppropriately
)
{
...
...
test/gmock-printers_test.cc
View file @
32de5f53
...
@@ -77,7 +77,7 @@ class StreamableInGlobal {
...
@@ -77,7 +77,7 @@ class StreamableInGlobal {
virtual
~
StreamableInGlobal
()
{}
virtual
~
StreamableInGlobal
()
{}
};
};
inline
void
operator
<<
(
::
std
::
ostream
&
os
,
const
StreamableInGlobal
&
x
)
{
inline
void
operator
<<
(
::
std
::
ostream
&
os
,
const
StreamableInGlobal
&
/* x */
)
{
os
<<
"StreamableInGlobal"
;
os
<<
"StreamableInGlobal"
;
}
}
...
@@ -107,7 +107,7 @@ void PrintTo(const PrintableViaPrintTo& x, ::std::ostream* os) {
...
@@ -107,7 +107,7 @@ void PrintTo(const PrintableViaPrintTo& x, ::std::ostream* os) {
template
<
typename
T
>
template
<
typename
T
>
class
PrintableViaPrintToTemplate
{
class
PrintableViaPrintToTemplate
{
public
:
public
:
explicit
PrintableViaPrintToTemplate
(
const
T
&
value
)
:
value_
(
value
)
{}
explicit
PrintableViaPrintToTemplate
(
const
T
&
a_value
)
:
value_
(
a_
value
)
{}
const
T
&
value
()
const
{
return
value_
;
}
const
T
&
value
()
const
{
return
value_
;
}
private
:
private
:
...
@@ -440,7 +440,7 @@ TEST(PrintPointerToPointerTest, IntPointerPointer) {
...
@@ -440,7 +440,7 @@ TEST(PrintPointerToPointerTest, IntPointerPointer) {
// Tests printing (non-member) function pointers.
// Tests printing (non-member) function pointers.
void
MyFunction
(
int
n
)
{}
void
MyFunction
(
int
/* n */
)
{}
TEST
(
PrintPointerTest
,
NonMemberFunctionPointer
)
{
TEST
(
PrintPointerTest
,
NonMemberFunctionPointer
)
{
// We cannot directly cast &MyFunction to const void* because the
// We cannot directly cast &MyFunction to const void* because the
...
@@ -464,7 +464,7 @@ struct Foo {
...
@@ -464,7 +464,7 @@ struct Foo {
public
:
public
:
virtual
~
Foo
()
{}
virtual
~
Foo
()
{}
int
MyMethod
(
char
x
)
{
return
x
+
1
;
}
int
MyMethod
(
char
x
)
{
return
x
+
1
;
}
virtual
char
MyVirtualMethod
(
int
n
)
{
return
'a'
;
}
virtual
char
MyVirtualMethod
(
int
/* n */
)
{
return
'a'
;
}
int
value
;
int
value
;
};
};
...
@@ -603,7 +603,7 @@ class AllowsGenericStreaming {};
...
@@ -603,7 +603,7 @@ class AllowsGenericStreaming {};
template
<
typename
Char
,
typename
CharTraits
>
template
<
typename
Char
,
typename
CharTraits
>
std
::
basic_ostream
<
Char
,
CharTraits
>&
operator
<<
(
std
::
basic_ostream
<
Char
,
CharTraits
>&
operator
<<
(
std
::
basic_ostream
<
Char
,
CharTraits
>&
os
,
std
::
basic_ostream
<
Char
,
CharTraits
>&
os
,
const
AllowsGenericStreaming
&
a
)
{
const
AllowsGenericStreaming
&
/* a */
)
{
return
os
<<
"AllowsGenericStreaming"
;
return
os
<<
"AllowsGenericStreaming"
;
}
}
...
@@ -620,7 +620,7 @@ class AllowsGenericStreamingTemplate {};
...
@@ -620,7 +620,7 @@ class AllowsGenericStreamingTemplate {};
template
<
typename
Char
,
typename
CharTraits
,
typename
T
>
template
<
typename
Char
,
typename
CharTraits
,
typename
T
>
std
::
basic_ostream
<
Char
,
CharTraits
>&
operator
<<
(
std
::
basic_ostream
<
Char
,
CharTraits
>&
operator
<<
(
std
::
basic_ostream
<
Char
,
CharTraits
>&
os
,
std
::
basic_ostream
<
Char
,
CharTraits
>&
os
,
const
AllowsGenericStreamingTemplate
<
T
>&
a
)
{
const
AllowsGenericStreamingTemplate
<
T
>&
/* a */
)
{
return
os
<<
"AllowsGenericStreamingTemplate"
;
return
os
<<
"AllowsGenericStreamingTemplate"
;
}
}
...
@@ -641,7 +641,7 @@ class AllowsGenericStreamingAndImplicitConversionTemplate {
...
@@ -641,7 +641,7 @@ class AllowsGenericStreamingAndImplicitConversionTemplate {
template
<
typename
Char
,
typename
CharTraits
,
typename
T
>
template
<
typename
Char
,
typename
CharTraits
,
typename
T
>
std
::
basic_ostream
<
Char
,
CharTraits
>&
operator
<<
(
std
::
basic_ostream
<
Char
,
CharTraits
>&
operator
<<
(
std
::
basic_ostream
<
Char
,
CharTraits
>&
os
,
std
::
basic_ostream
<
Char
,
CharTraits
>&
os
,
const
AllowsGenericStreamingAndImplicitConversionTemplate
<
T
>&
a
)
{
const
AllowsGenericStreamingAndImplicitConversionTemplate
<
T
>&
/* a */
)
{
return
os
<<
"AllowsGenericStreamingAndImplicitConversionTemplate"
;
return
os
<<
"AllowsGenericStreamingAndImplicitConversionTemplate"
;
}
}
...
...
test/gmock-spec-builders_test.cc
View file @
32de5f53
...
@@ -97,16 +97,26 @@ class Result {};
...
@@ -97,16 +97,26 @@ class Result {};
class
MockA
{
class
MockA
{
public
:
public
:
MockA
()
{}
MOCK_METHOD1
(
DoA
,
void
(
int
n
));
// NOLINT
MOCK_METHOD1
(
DoA
,
void
(
int
n
));
// NOLINT
MOCK_METHOD1
(
ReturnResult
,
Result
(
int
n
));
// NOLINT
MOCK_METHOD1
(
ReturnResult
,
Result
(
int
n
));
// NOLINT
MOCK_METHOD2
(
Binary
,
bool
(
int
x
,
int
y
));
// NOLINT
MOCK_METHOD2
(
Binary
,
bool
(
int
x
,
int
y
));
// NOLINT
MOCK_METHOD2
(
ReturnInt
,
int
(
int
x
,
int
y
));
// NOLINT
MOCK_METHOD2
(
ReturnInt
,
int
(
int
x
,
int
y
));
// NOLINT
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockA
);
};
};
class
MockB
{
class
MockB
{
public
:
public
:
MockB
()
{}
MOCK_CONST_METHOD0
(
DoB
,
int
());
// NOLINT
MOCK_CONST_METHOD0
(
DoB
,
int
());
// NOLINT
MOCK_METHOD1
(
DoB
,
int
(
int
n
));
// NOLINT
MOCK_METHOD1
(
DoB
,
int
(
int
n
));
// NOLINT
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockB
);
};
};
// Tests that EXPECT_CALL and ON_CALL compile in a presence of macro
// Tests that EXPECT_CALL and ON_CALL compile in a presence of macro
...
@@ -123,7 +133,12 @@ class CC {
...
@@ -123,7 +133,12 @@ class CC {
};
};
class
MockCC
:
public
CC
{
class
MockCC
:
public
CC
{
public
:
public
:
MockCC
()
{}
MOCK_METHOD0
(
Method
,
int
());
MOCK_METHOD0
(
Method
,
int
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockCC
);
};
};
// Tests that a method with expanded name compiles.
// Tests that a method with expanded name compiles.
...
@@ -1617,8 +1632,19 @@ TEST(DeletingMockEarlyTest, Success2) {
...
@@ -1617,8 +1632,19 @@ TEST(DeletingMockEarlyTest, Success2) {
// Tests that it's OK to delete a mock object itself in its action.
// Tests that it's OK to delete a mock object itself in its action.
// Suppresses warning on unreferenced formal parameter in MSVC with
// -W4.
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4100)
#endif
ACTION_P
(
Delete
,
ptr
)
{
delete
ptr
;
}
ACTION_P
(
Delete
,
ptr
)
{
delete
ptr
;
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif
TEST
(
DeletingMockEarlyTest
,
CanDeleteSelfInActionReturningVoid
)
{
TEST
(
DeletingMockEarlyTest
,
CanDeleteSelfInActionReturningVoid
)
{
MockA
*
const
a
=
new
MockA
;
MockA
*
const
a
=
new
MockA
;
EXPECT_CALL
(
*
a
,
DoA
(
_
)).
WillOnce
(
Delete
(
a
));
EXPECT_CALL
(
*
a
,
DoA
(
_
)).
WillOnce
(
Delete
(
a
));
...
@@ -1691,7 +1717,9 @@ class EvenNumberCardinality : public CardinalityInterface {
...
@@ -1691,7 +1717,9 @@ class EvenNumberCardinality : public CardinalityInterface {
}
}
// Returns true iff call_count calls will saturate this cardinality.
// Returns true iff call_count calls will saturate this cardinality.
virtual
bool
IsSaturatedByCallCount
(
int
call_count
)
const
{
return
false
;
}
virtual
bool
IsSaturatedByCallCount
(
int
/* call_count */
)
const
{
return
false
;
}
// Describes self to an ostream.
// Describes self to an ostream.
virtual
void
DescribeTo
(
::
std
::
ostream
*
os
)
const
{
virtual
void
DescribeTo
(
::
std
::
ostream
*
os
)
const
{
...
@@ -1740,9 +1768,14 @@ struct Unprintable {
...
@@ -1740,9 +1768,14 @@ struct Unprintable {
class
MockC
{
class
MockC
{
public
:
public
:
MockC
()
{}
MOCK_METHOD6
(
VoidMethod
,
void
(
bool
cond
,
int
n
,
string
s
,
void
*
p
,
MOCK_METHOD6
(
VoidMethod
,
void
(
bool
cond
,
int
n
,
string
s
,
void
*
p
,
const
Printable
&
x
,
Unprintable
y
));
const
Printable
&
x
,
Unprintable
y
));
MOCK_METHOD0
(
NonVoidMethod
,
int
());
// NOLINT
MOCK_METHOD0
(
NonVoidMethod
,
int
());
// NOLINT
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockC
);
};
};
// TODO(wan@google.com): find a way to re-enable these tests.
// TODO(wan@google.com): find a way to re-enable these tests.
...
@@ -1935,7 +1968,12 @@ void PrintTo(PrintMeNot /* dummy */, ::std::ostream* /* os */) {
...
@@ -1935,7 +1968,12 @@ void PrintTo(PrintMeNot /* dummy */, ::std::ostream* /* os */) {
class
LogTestHelper
{
class
LogTestHelper
{
public
:
public
:
LogTestHelper
()
{}
MOCK_METHOD1
(
Foo
,
PrintMeNot
(
PrintMeNot
));
MOCK_METHOD1
(
Foo
,
PrintMeNot
(
PrintMeNot
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
LogTestHelper
);
};
};
class
GMockLogTest
:
public
::
testing
::
Test
{
class
GMockLogTest
:
public
::
testing
::
Test
{
...
...
test/gmock_leak_test_.cc
View file @
32de5f53
...
@@ -48,7 +48,12 @@ class FooInterface {
...
@@ -48,7 +48,12 @@ class FooInterface {
class
MockFoo
:
public
FooInterface
{
class
MockFoo
:
public
FooInterface
{
public
:
public
:
MockFoo
()
{}
MOCK_METHOD0
(
DoThis
,
void
());
MOCK_METHOD0
(
DoThis
,
void
());
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFoo
);
};
};
TEST
(
LeakTest
,
LeakedMockWithExpectCallCausesFailureWhenLeakCheckingIsEnabled
)
{
TEST
(
LeakTest
,
LeakedMockWithExpectCallCausesFailureWhenLeakCheckingIsEnabled
)
{
...
...
test/gmock_link_test.h
View file @
32de5f53
...
@@ -206,6 +206,8 @@ class Interface {
...
@@ -206,6 +206,8 @@ class Interface {
class
Mock
:
public
Interface
{
class
Mock
:
public
Interface
{
public
:
public
:
Mock
()
{}
MOCK_METHOD1
(
VoidFromString
,
void
(
char
*
str
));
MOCK_METHOD1
(
VoidFromString
,
void
(
char
*
str
));
MOCK_METHOD1
(
StringFromString
,
char
*
(
char
*
str
));
MOCK_METHOD1
(
StringFromString
,
char
*
(
char
*
str
));
MOCK_METHOD1
(
IntFromString
,
int
(
char
*
str
));
MOCK_METHOD1
(
IntFromString
,
int
(
char
*
str
));
...
@@ -215,6 +217,9 @@ class Mock: public Interface {
...
@@ -215,6 +217,9 @@ class Mock: public Interface {
MOCK_METHOD1
(
VoidFromFloat
,
void
(
float
n
));
MOCK_METHOD1
(
VoidFromFloat
,
void
(
float
n
));
MOCK_METHOD1
(
VoidFromDouble
,
void
(
double
n
));
MOCK_METHOD1
(
VoidFromDouble
,
void
(
double
n
));
MOCK_METHOD1
(
VoidFromVector
,
void
(
const
std
::
vector
<
int
>&
v
));
MOCK_METHOD1
(
VoidFromVector
,
void
(
const
std
::
vector
<
int
>&
v
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
Mock
);
};
};
class
InvokeHelper
{
class
InvokeHelper
{
...
@@ -229,7 +234,7 @@ class InvokeHelper {
...
@@ -229,7 +234,7 @@ class InvokeHelper {
class
FieldHelper
{
class
FieldHelper
{
public
:
public
:
FieldHelper
(
int
field
)
:
field_
(
field
)
{}
FieldHelper
(
int
a_field
)
:
field_
(
a_
field
)
{}
int
field
()
const
{
return
field_
;
}
int
field
()
const
{
return
field_
;
}
int
field_
;
// NOLINT -- need external access to field_ to test
int
field_
;
// NOLINT -- need external access to field_ to test
// the Field matcher.
// the Field matcher.
...
@@ -410,6 +415,16 @@ TEST(LinkTest, TestThrow) {
...
@@ -410,6 +415,16 @@ TEST(LinkTest, TestThrow) {
}
}
#endif // GTEST_HAS_EXCEPTIONS
#endif // GTEST_HAS_EXCEPTIONS
// The ACTION*() macros trigger warning C4100 (unreferenced formal
// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
// the macro definition, as the warnings are generated when the macro
// is expanded and macro expansion cannot contain #pragma. Therefore
// we suppress them here.
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4100)
#endif
// Tests the linkage of actions created using ACTION macro.
// Tests the linkage of actions created using ACTION macro.
namespace
{
namespace
{
ACTION
(
Return1
)
{
return
1
;
}
ACTION
(
Return1
)
{
return
1
;
}
...
@@ -441,6 +456,10 @@ ACTION_P2(ReturnEqualsEitherOf, first, second) {
...
@@ -441,6 +456,10 @@ ACTION_P2(ReturnEqualsEitherOf, first, second) {
}
}
}
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif
TEST
(
LinkTest
,
TestActionP2Macro
)
{
TEST
(
LinkTest
,
TestActionP2Macro
)
{
Mock
mock
;
Mock
mock
;
char
ch
=
'x'
;
char
ch
=
'x'
;
...
...
test/gmock_output_test_.cc
View file @
32de5f53
...
@@ -49,9 +49,14 @@ using testing::Sequence;
...
@@ -49,9 +49,14 @@ using testing::Sequence;
class
MockFoo
{
class
MockFoo
{
public
:
public
:
MockFoo
()
{}
MOCK_METHOD3
(
Bar
,
char
(
const
std
::
string
&
s
,
int
i
,
double
x
));
MOCK_METHOD3
(
Bar
,
char
(
const
std
::
string
&
s
,
int
i
,
double
x
));
MOCK_METHOD2
(
Bar2
,
bool
(
int
x
,
int
y
));
MOCK_METHOD2
(
Bar2
,
bool
(
int
x
,
int
y
));
MOCK_METHOD2
(
Bar3
,
void
(
int
x
,
int
y
));
MOCK_METHOD2
(
Bar3
,
void
(
int
x
,
int
y
));
private
:
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
MockFoo
);
};
};
class
GMockOutputTest
:
public
testing
::
Test
{
class
GMockOutputTest
:
public
testing
::
Test
{
...
...
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