diff options
author | Josh Bodily <joshbodily@gmail.com> | 2017-08-10 10:58:57 -0600 |
---|---|---|
committer | Josh Bodily <joshbodily@gmail.com> | 2017-08-10 10:58:57 -0600 |
commit | 713b0778709ba8ba2f8e437f0bbba16d57de7137 (patch) | |
tree | e53d35fb5ef2b2c048773b344f30972eb0fe07bb | |
parent | 75f0723c4522ae70724d71b1facdde3ecdf35975 (diff) | |
download | googletest-713b0778709ba8ba2f8e437f0bbba16d57de7137.tar.gz googletest-713b0778709ba8ba2f8e437f0bbba16d57de7137.tar.bz2 googletest-713b0778709ba8ba2f8e437f0bbba16d57de7137.zip |
Fix scoped enum not working in gmock-gen.py
-rwxr-xr-x | googlemock/scripts/generator/cpp/ast.py | 3 | ||||
-rwxr-xr-x | googlemock/scripts/generator/cpp/gmock_class_test.py | 18 |
2 files changed, 21 insertions, 0 deletions
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 @@ -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() |