summaryrefslogtreecommitdiffstats
path: root/clang/bindings/python/tests
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-04-25 02:58:03 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-04-25 02:58:03 +0000
commit05f9613610aba1f041e79a2efbb4dc32ebaa3e70 (patch)
treeb93508bb28e647d22572eb923258aa88fc3276f4 /clang/bindings/python/tests
parentb59d7c73b0035b16ed59d0b518697185709df56b (diff)
downloadbcm5719-llvm-05f9613610aba1f041e79a2efbb4dc32ebaa3e70.tar.gz
bcm5719-llvm-05f9613610aba1f041e79a2efbb4dc32ebaa3e70.zip
bindings: expose C++ access specifiers
Expose the enum CX_CXXAccessSpecifier in the python bindings as a property of the cursor. If access specifier is not applicable to the node, return the INVALID specifier rather than raising an exception. Patch by Tamás Szeli! llvm-svn: 207173
Diffstat (limited to 'clang/bindings/python/tests')
-rw-r--r--clang/bindings/python/tests/cindex/test_access_specifiers.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/clang/bindings/python/tests/cindex/test_access_specifiers.py b/clang/bindings/python/tests/cindex/test_access_specifiers.py
new file mode 100644
index 00000000000..cfa04dc8657
--- /dev/null
+++ b/clang/bindings/python/tests/cindex/test_access_specifiers.py
@@ -0,0 +1,34 @@
+
+from clang.cindex import AccessSpecifier
+from clang.cindex import Cursor
+from clang.cindex import TranslationUnit
+
+from .util import get_cursor
+from .util import get_tu
+
+def test_access_specifiers():
+ """Ensure that C++ access specifiers are available on cursors"""
+
+ tu = get_tu("""
+class test_class {
+public:
+ void public_member_function();
+protected:
+ void protected_member_function();
+private:
+ void private_member_function();
+};
+""", lang = 'cpp')
+
+ test_class = get_cursor(tu, "test_class")
+ assert test_class.access_specifier == AccessSpecifier.INVALID;
+
+ public = get_cursor(tu.cursor, "public_member_function")
+ assert public.access_specifier == AccessSpecifier.PUBLIC
+
+ protected = get_cursor(tu.cursor, "protected_member_function")
+ assert protected.access_specifier == AccessSpecifier.PROTECTED
+
+ private = get_cursor(tu.cursor, "private_member_function")
+ assert private.access_specifier == AccessSpecifier.PRIVATE
+
OpenPOWER on IntegriCloud