diff options
author | kosak <kosak@google.com> | 2014-11-17 02:42:33 (GMT) |
---|---|---|
committer | kosak <kosak@google.com> | 2014-11-17 02:42:33 (GMT) |
commit | f58b49a2b14f9903d3118ffdd1485cbbe7a230d7 (patch) | |
tree | 300198d564b4e3daf6b611f3fb6643466b401c8d | |
parent | 6e87b780d34837f221f410a66c5b55d5bb76e45d (diff) | |
download | googletest-f58b49a2b14f9903d3118ffdd1485cbbe7a230d7.zip googletest-f58b49a2b14f9903d3118ffdd1485cbbe7a230d7.tar.gz googletest-f58b49a2b14f9903d3118ffdd1485cbbe7a230d7.tar.bz2 |
Handle parameters without variable names when the type includes *, & or [].
-rwxr-xr-x | scripts/generator/cpp/ast.py | 7 | ||||
-rwxr-xr-x | scripts/generator/cpp/gmock_class_test.py | 30 |
2 files changed, 33 insertions, 4 deletions
diff --git a/scripts/generator/cpp/ast.py b/scripts/generator/cpp/ast.py index 3886671..9504cee 100755 --- a/scripts/generator/cpp/ast.py +++ b/scripts/generator/cpp/ast.py @@ -598,10 +598,9 @@ class TypeConverter(object): first_token = None default = [] - def AddParameter(): + def AddParameter(end): if default: del default[0] # Remove flag. - end = type_modifiers[-1].end parts = self.DeclarationToParts(type_modifiers, True) (name, type_name, templated_types, modifiers, unused_default, unused_other_tokens) = parts @@ -625,7 +624,7 @@ class TypeConverter(object): continue if s.name == ',': - AddParameter() + AddParameter(s.start) name = type_name = '' type_modifiers = [] pointer = reference = array = False @@ -646,7 +645,7 @@ class TypeConverter(object): default.append(s) else: type_modifiers.append(s) - AddParameter() + AddParameter(tokens[-1].end) return result def CreateReturnType(self, return_type_seq): diff --git a/scripts/generator/cpp/gmock_class_test.py b/scripts/generator/cpp/gmock_class_test.py index 361dad7..ae3739a 100755 --- a/scripts/generator/cpp/gmock_class_test.py +++ b/scripts/generator/cpp/gmock_class_test.py @@ -219,6 +219,36 @@ class Foo { 'MOCK_METHOD0_T(Bar,\nint());', self.GenerateMethodSource(source)) + def testPointerArgWithoutNames(self): + source = """ +class Foo { + virtual int Bar(C*); +}; +""" + self.assertEqualIgnoreLeadingWhitespace( + 'MOCK_METHOD1(Bar,\nint(C*));', + self.GenerateMethodSource(source)) + + def testReferenceArgWithoutNames(self): + source = """ +class Foo { + virtual int Bar(C&); +}; +""" + self.assertEqualIgnoreLeadingWhitespace( + 'MOCK_METHOD1(Bar,\nint(C&));', + self.GenerateMethodSource(source)) + + def testArrayArgWithoutNames(self): + source = """ +class Foo { + virtual int Bar(C[]); +}; +""" + self.assertEqualIgnoreLeadingWhitespace( + 'MOCK_METHOD1(Bar,\nint(C[]));', + self.GenerateMethodSource(source)) + class GenerateMocksTest(TestCase): |