xref: /openbsd-src/gnu/llvm/clang/bindings/python/tests/cindex/test_access_specifiers.py (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
1*e5dd7070Spatrickimport os
2*e5dd7070Spatrickfrom clang.cindex import Config
3*e5dd7070Spatrickif 'CLANG_LIBRARY_PATH' in os.environ:
4*e5dd7070Spatrick    Config.set_library_path(os.environ['CLANG_LIBRARY_PATH'])
5*e5dd7070Spatrick
6*e5dd7070Spatrickfrom clang.cindex import AccessSpecifier
7*e5dd7070Spatrickfrom clang.cindex import Cursor
8*e5dd7070Spatrickfrom clang.cindex import TranslationUnit
9*e5dd7070Spatrick
10*e5dd7070Spatrickfrom .util import get_cursor
11*e5dd7070Spatrickfrom .util import get_tu
12*e5dd7070Spatrick
13*e5dd7070Spatrickimport unittest
14*e5dd7070Spatrick
15*e5dd7070Spatrick
16*e5dd7070Spatrickclass TestAccessSpecifiers(unittest.TestCase):
17*e5dd7070Spatrick    def test_access_specifiers(self):
18*e5dd7070Spatrick        """Ensure that C++ access specifiers are available on cursors"""
19*e5dd7070Spatrick
20*e5dd7070Spatrick        tu = get_tu("""
21*e5dd7070Spatrickclass test_class {
22*e5dd7070Spatrickpublic:
23*e5dd7070Spatrick  void public_member_function();
24*e5dd7070Spatrickprotected:
25*e5dd7070Spatrick  void protected_member_function();
26*e5dd7070Spatrickprivate:
27*e5dd7070Spatrick  void private_member_function();
28*e5dd7070Spatrick};
29*e5dd7070Spatrick""", lang = 'cpp')
30*e5dd7070Spatrick
31*e5dd7070Spatrick        test_class = get_cursor(tu, "test_class")
32*e5dd7070Spatrick        self.assertEqual(test_class.access_specifier, AccessSpecifier.INVALID)
33*e5dd7070Spatrick
34*e5dd7070Spatrick        public = get_cursor(tu.cursor, "public_member_function")
35*e5dd7070Spatrick        self.assertEqual(public.access_specifier, AccessSpecifier.PUBLIC)
36*e5dd7070Spatrick
37*e5dd7070Spatrick        protected = get_cursor(tu.cursor, "protected_member_function")
38*e5dd7070Spatrick        self.assertEqual(protected.access_specifier, AccessSpecifier.PROTECTED)
39*e5dd7070Spatrick
40*e5dd7070Spatrick        private = get_cursor(tu.cursor, "private_member_function")
41*e5dd7070Spatrick        self.assertEqual(private.access_specifier, AccessSpecifier.PRIVATE)
42