summaryrefslogtreecommitdiff
path: root/contrib/python/examples/test_dname.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/python/examples/test_dname.py')
-rwxr-xr-xcontrib/python/examples/test_dname.py474
1 files changed, 474 insertions, 0 deletions
diff --git a/contrib/python/examples/test_dname.py b/contrib/python/examples/test_dname.py
new file mode 100755
index 0000000..07e0a85
--- /dev/null
+++ b/contrib/python/examples/test_dname.py
@@ -0,0 +1,474 @@
+#!/usr/bin/env python
+
+#
+# ldns_dname testing script.
+#
+# Do not use constructs that differ between Python 2 and 3.
+# Use write on stdout or stderr.
+#
+
+
+import ldns
+import sys
+import os
+import inspect
+
+
+class_name = "ldns_dname"
+method_name = None
+error_detected = False
+temp_fname = "tmp_dname.txt"
+
+
+def set_error():
+ """
+ Writes an error message and sets error flag.
+ """
+ global class_name
+ global method_name
+ global error_detected
+ error_detected = True
+ sys.stderr.write("(line %d): malfunctioning method %s.\n" % \
+ (inspect.currentframe().f_back.f_lineno, method_name))
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".__init__()"
+ rdf1 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "test.nic.cz.")
+ rdf2 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, "217.31.205.50")
+ try:
+ dname = ldns.ldns_dname("www.nic.cz.")
+ if not isinstance(dname, ldns.ldns_dname):
+ set_error()
+ except:
+ set_error()
+ #
+ # Error when printing a dname wich was created fron an empty string.
+ # Must find out why.
+ #
+ try:
+ dname = ldns.ldns_dname(rdf1)
+ if not isinstance(dname, ldns.ldns_dname):
+ set_error()
+ except:
+ set_error()
+ # Test whether rdf1 and dname independent.
+ dname.cat(dname)
+ if dname.__str__() == rdf1.__str__():
+ set_error()
+ # Test whether rdf1 and dname are dependent.
+ dname = ldns.ldns_dname(rdf1, clone=False)
+ dname.cat(dname)
+ if dname.__str__() != rdf1.__str__():
+ set_error()
+ # Test whether constructs from non-dname rdfs.
+ try:
+ dname = ldns.ldns_dname(rdf2)
+ set_error()
+ except TypeError:
+ pass
+ except:
+ set_error()
+ try:
+ dname = ldns.ldns_dname(1)
+ set_error()
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".[comparison operators]"
+ dn1 = ldns.ldns_dname("a.test")
+ dn2 = ldns.ldns_dname("b.test")
+ try:
+ ret = dn1 < dn2
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn2 < dn1
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 <= dn2
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn2 <= dn1
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 == dn2
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 == dn1
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 != dn2
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 != dn1
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 > dn2
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn2 > dn1
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1 >= dn2
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn2 >= dn1
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".absolute()"
+ dname = ldns.ldns_dname("www.nic.cz.")
+ try:
+ ret = dname.absolute()
+ if not isinstance(ret, bool):
+ set_error()
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".cat()"
+ rdf1 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "test.nic.cz.")
+ rdf2 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, "217.31.205.50")
+ dname = ldns.ldns_dname("www.nic.cz.")
+ try:
+ ret = dname.cat(dname)
+ if ret != ldns.LDNS_STATUS_OK:
+ set_error()
+ if dname.__str__() != "www.nic.cz.www.nic.cz.":
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dname.cat(rdf1)
+ if ret != ldns.LDNS_STATUS_OK:
+ set_error()
+ if dname.__str__() != "www.nic.cz.www.nic.cz.test.nic.cz.":
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dname.cat(rdf2)
+ if ret == ldns.LDNS_STATUS_OK:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dname.cat("")
+ set_error()
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".cat_clone()"
+ rdf1 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "test.nic.cz.")
+ rdf2 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, "217.31.205.50")
+ dname = ldns.ldns_dname("www.nic.cz.")
+ try:
+ ret = dname.cat_clone(dname)
+ if not isinstance(ret, ldns.ldns_dname):
+ set_error()
+ if ret.__str__() != "www.nic.cz.www.nic.cz.":
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dname.cat_clone(rdf1)
+ if not isinstance(ret, ldns.ldns_dname):
+ set_error()
+ if ret.__str__() != "www.nic.cz.test.nic.cz.":
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dname.cat_clone(rdf2)
+ if ret != None:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dname.cat_clone("")
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".interval()"
+ dn1 = ldns.ldns_dname("a.ns.nic.cz.")
+ dn2 = ldns.ldns_dname("b.ns.nic.cz.")
+ dn3 = ldns.ldns_dname("c.ns.nic.cz.")
+ try:
+ ret = dn1.interval(dn2, dn3)
+ if ret != -1:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn2.interval(dn1, dn3)
+ if ret != 1:
+ set_error()
+ except:
+ set_error()
+ rdf4 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "d.ns.nic.cz.")
+ rdf5 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, "194.0.12.1")
+ try:
+ ret = dn1.interval(dn2, rdf4)
+ if ret != -1:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn2.interval(dn1, rdf4)
+ if ret != 1:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1.interval(dn2, rdf5)
+ set_error()
+ except Exception:
+ pass
+ except:
+ set_error()
+ try:
+ ret = dn1.interval(dn2, "")
+ set_error()
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".is_subdomain()"
+ dn1 = ldns.ldns_dname("nic.cz.")
+ dn2 = ldns.ldns_dname("www.nic.cz.")
+ rdf3 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "www.nic.cz.")
+ try:
+ ret = dn1.is_subdomain(dn2)
+ if not isinstance(ret, bool):
+ set_error()
+ if ret == True:
+ set_error()
+ ret = dn2.is_subdomain(dn1)
+ if ret != True:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1.is_subdomain(rdf3)
+ if not isinstance(ret, bool):
+ set_error()
+ if ret == True:
+ set_error()
+ except:
+ set_error()
+ rdf4 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, "194.0.12.1")
+ try:
+ ret = dn1.is_subdomain(rdf4)
+ if ret != False:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn1.is_subdomain("")
+ set_error()
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".label()"
+ dn = ldns.ldns_dname("nic.cz.")
+ try:
+ ret = dn.label(0)
+ if not isinstance(ret, ldns.ldns_dname):
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn.label(10)
+ if ret != None:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn.label("")
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".label_count()"
+ dn = ldns.ldns_dname("www.nic.cz.")
+ try:
+ ret = dn.label_count()
+ if (not isinstance(ret, int)) and (not isinstance(ret, long)):
+ set_error()
+ if ret != 3:
+ set_error()
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".left_chop()"
+ dn = ldns.ldns_dname("www.nic.cz.")
+ try:
+ ret = dn.left_chop()
+ if not isinstance(ret, ldns.ldns_dname):
+ set_error()
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".make_canonical()"
+ dn = ldns.ldns_dname("WWW.NIC.CZ.")
+ try:
+ dn.make_canonical()
+ if dn.__str__() != "www.nic.cz.":
+ set_error()
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".new_frm_rdf()"
+ # Tested via constructor call.
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".new_frm_str()"
+ # Tested via constructor call.
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".reverse()"
+ dn = ldns.ldns_dname("www.nic.cz.")
+ try:
+ ret = dn.reverse()
+ if not isinstance(ret, ldns.ldns_dname):
+ set_error()
+ if ret.__str__() != "cz.nic.www.":
+ set_error()
+ except:
+ set_error()
+
+
+#if not error_detected:
+if True:
+ method_name = class_name + ".write_to_buffer()"
+ dn = ldns.ldns_dname("www.nic.cz.")
+ buf = ldns.ldns_buffer(1024)
+ try:
+ ret = dn.write_to_buffer(buf)
+ if ret != ldns.LDNS_STATUS_OK:
+ set_error()
+ if buf.position() != 12:
+ set_error()
+ except:
+ set_error()
+ try:
+ ret = dn.write_to_buffer("")
+ except TypeError:
+ pass
+ except:
+ set_error()
+
+
+if not error_detected:
+ sys.stdout.write("%s: passed.\n" % (os.path.basename(__file__)))
+else:
+ sys.stdout.write("%s: errors detected.\n" % (os.path.basename(__file__)))
+ sys.exit(1)