From 713b0778709ba8ba2f8e437f0bbba16d57de7137 Mon Sep 17 00:00:00 2001 From: Josh Bodily Date: Thu, 10 Aug 2017 10:58:57 -0600 Subject: Fix scoped enum not working in gmock-gen.py --- googlemock/scripts/generator/cpp/ast.py | 3 +++ googlemock/scripts/generator/cpp/gmock_class_test.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'googlemock/scripts/generator/cpp') diff --git a/googlemock/scripts/generator/cpp/ast.py b/googlemock/scripts/generator/cpp/ast.py index 11cbe912..95074488 100755 --- a/googlemock/scripts/generator/cpp/ast.py +++ b/googlemock/scripts/generator/cpp/ast.py @@ -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 @@ -440,6 +440,24 @@ public: MOCK_METHOD1(Bar, 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)) -- cgit v1.2.3