Make the gmock generator work with the 'override' keyword. Also pull in gtest 680.
This commit is contained in:
parent
b6a348862b
commit
c26f969579
|
@ -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):
|
||||||
# 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):
|
||||||
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
|
||||||
|
|
||||||
|
|
||||||
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 {
|
||||||
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());',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user