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
67c377d3
Commit
67c377d3
authored
Jul 19, 2015
by
kosak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move Callback-related generated actions to a custom/ file.
parent
d86a723e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
166 additions
and
169 deletions
+166
-169
gmock-generated-actions.h
include/gmock/gmock-generated-actions.h
+111
-112
gmock-generated-actions.h.pump
include/gmock/gmock-generated-actions.h.pump
+35
-55
callback-actions.h
include/gmock/internal/custom/callback-actions.h
+8
-0
callback-actions.h.pump
include/gmock/internal/custom/callback-actions.h.pump
+10
-0
gmock_doctor.py
scripts/gmock_doctor.py
+2
-2
No files found.
include/gmock/gmock-generated-actions.h
View file @
67c377d3
...
...
@@ -267,107 +267,6 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9,
}
};
// CallableHelper has static methods for invoking "callables",
// i.e. function pointers and functors. It uses overloading to
// provide a uniform interface for invoking different kinds of
// callables. In particular, you can use:
//
// CallableHelper<R>::Call(callable, a1, a2, ..., an)
//
// to invoke an n-ary callable, where R is its return type. If an
// argument, say a2, needs to be passed by reference, you should write
// ByRef(a2) instead of a2 in the above expression.
template
<
typename
R
>
class
CallableHelper
{
public
:
// Calls a nullary callable.
template
<
typename
Function
>
static
R
Call
(
Function
function
)
{
return
function
();
}
// Calls a unary callable.
// We deliberately pass a1 by value instead of const reference here
// in case it is a C-string literal. If we had declared the
// parameter as 'const A1& a1' and write Call(function, "Hi"), the
// compiler would've thought A1 is 'char[3]', which causes trouble
// when you need to copy a value of type A1. By declaring the
// parameter as 'A1 a1', the compiler will correctly infer that A1
// is 'const char*' when it sees Call(function, "Hi").
//
// Since this function is defined inline, the compiler can get rid
// of the copying of the arguments. Therefore the performance won't
// be hurt.
template
<
typename
Function
,
typename
A1
>
static
R
Call
(
Function
function
,
A1
a1
)
{
return
function
(
a1
);
}
// Calls a binary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
)
{
return
function
(
a1
,
a2
);
}
// Calls a ternary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
)
{
return
function
(
a1
,
a2
,
a3
);
}
// Calls a 4-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
)
{
return
function
(
a1
,
a2
,
a3
,
a4
);
}
// Calls a 5-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
)
{
return
function
(
a1
,
a2
,
a3
,
a4
,
a5
);
}
// Calls a 6-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
)
{
return
function
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
}
// Calls a 7-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
)
{
return
function
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
);
}
// Calls a 8-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
,
A8
a8
)
{
return
function
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
);
}
// Calls a 9-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
,
typename
A9
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
,
A8
a8
,
A9
a9
)
{
return
function
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
);
}
// Calls a 10-ary callable.
template
<
typename
Function
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
,
typename
A9
,
typename
A10
>
static
R
Call
(
Function
function
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
,
A8
a8
,
A9
a9
,
A10
a10
)
{
return
function
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
,
a10
);
}
};
// class CallableHelper
// An INTERNAL macro for extracting the type of a tuple field. It's
// subject to change without notice - DO NOT USE IN USER CODE!
#define GMOCK_FIELD_(Tuple, N) \
...
...
@@ -2181,6 +2080,7 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
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
...
...
@@ -2221,80 +2121,174 @@ namespace testing {
// InvokeArgument action from temporary values and have it performed
// later.
namespace
internal
{
namespace
invoke_argument
{
// Appears in InvokeArgumentAdl's argument list to help avoid
// accidental calls to user functions of the same name.
struct
AdlTag
{};
// InvokeArgumentAdl - a helper for InvokeArgument.
// The basic overloads are provided here for generic functors.
// Overloads for other custom-callables are provided in the
// internal/custom/callback-actions.h header.
template
<
typename
R
,
typename
F
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
)
{
return
f
();
}
template
<
typename
R
,
typename
F
,
typename
A1
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
)
{
return
f
(
a1
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
)
{
return
f
(
a1
,
a2
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
)
{
return
f
(
a1
,
a2
,
a3
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
)
{
return
f
(
a1
,
a2
,
a3
,
a4
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
)
{
return
f
(
a1
,
a2
,
a3
,
a4
,
a5
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
)
{
return
f
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
)
{
return
f
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
,
A8
a8
)
{
return
f
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
,
typename
A9
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
,
A8
a8
,
A9
a9
)
{
return
f
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
);
}
template
<
typename
R
,
typename
F
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
,
typename
A9
,
typename
A10
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
,
A1
a1
,
A2
a2
,
A3
a3
,
A4
a4
,
A5
a5
,
A6
a6
,
A7
a7
,
A8
a8
,
A9
a9
,
A10
a10
)
{
return
f
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
,
a10
);
}
}
// namespace invoke_argument
}
// namespace internal
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_0_VALUE_PARAMS
())
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
));
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_1_VALUE_PARAMS
(
p0
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_2_VALUE_PARAMS
(
p0
,
p1
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_3_VALUE_PARAMS
(
p0
,
p1
,
p2
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_4_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_5_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
,
p4
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
,
p4
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_6_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
,
p4
,
p5
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_7_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_8_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_9_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
,
p8
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
,
p8
);
}
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_10_VALUE_PARAMS
(
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
,
p8
,
p9
))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
),
p0
,
p1
,
p2
,
p3
,
p4
,
p5
,
p6
,
p7
,
p8
,
p9
);
}
...
...
@@ -2375,4 +2369,9 @@ ACTION_TEMPLATE(ReturnNew,
}
// namespace testing
// Include any custom callback actions added by the local installation.
// We must include this header at the end to make sure it can use the
// declarations from this file.
#include "gmock/internal/custom/callback-actions.h"
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
include/gmock/gmock-generated-actions.h.pump
View file @
67c377d3
...
...
@@ -80,60 +80,6 @@ class InvokeHelper<R, ::testing::tuple<$as> > {
]]
// CallableHelper has static methods for invoking "callables",
// i.e. function pointers and functors. It uses overloading to
// provide a uniform interface for invoking different kinds of
// callables. In particular, you can use:
//
// CallableHelper<R>::Call(callable, a1, a2, ..., an)
//
// to invoke an n-ary callable, where R is its return type. If an
// argument, say a2, needs to be passed by reference, you should write
// ByRef(a2) instead of a2 in the above expression.
template
<
typename
R
>
class
CallableHelper
{
public
:
// Calls a nullary callable.
template
<
typename
Function
>
static
R
Call
(
Function
function
)
{
return
function
();
}
// Calls a unary callable.
// We deliberately pass a1 by value instead of const reference here
// in case it is a C-string literal. If we had declared the
// parameter as 'const A1& a1' and write Call(function, "Hi"), the
// compiler would've thought A1 is 'char[3]', which causes trouble
// when you need to copy a value of type A1. By declaring the
// parameter as 'A1 a1', the compiler will correctly infer that A1
// is 'const char*' when it sees Call(function, "Hi").
//
// Since this function is defined inline, the compiler can get rid
// of the copying of the arguments. Therefore the performance won't
// be hurt.
template
<
typename
Function
,
typename
A1
>
static
R
Call
(
Function
function
,
A1
a1
)
{
return
function
(
a1
);
}
$
range
i
2.
.
n
$
for
i
[[
$
var
arity
=
[[
$
if
i
==
2
[[
binary
]]
$
elif
i
==
3
[[
ternary
]]
$
else
[[
$
i
-
ary
]]]]
// Calls a $arity callable.
$
range
j
1.
.
i
$
var
typename_As
=
[[
$
for
j
,
[[
typename
A
$
j
]]]]
$
var
Aas
=
[[
$
for
j
,
[[
A
$
j
a
$
j
]]]]
$
var
as
=
[[
$
for
j
,
[[
a
$
j
]]]]
$
var
typename_Ts
=
[[
$
for
j
,
[[
typename
T
$
j
]]]]
$
var
Ts
=
[[
$
for
j
,
[[
T
$
j
]]]]
template
<
typename
Function
,
$
typename_As
>
static
R
Call
(
Function
function
,
$
Aas
)
{
return
function
(
$
as
);
}
]]
};
// class CallableHelper
// An INTERNAL macro for extracting the type of a tuple field. It's
// subject to change without notice - DO NOT USE IN USER CODE!
#define GMOCK_FIELD_(Tuple, N) \
...
...
@@ -734,6 +680,7 @@ $$ // show up in the generated code.
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
...
...
@@ -774,6 +721,32 @@ namespace testing {
// InvokeArgument action from temporary values and have it performed
// later.
namespace
internal
{
namespace
invoke_argument
{
// Appears in InvokeArgumentAdl's argument list to help avoid
// accidental calls to user functions of the same name.
struct
AdlTag
{};
// InvokeArgumentAdl - a helper for InvokeArgument.
// The basic overloads are provided here for generic functors.
// Overloads for other custom-callables are provided in the
// internal/custom/callback-actions.h header.
$
range
i
0.
.
n
$
for
i
[[
$
range
j
1.
.
i
template
<
typename
R
,
typename
F
[[
$
for
j
[[,
typename
A
$
j
]]]]
>
R
InvokeArgumentAdl
(
AdlTag
,
F
f
[[
$
for
j
[[,
A
$
j
a
$
j
]]]])
{
return
f
([[
$
for
j
,
[[
a
$
j
]]]]);
}
]]
}
// namespace invoke_argument
}
// namespace internal
$
range
i
0.
.
n
$
for
i
[[
$
range
j
0.
.
i
-
1
...
...
@@ -781,7 +754,9 @@ $range j 0..i-1
ACTION_TEMPLATE
(
InvokeArgument
,
HAS_1_TEMPLATE_PARAMS
(
int
,
k
),
AND_
$
i
[[]]
_VALUE_PARAMS
(
$
for
j
,
[[
p
$
j
]]))
{
return
internal
::
CallableHelper
<
return_type
>::
Call
(
using
internal
::
invoke_argument
::
InvokeArgumentAdl
;
return
InvokeArgumentAdl
<
return_type
>
(
internal
::
invoke_argument
::
AdlTag
(),
::
testing
::
get
<
k
>
(
args
)
$
for
j
[[,
p
$
j
]]);
}
...
...
@@ -811,4 +786,9 @@ ACTION_TEMPLATE(ReturnNew,
}
// namespace testing
// Include any custom callback actions added by the local installation.
// We must include this header at the end to make sure it can use the
// declarations from this file.
#include "gmock/internal/custom/callback-actions.h"
#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
include/gmock/internal/custom/callback-actions.h
0 → 100644
View file @
67c377d3
// This file was GENERATED by command:
// pump.py callback-actions.h.pump
// DO NOT EDIT BY HAND!!!
#ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_CALLBACK_ACTIONS_H_
#define GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_CALLBACK_ACTIONS_H_
#endif // GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_CALLBACK_ACTIONS_H_
include/gmock/internal/custom/callback-actions.h.pump
0 → 100644
View file @
67c377d3
$$
-*-
mode
:
c
++
;
-*-
$$
This
is
a
Pump
source
file
(
http
:
//go/pump). Please use Pump to convert
$$
it
to
callback
-
actions
.
h
.
$$
$
var
max_callback_arity
=
5
$$
}}
This
meta
comment
fixes
auto
-
indentation
in
editors
.
#ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_CALLBACK_ACTIONS_H_
#define GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_CALLBACK_ACTIONS_H_
#endif // GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_CALLBACK_ACTIONS_H_
scripts/gmock_doctor.py
View file @
67c377d3
...
...
@@ -308,7 +308,7 @@ def _OverloadedFunctionActionDiagnoser(msg):
clang_regex
=
(
_CLANG_FILE_LINE_RE
+
r'error: no matching '
r'function for call to \'Invoke\'\r?\n'
r'(.*\n)*?'
r'.*\b
gmock-\w+
-actions\.h:\d+:\d+:\s+'
r'.*\b
callback
-actions\.h:\d+:\d+:\s+'
r'note: candidate template ignored:\s+'
r'couldn\'t infer template argument \'FunctionImpl\''
)
diagnosis
=
"""
...
...
@@ -334,7 +334,7 @@ def _OverloadedMethodActionDiagnoser(msg):
clang_regex
=
(
_CLANG_FILE_LINE_RE
+
r'error: no matching function '
r'for call to \'Invoke\'\r?\n'
r'(.*\n)*?'
r'.*\b
gmock-\w+
-actions\.h:\d+:\d+: '
r'.*\b
callback
-actions\.h:\d+:\d+: '
r'note: candidate function template not viable: '
r'requires .*, but 2 (arguments )?were provided'
)
diagnosis
=
"""
...
...
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