diff options
Diffstat (limited to 'googlemock/scripts/generator/cpp')
| -rwxr-xr-x | googlemock/scripts/generator/cpp/ast.py | 9 | ||||
| -rwxr-xr-x | googlemock/scripts/generator/cpp/gmock_class_test.py | 18 | 
2 files changed, 24 insertions, 3 deletions
diff --git a/googlemock/scripts/generator/cpp/ast.py b/googlemock/scripts/generator/cpp/ast.py index 11cbe912..f14728b4 100755 --- a/googlemock/scripts/generator/cpp/ast.py +++ b/googlemock/scripts/generator/cpp/ast.py @@ -338,7 +338,7 @@ class Class(_GenericDeclaration):          # TODO(nnorwitz): handle namespaces, etc.          if self.bases:              for token_list in self.bases: -                # TODO(nnorwitz): bases are tokens, do name comparision. +                # TODO(nnorwitz): bases are tokens, do name comparison.                  for token in token_list:                      if token.name == node.name:                          return True @@ -381,7 +381,7 @@ class Function(_GenericDeclaration):      def Requires(self, node):          if self.parameters: -            # TODO(nnorwitz): parameters are tokens, do name comparision. +            # TODO(nnorwitz): parameters are tokens, do name comparison.              for p in self.parameters:                  if p.name == node.name:                      return True @@ -858,7 +858,7 @@ class AstBuilder(object):              last_token = self._GetNextToken()          return tokens, last_token -    # TODO(nnorwitz): remove _IgnoreUpTo() it shouldn't be necesary. +    # TODO(nnorwitz): remove _IgnoreUpTo() it shouldn't be necessary.      def _IgnoreUpTo(self, token_type, token):          unused_tokens = self._GetTokensUpTo(token_type, token) @@ -1264,6 +1264,9 @@ class AstBuilder(object):          return self._GetNestedType(Union)      def handle_enum(self): +        token = self._GetNextToken() +        if not (token.token_type == tokenize.NAME and token.name == 'class'): +            self._AddBackToken(token)          return self._GetNestedType(Enum)      def handle_auto(self): diff --git a/googlemock/scripts/generator/cpp/gmock_class_test.py b/googlemock/scripts/generator/cpp/gmock_class_test.py index 018f90a6..c53e6000 100755 --- a/googlemock/scripts/generator/cpp/gmock_class_test.py +++ b/googlemock/scripts/generator/cpp/gmock_class_test.py @@ -444,5 +444,23 @@ void(const FooType& test_arg));      self.assertEqualIgnoreLeadingWhitespace(          expected, self.GenerateMocks(source)) +  def testEnumClass(self): +    source = """ +class Test { + public: +  enum class Baz { BAZINGA }; +  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()  | 
