"googlemock/git@developer.sourcefind.cn:yangql/googletest.git" did not exist on "159c9ad23e8b276e8c975bb8621c81d4df5fd863"
Commit c26f9695 authored by kosak's avatar kosak
Browse files

Make the gmock generator work with the 'override' keyword. Also pull in gtest 680.

parent b6a34886
...@@ -70,6 +70,7 @@ FUNCTION_DTOR = 0x10 ...@@ -70,6 +70,7 @@ FUNCTION_DTOR = 0x10
FUNCTION_ATTRIBUTE = 0x20 FUNCTION_ATTRIBUTE = 0x20
FUNCTION_UNKNOWN_ANNOTATION = 0x40 FUNCTION_UNKNOWN_ANNOTATION = 0x40
FUNCTION_THROW = 0x80 FUNCTION_THROW = 0x80
FUNCTION_OVERRIDE = 0x100
""" """
These are currently unused. Should really handle these properly at some point. These are currently unused. Should really handle these properly at some point.
...@@ -1027,6 +1028,8 @@ class AstBuilder(object): ...@@ -1027,6 +1028,8 @@ class AstBuilder(object):
# Consume everything between the (parens). # Consume everything between the (parens).
unused_tokens = list(self._GetMatchingChar('(', ')')) unused_tokens = list(self._GetMatchingChar('(', ')'))
token = self._GetNextToken() token = self._GetNextToken()
elif modifier_token.name == 'override':
modifiers |= FUNCTION_OVERRIDE
elif modifier_token.name == modifier_token.name.upper(): elif modifier_token.name == modifier_token.name.upper():
# HACK(nnorwitz): assume that all upper-case names # HACK(nnorwitz): assume that all upper-case names
# are some macro we aren't expanding. # are some macro we aren't expanding.
...@@ -1285,7 +1288,7 @@ class AstBuilder(object): ...@@ -1285,7 +1288,7 @@ class AstBuilder(object):
if token2.token_type == tokenize.SYNTAX and token2.name == '~': if token2.token_type == tokenize.SYNTAX and token2.name == '~':
return self.GetMethod(FUNCTION_VIRTUAL + FUNCTION_DTOR, None) return self.GetMethod(FUNCTION_VIRTUAL + FUNCTION_DTOR, None)
assert token.token_type == tokenize.NAME or token.name == '::', token assert token.token_type == tokenize.NAME or token.name == '::', token
return_type_and_name = self._GetTokensUpTo(tokenize.SYNTAX, '(') return_type_and_name = self._GetTokensUpTo(tokenize.SYNTAX, '(') # )
return_type_and_name.insert(0, token) return_type_and_name.insert(0, token)
if token2 is not token: if token2 is not token:
return_type_and_name.insert(1, token2) return_type_and_name.insert(1, token2)
......
...@@ -49,7 +49,8 @@ _INDENT = 2 ...@@ -49,7 +49,8 @@ _INDENT = 2
def _GenerateMethods(output_lines, source, class_node): def _GenerateMethods(output_lines, source, class_node):
function_type = ast.FUNCTION_VIRTUAL | ast.FUNCTION_PURE_VIRTUAL function_type = (ast.FUNCTION_VIRTUAL | ast.FUNCTION_PURE_VIRTUAL |
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
......
...@@ -60,6 +60,17 @@ class Foo { ...@@ -60,6 +60,17 @@ class Foo {
public: public:
virtual int Bar(); virtual int Bar();
}; };
"""
self.assertEqualIgnoreLeadingWhitespace(
'MOCK_METHOD0(Bar,\nint());',
self.GenerateMethodSource(source))
def testSimpleOverrideMethod(self):
source = """
class Foo {
public:
int Bar() override;
};
""" """
self.assertEqualIgnoreLeadingWhitespace( self.assertEqualIgnoreLeadingWhitespace(
'MOCK_METHOD0(Bar,\nint());', 'MOCK_METHOD0(Bar,\nint());',
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment