brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · ca2bbd3 Raw
42 lines · python
1import os2 3from clang.cindex import AccessSpecifier, Config4 5if "CLANG_LIBRARY_PATH" in os.environ:6    Config.set_library_path(os.environ["CLANG_LIBRARY_PATH"])7 8import unittest9 10from .util import get_cursor, get_tu11 12 13class TestAccessSpecifiers(unittest.TestCase):14    def test_access_specifiers(self):15        """Ensure that C++ access specifiers are available on cursors"""16 17        tu = get_tu(18            """19class test_class {20public:21  void public_member_function();22protected:23  void protected_member_function();24private:25  void private_member_function();26};27""",28            lang="cpp",29        )30 31        test_class = get_cursor(tu, "test_class")32        self.assertEqual(test_class.access_specifier, AccessSpecifier.INVALID)33 34        public = get_cursor(tu.cursor, "public_member_function")35        self.assertEqual(public.access_specifier, AccessSpecifier.PUBLIC)36 37        protected = get_cursor(tu.cursor, "protected_member_function")38        self.assertEqual(protected.access_specifier, AccessSpecifier.PROTECTED)39 40        private = get_cursor(tu.cursor, "private_member_function")41        self.assertEqual(private.access_specifier, AccessSpecifier.PRIVATE)42