Adding support to gmock_gen for nested templates.
This commit is contained in:
		| @@ -496,9 +496,10 @@ class TypeConverter(object): | ||||
|                 else: | ||||
|                     names.append(t.name) | ||||
|             name = ''.join(names) | ||||
|             result.append(Type(name_tokens[0].start, name_tokens[-1].end, | ||||
|                                name, templated_types, modifiers, | ||||
|                                reference, pointer, array)) | ||||
|             if name_tokens: | ||||
|                 result.append(Type(name_tokens[0].start, name_tokens[-1].end, | ||||
|                                    name, templated_types, modifiers, | ||||
|                                    reference, pointer, array)) | ||||
|             del name_tokens[:] | ||||
|  | ||||
|         i = 0 | ||||
|   | ||||
| @@ -407,6 +407,42 @@ void()); | ||||
|     self.assertEqualIgnoreLeadingWhitespace( | ||||
|         expected, self.GenerateMocks(source)) | ||||
|  | ||||
|   def testTemplateInATemplateTypedef(self): | ||||
|     source = """ | ||||
| class Test { | ||||
|  public: | ||||
|   typedef std::vector<std::list<int>> FooType; | ||||
|   virtual void Bar(const FooType& test_arg); | ||||
| }; | ||||
| """ | ||||
|     expected = """\ | ||||
| class MockTest : public Test { | ||||
| public: | ||||
| MOCK_METHOD1(Bar, | ||||
| void(const FooType& test_arg)); | ||||
| }; | ||||
| """ | ||||
|     self.assertEqualIgnoreLeadingWhitespace( | ||||
|         expected, self.GenerateMocks(source)) | ||||
|  | ||||
|   def testTemplateInATemplateTypedefWithComma(self): | ||||
|     source = """ | ||||
| class Test { | ||||
|  public: | ||||
|   typedef std::function<void( | ||||
|       const vector<std::list<int>>&, int> FooType; | ||||
|   virtual void Bar(const FooType& test_arg); | ||||
| }; | ||||
| """ | ||||
|     expected = """\ | ||||
| class MockTest : public Test { | ||||
| public: | ||||
| MOCK_METHOD1(Bar, | ||||
| void(const FooType& test_arg)); | ||||
| }; | ||||
| """ | ||||
|     self.assertEqualIgnoreLeadingWhitespace( | ||||
|         expected, self.GenerateMocks(source)) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|   unittest.main() | ||||
|   | ||||
| @@ -173,7 +173,7 @@ def GetTokens(source): | ||||
|             token_type = SYNTAX | ||||
|             i += 1 | ||||
|             new_ch = source[i] | ||||
|             if new_ch == c: | ||||
|             if new_ch == c and c != '>':         # Treat ">>" as two tokens. | ||||
|                 i += 1 | ||||
|             elif c == '-' and new_ch == '>': | ||||
|                 i += 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 kosak
					kosak