[clang] [libclang/python] Ensure all library functions are registered (PR #140015)
Jannick Kremer via cfe-commits
cfe-commits at lists.llvm.org
Thu May 15 06:13:35 PDT 2025
================
@@ -0,0 +1,17 @@
+import os
+
+from clang.cindex import Config, conf, FUNCTION_LIST
+
+if "CLANG_LIBRARY_PATH" in os.environ:
+ Config.set_library_path(os.environ["CLANG_LIBRARY_PATH"])
+
+import unittest
+
+
+class TestIndex(unittest.TestCase):
+ def test_functions_registered(self):
+ IGNORED = set(["_FuncPtr", "_name", "_handle"])
+ lib_functions = set(vars(conf.lib).keys())
----------------
DeinAlptraum wrote:
> What stop us from listing all exported functions?
1. This functionality doesn't exist in `ctypes` and seems to require at least a non-STL library
2. Assuming we had those, what do you want with that? Our only heuristic is "functions not in `FUNCTION_LIST`" which would include both a) functions used in `cindex.py` and b) functions exposed but not used in `cindex.py` with no way to distinguish them. Or did you mean to add entries for all libclang.so functions to `FUNCTION_LIST`, regardless whether they are used in the Python bindings?
https://github.com/llvm/llvm-project/pull/140015
More information about the cfe-commits
mailing list