summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sanitytest.py44
1 files changed, 26 insertions, 18 deletions
diff --git a/sanitytest.py b/sanitytest.py
index 04cf0e4..a87cbdc 100644
--- a/sanitytest.py
+++ b/sanitytest.py
@@ -349,25 +349,33 @@ for klass in gotfunctions:
if verbose:
print("PASS %s.%s" % (klass, func))
-# Phase 7: Validate that all the low level C APIs have binding
-for name, (klass, func, cname) in sorted(finalklassmap.items()):
- pyname = cname
- if pyname == "virSetErrorFunc":
- pyname = "virRegisterErrorHandler"
- elif pyname == "virConnectListDomains":
- pyname = "virConnectListDomainsID"
-
- # These exist in C and exist in python, but we've got
- # a pure-python impl so don't check them
- if name in ["virStreamRecvAll", "virStreamSendAll",
- "virStreamSparseRecvAll", "virStreamSparseSendAll"]:
- continue
- try:
- thing = getattr(libvirt.libvirtmod, pyname)
- except AttributeError:
- print("FAIL libvirt.libvirtmod.%s (C binding does not exist)" % pyname)
- fail = True
+# Validate that all the low level C APIs have binding
+def validate_c_api_bindings_present(finalklassmap):
+ for name, (klass, func, cname) in sorted(finalklassmap.items()):
+ pyname = cname
+ if pyname == "virSetErrorFunc":
+ pyname = "virRegisterErrorHandler"
+ elif pyname == "virConnectListDomains":
+ pyname = "virConnectListDomainsID"
+
+ # These exist in C and exist in python, but we've got
+ # a pure-python impl so don't check them
+ if name in ["virStreamRecvAll", "virStreamSendAll",
+ "virStreamSparseRecvAll", "virStreamSparseSendAll"]:
+ continue
+
+ try:
+ thing = getattr(libvirt.libvirtmod, pyname)
+ except AttributeError:
+ raise Exception("libvirt.libvirtmod.%s (C binding does not exist)" % pyname)
+
+
+try:
+ validate_c_api_bindings_present(finalklassmap)
+except Exception as e:
+ print("FAIL: %s" % e)
+ fail = True
if fail:
sys.exit(1)