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
56de7cc8
Commit
56de7cc8
authored
Feb 10, 2020
by
Abseil Team
Committed by
Mark Barolak
Feb 11, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Googletest export
Fix gmock_gen to use MOCK_METHOD instead of old style macros. PiperOrigin-RevId: 294360947
parent
360f5f70
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
109 additions
and
74 deletions
+109
-74
gmock_class.py
googlemock/scripts/generator/cpp/gmock_class.py
+40
-20
gmock_class_test.py
googlemock/scripts/generator/cpp/gmock_class_test.py
+69
-54
No files found.
googlemock/scripts/generator/cpp/gmock_class.py
View file @
56de7cc8
...
@@ -53,8 +53,10 @@ def _RenderType(ast_type):
...
@@ -53,8 +53,10 @@ def _RenderType(ast_type):
ast_type: The AST of the type.
ast_type: The AST of the type.
Returns:
Returns:
Rendered string of the type
Rendered string and a boolean to indicate whether we have multiple args
(which is not handled correctly).
"""
"""
has_multiarg_error
=
False
# Add modifiers like 'const'.
# Add modifiers like 'const'.
modifiers
=
''
modifiers
=
''
if
ast_type
.
modifiers
:
if
ast_type
.
modifiers
:
...
@@ -64,37 +66,59 @@ def _RenderType(ast_type):
...
@@ -64,37 +66,59 @@ def _RenderType(ast_type):
# Collect template args.
# Collect template args.
template_args
=
[]
template_args
=
[]
for
arg
in
ast_type
.
templated_types
:
for
arg
in
ast_type
.
templated_types
:
rendered_arg
=
_RenderType
(
arg
)
rendered_arg
,
e
=
_RenderType
(
arg
)
if
e
:
has_multiarg_error
=
True
template_args
.
append
(
rendered_arg
)
template_args
.
append
(
rendered_arg
)
return_type
+=
'<'
+
', '
.
join
(
template_args
)
+
'>'
return_type
+=
'<'
+
', '
.
join
(
template_args
)
+
'>'
# We are actually not handling multi-template-args correctly. So mark it.
if
len
(
template_args
)
>
1
:
has_multiarg_error
=
True
if
ast_type
.
pointer
:
if
ast_type
.
pointer
:
return_type
+=
'*'
return_type
+=
'*'
if
ast_type
.
reference
:
if
ast_type
.
reference
:
return_type
+=
'&'
return_type
+=
'&'
return
return_type
return
return_type
,
has_multiarg_error
def
_GetNumParameters
(
parameters
,
source
):
num_parameters
=
len
(
parameters
)
if
num_parameters
==
1
:
first_param
=
parameters
[
0
]
if
source
[
first_param
.
start
:
first_param
.
end
]
.
strip
()
==
'void'
:
# We must treat T(void) as a function with no parameters.
return
0
return
num_parameters
def
_GenerateMethods
(
output_lines
,
source
,
class_node
):
def
_GenerateMethods
(
output_lines
,
source
,
class_node
):
function_type
=
(
function_type
=
(
ast
.
FUNCTION_VIRTUAL
|
ast
.
FUNCTION_PURE_VIRTUAL
|
ast
.
FUNCTION_VIRTUAL
|
ast
.
FUNCTION_PURE_VIRTUAL
|
ast
.
FUNCTION_OVERRIDE
)
ast
.
FUNCTION_OVERRIDE
)
ctor_or_dtor
=
ast
.
FUNCTION_CTOR
|
ast
.
FUNCTION_DTOR
ctor_or_dtor
=
ast
.
FUNCTION_CTOR
|
ast
.
FUNCTION_DTOR
indent
=
' '
*
_INDENT
indent
=
' '
*
_INDENT
for
node
in
class_node
.
body
:
for
node
in
class_node
.
body
:
# We only care about virtual functions.
# We only care about virtual functions.
if
(
isinstance
(
node
,
ast
.
Function
)
and
node
.
modifiers
&
function_type
and
if
(
isinstance
(
node
,
ast
.
Function
)
and
node
.
modifiers
&
function_type
and
not
node
.
modifiers
&
ctor_or_dtor
):
not
node
.
modifiers
&
ctor_or_dtor
):
# Pick out all the elements we need from the original function.
# Pick out all the elements we need from the original function.
modifiers
=
'override
'
const
=
'
'
if
node
.
modifiers
&
ast
.
FUNCTION_CONST
:
if
node
.
modifiers
&
ast
.
FUNCTION_CONST
:
modifiers
=
'const, '
+
modifiers
const
=
'CONST_'
num_parameters
=
_GetNumParameters
(
node
.
parameters
,
source
)
return_type
=
'void'
return_type
=
'void'
if
node
.
return_type
:
if
node
.
return_type
:
return_type
=
_RenderType
(
node
.
return_type
)
return_type
,
has_multiarg_error
=
_RenderType
(
node
.
return_type
)
# commas mess with macros, so nest it in parens if it has one
if
has_multiarg_error
:
if
','
in
return_type
:
for
line
in
[
return_type
=
'('
+
return_type
+
')'
'// The following line won
\'
t really compile, as the return'
,
'// type has multiple template arguments. To fix it, use a'
,
'// typedef for the return type.'
]:
output_lines
.
append
(
indent
+
line
)
tmpl
=
''
if
class_node
.
templated_types
:
tmpl
=
'_T'
mock_method_macro
=
'MOCK_
%
sMETHOD
%
d
%
s'
%
(
const
,
num_parameters
,
tmpl
)
args
=
''
args
=
''
if
node
.
parameters
:
if
node
.
parameters
:
...
@@ -113,15 +137,11 @@ def _GenerateMethods(output_lines, source, class_node):
...
@@ -113,15 +137,11 @@ def _GenerateMethods(output_lines, source, class_node):
# parameters together on a single line. Ensure there is a
# parameters together on a single line. Ensure there is a
# space in an argument which is split by a newline without
# space in an argument which is split by a newline without
# intervening whitespace, e.g.: int\nBar
# intervening whitespace, e.g.: int\nBar
args_strings
=
re
.
sub
(
' +'
,
' '
,
args_strings
.
replace
(
'
\n
'
,
' '
))
args
=
re
.
sub
(
' +'
,
' '
,
args_strings
.
replace
(
'
\n
'
,
' '
))
# Remove spaces from the begining, end, and before commas
args
=
re
.
sub
(
' ,'
,
','
,
args_strings
)
.
strip
()
# Create the mock method definition.
# Create the mock method definition.
output_lines
.
extend
([
output_lines
.
extend
([
'
%
s
%
s(
%
s,'
%
(
indent
,
mock_method_macro
,
node
.
name
),
'
%
sMOCK_METHOD(
%
s,
%
s, (
%
s), (
%
s));'
%
'
%
s
%
s(
%
s));'
%
(
indent
*
3
,
return_type
,
args
)])
(
indent
,
return_type
,
node
.
name
,
args
,
modifiers
)
])
def
_GenerateMocks
(
filename
,
source
,
ast_list
,
desired_class_names
):
def
_GenerateMocks
(
filename
,
source
,
ast_list
,
desired_class_names
):
...
...
googlemock/scripts/generator/cpp/gmock_class_test.py
View file @
56de7cc8
...
@@ -61,7 +61,7 @@ class Foo {
...
@@ -61,7 +61,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testSimpleConstructorsAndDestructor
(
self
):
def
testSimpleConstructorsAndDestructor
(
self
):
...
@@ -78,7 +78,7 @@ class Foo {
...
@@ -78,7 +78,7 @@ class Foo {
"""
"""
# The constructors and destructor should be ignored.
# The constructors and destructor should be ignored.
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testVirtualDestructor
(
self
):
def
testVirtualDestructor
(
self
):
...
@@ -91,7 +91,7 @@ class Foo {
...
@@ -91,7 +91,7 @@ class Foo {
"""
"""
# The destructor should be ignored.
# The destructor should be ignored.
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testExplicitlyDefaultedConstructorsAndDestructor
(
self
):
def
testExplicitlyDefaultedConstructorsAndDestructor
(
self
):
...
@@ -107,7 +107,7 @@ class Foo {
...
@@ -107,7 +107,7 @@ class Foo {
"""
"""
# The constructors and destructor should be ignored.
# The constructors and destructor should be ignored.
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testExplicitlyDeletedConstructorsAndDestructor
(
self
):
def
testExplicitlyDeletedConstructorsAndDestructor
(
self
):
...
@@ -123,7 +123,7 @@ class Foo {
...
@@ -123,7 +123,7 @@ class Foo {
"""
"""
# The constructors and destructor should be ignored.
# The constructors and destructor should be ignored.
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testSimpleOverrideMethod
(
self
):
def
testSimpleOverrideMethod
(
self
):
...
@@ -134,7 +134,7 @@ class Foo {
...
@@ -134,7 +134,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testSimpleConstMethod
(
self
):
def
testSimpleConstMethod
(
self
):
...
@@ -145,7 +145,7 @@ class Foo {
...
@@ -145,7 +145,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(void, Bar, (bool flag), (const, override
));'
,
'MOCK_CONST_METHOD1(Bar,
\n
void(bool flag
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testExplicitVoid
(
self
):
def
testExplicitVoid
(
self
):
...
@@ -156,7 +156,7 @@ class Foo {
...
@@ -156,7 +156,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (void), (override
));'
,
'MOCK_METHOD0(Bar,
\n
int(void
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testStrangeNewlineInParameter
(
self
):
def
testStrangeNewlineInParameter
(
self
):
...
@@ -168,7 +168,7 @@ a) = 0;
...
@@ -168,7 +168,7 @@ a) = 0;
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(void, Bar, (int a), (override
));'
,
'MOCK_METHOD1(Bar,
\n
void(int a
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testDefaultParameters
(
self
):
def
testDefaultParameters
(
self
):
...
@@ -179,7 +179,7 @@ class Foo {
...
@@ -179,7 +179,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(void, Bar, (int a, char c), (override
));'
,
'MOCK_METHOD2(Bar,
\n
void(int a, char c
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testMultipleDefaultParameters
(
self
):
def
testMultipleDefaultParameters
(
self
):
...
@@ -196,9 +196,9 @@ class Foo {
...
@@ -196,9 +196,9 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(void, Bar, '
"MOCK_METHOD7(Bar,
\n
"
'(int a, char c, const int* const p, const std::string& s, char tab[], int const *& rp), '
"void(int a , char c , const int* const p , const std::string& s , char tab[] , int const *& rp ));"
,
'(override));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testConstDefaultParameter
(
self
):
def
testConstDefaultParameter
(
self
):
source
=
"""
source
=
"""
...
@@ -207,9 +207,9 @@ class Test {
...
@@ -207,9 +207,9 @@ class Test {
virtual bool Bar(const int test_arg = 42) = 0;
virtual bool Bar(const int test_arg = 42) = 0;
};
};
"""
"""
expected
=
'MOCK_METHOD1(Bar,
\n
bool(const int test_arg ));'
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(bool, Bar, (const int test_arg), (override));'
,
expected
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testConstRefDefaultParameter
(
self
):
def
testConstRefDefaultParameter
(
self
):
source
=
"""
source
=
"""
...
@@ -218,9 +218,9 @@ class Test {
...
@@ -218,9 +218,9 @@ class Test {
virtual bool Bar(const std::string& test_arg = "42" ) = 0;
virtual bool Bar(const std::string& test_arg = "42" ) = 0;
};
};
"""
"""
expected
=
'MOCK_METHOD1(Bar,
\n
bool(const std::string& test_arg ));'
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(bool, Bar, (const std::string& test_arg), (override));'
,
expected
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testRemovesCommentsWhenDefaultsArePresent
(
self
):
def
testRemovesCommentsWhenDefaultsArePresent
(
self
):
source
=
"""
source
=
"""
...
@@ -231,7 +231,7 @@ class Foo {
...
@@ -231,7 +231,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(void, Bar, (int a, char c), (override
));'
,
'MOCK_METHOD2(Bar,
\n
void(int a , char c
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testDoubleSlashCommentsInParameterListAreRemoved
(
self
):
def
testDoubleSlashCommentsInParameterListAreRemoved
(
self
):
...
@@ -244,7 +244,7 @@ class Foo {
...
@@ -244,7 +244,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(void, Bar, (int a, int b), (const, override
));'
,
'MOCK_CONST_METHOD2(Bar,
\n
void(int a, int b
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testCStyleCommentsInParameterListAreNotRemoved
(
self
):
def
testCStyleCommentsInParameterListAreNotRemoved
(
self
):
...
@@ -258,7 +258,7 @@ class Foo {
...
@@ -258,7 +258,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(const string&, Bar, (int, int b), (override
));'
,
'MOCK_METHOD2(Bar,
\n
const string&(int , int b
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testArgsOfTemplateTypes
(
self
):
def
testArgsOfTemplateTypes
(
self
):
...
@@ -268,7 +268,8 @@ class Foo {
...
@@ -268,7 +268,8 @@ class Foo {
virtual int Bar(const vector<int>& v, map<int, string>* output);
virtual int Bar(const vector<int>& v, map<int, string>* output);
};"""
};"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (const vector<int>& v, map<int, string>* output), (override));'
,
'MOCK_METHOD2(Bar,
\n
'
'int(const vector<int>& v, map<int, string>* output));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testReturnTypeWithOneTemplateArg
(
self
):
def
testReturnTypeWithOneTemplateArg
(
self
):
...
@@ -278,7 +279,7 @@ class Foo {
...
@@ -278,7 +279,7 @@ class Foo {
virtual vector<int>* Bar(int n);
virtual vector<int>* Bar(int n);
};"""
};"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(vector<int>*, Bar, (int n), (override
));'
,
'MOCK_METHOD1(Bar,
\n
vector<int>*(int n
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testReturnTypeWithManyTemplateArgs
(
self
):
def
testReturnTypeWithManyTemplateArgs
(
self
):
...
@@ -287,8 +288,13 @@ class Foo {
...
@@ -287,8 +288,13 @@ class Foo {
public:
public:
virtual map<int, string> Bar();
virtual map<int, string> Bar();
};"""
};"""
# Comparing the comment text is brittle - we'll think of something
# better in case this gets annoying, but for now let's keep it simple.
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD((map<int, string>), Bar, (), (override));'
,
'// The following line won
\'
t really compile, as the return
\n
'
'// type has multiple template arguments. To fix it, use a
\n
'
'// typedef for the return type.
\n
'
'MOCK_METHOD0(Bar,
\n
map<int, string>());'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testSimpleMethodInTemplatedClass
(
self
):
def
testSimpleMethodInTemplatedClass
(
self
):
...
@@ -300,7 +306,7 @@ class Foo {
...
@@ -300,7 +306,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (), (override
));'
,
'MOCK_METHOD0_T(Bar,
\n
int(
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testPointerArgWithoutNames
(
self
):
def
testPointerArgWithoutNames
(
self
):
...
@@ -310,7 +316,7 @@ class Foo {
...
@@ -310,7 +316,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (C*), (override
));'
,
'MOCK_METHOD1(Bar,
\n
int(C*
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testReferenceArgWithoutNames
(
self
):
def
testReferenceArgWithoutNames
(
self
):
...
@@ -320,7 +326,7 @@ class Foo {
...
@@ -320,7 +326,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (C&), (override
));'
,
'MOCK_METHOD1(Bar,
\n
int(C&
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
def
testArrayArgWithoutNames
(
self
):
def
testArrayArgWithoutNames
(
self
):
...
@@ -330,7 +336,7 @@ class Foo {
...
@@ -330,7 +336,7 @@ class Foo {
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
assertEqualIgnoreLeadingWhitespace
(
'MOCK_METHOD(int, Bar, (C[]), (override
));'
,
'MOCK_METHOD1(Bar,
\n
int(C[]
));'
,
self
.
GenerateMethodSource
(
source
))
self
.
GenerateMethodSource
(
source
))
...
@@ -366,14 +372,15 @@ namespace Baz {
...
@@ -366,14 +372,15 @@ namespace Baz {
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Foo, (), (override));
MOCK_METHOD0(Foo,
void());
};
};
} // namespace Baz
} // namespace Baz
} // namespace Foo
} // namespace Foo
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testClassWithStorageSpecifierMacro
(
self
):
def
testClassWithStorageSpecifierMacro
(
self
):
source
=
"""
source
=
"""
...
@@ -385,11 +392,12 @@ class STORAGE_SPECIFIER Test {
...
@@ -385,11 +392,12 @@ class STORAGE_SPECIFIER Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Foo, (), (override));
MOCK_METHOD0(Foo,
void());
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testTemplatedForwardDeclaration
(
self
):
def
testTemplatedForwardDeclaration
(
self
):
source
=
"""
source
=
"""
...
@@ -402,11 +410,12 @@ class Test {
...
@@ -402,11 +410,12 @@ class Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Foo, (), (override));
MOCK_METHOD0(Foo,
void());
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testTemplatedClass
(
self
):
def
testTemplatedClass
(
self
):
source
=
"""
source
=
"""
...
@@ -420,11 +429,12 @@ class Test {
...
@@ -420,11 +429,12 @@ class Test {
template <typename T0, typename T1>
template <typename T0, typename T1>
class MockTest : public Test<T0, T1> {
class MockTest : public Test<T0, T1> {
public:
public:
MOCK_METHOD(void, Foo, (), (override));
MOCK_METHOD0_T(Foo,
void());
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testTemplateInATemplateTypedef
(
self
):
def
testTemplateInATemplateTypedef
(
self
):
source
=
"""
source
=
"""
...
@@ -437,11 +447,12 @@ class Test {
...
@@ -437,11 +447,12 @@ class Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Bar, (const FooType& test_arg), (override));
MOCK_METHOD1(Bar,
void(const FooType& test_arg));
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testTemplateInATemplateTypedefWithComma
(
self
):
def
testTemplateInATemplateTypedefWithComma
(
self
):
source
=
"""
source
=
"""
...
@@ -455,11 +466,12 @@ class Test {
...
@@ -455,11 +466,12 @@ class Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Bar, (const FooType& test_arg), (override));
MOCK_METHOD1(Bar,
void(const FooType& test_arg));
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testEnumType
(
self
):
def
testEnumType
(
self
):
source
=
"""
source
=
"""
...
@@ -474,11 +486,12 @@ class Test {
...
@@ -474,11 +486,12 @@ class Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Foo, (), (override));
MOCK_METHOD0(Foo,
void());
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testEnumClassType
(
self
):
def
testEnumClassType
(
self
):
source
=
"""
source
=
"""
...
@@ -493,11 +506,12 @@ class Test {
...
@@ -493,11 +506,12 @@ class Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(void, Foo, (), (override));
MOCK_METHOD0(Foo,
void());
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
def
testStdFunction
(
self
):
def
testStdFunction
(
self
):
source
=
"""
source
=
"""
...
@@ -514,11 +528,12 @@ class Test {
...
@@ -514,11 +528,12 @@ class Test {
expected
=
"""
\
expected
=
"""
\
class MockTest : public Test {
class MockTest : public Test {
public:
public:
MOCK_METHOD(std::function<int (std::string)>, foo, (), (override));
MOCK_METHOD0(foo,
std::function<int (std::string)>());
};
};
"""
"""
self
.
assertEqualIgnoreLeadingWhitespace
(
expected
,
self
.
assertEqualIgnoreLeadingWhitespace
(
self
.
GenerateMocks
(
source
))
expected
,
self
.
GenerateMocks
(
source
))
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
...
...
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