def test_kitchen_sink(self): if DEBUG: print >> sys.stderr, "===============testConfigContext_kitchen_sink(pyConfigContextTest)" for j in range(1, 5): proj_class_incr_debug('NetAddr') strings = [ # The next two originally failed intermittently '{"a":["1.2.3.4"]}', '{"cmdline":["192.168.122.1"]}', # All the remaining ones originally failed pretty reliably... '{"cmdline":["/usr/sbin/dnsmasq","-u","libvirt-dnsmasq","--strict-order","--bind-interfaces","--pid-file=/var/run/libvirt/network/default.pid","--conf-file=","--except-interface","lo","--listen-address","192.168.122.1"]}', '{"cmdline":["--listen-address","192.168.122.1"]}', '{"cmdline":["/usr/sbin/dnsmasq","-u","libvirt-dnsmasq","--strict-order","--bind-interfaces","--pid-file=/var/run/libvirt/network/default.pid","--conf-file=","--except-interface","lo","--listen-address","192.168.122.1","--dhcp-range","192.168.122.2,192.168.122.254","--dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases","--dhcp-lease-max=253","--dhcp-no-override" ]}', '{"cmdline":["--listen-address","192.168.122.1","--dhcp-range","192.168.122.2,192.168.122.254","--dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases","--dhcp-lease-max=253","--dhcp-no-override" ]}', '{"cmdline":["--listen-address","192.168.122.1","--dhcp-range"]}', '{"cmdline":["192.168.122.1","--dhcp-range"]}', '{"cmdline":["192.168.122.1","anything"]}', '{"cmdline":["192.168.122.1",1]}', '{"cmdline":["192.168.122.1",false]}', ] for s in strings: if DEBUG: print >> sys.stderr, ('Creating pyConfigContext("%s")' % s) sc = pyConfigContext(s) if DEBUG: print >> sys.stderr, ('sc.keys() == %s' % sc.keys()) for key in sc.keys(): elemcount = 0 if DEBUG: print >> sys.stderr, ('Looking at key %s: sc[key] = %s' % (key, sc[key])) for elem in sc[key]: if DEBUG: print >> sys.stderr, ('Looking at element %s' % str(elem)) self.assertNotEqual(str(elem), "") if isinstance(elem, pyAssimObj): if DEBUG: print '++++++++++++++++++ REFCOUNT(%s): %d' % ( str(elem), elem.refcount()) #CCref(elem._Cstruct) self.assertEqual(elem.refcount(), 2) if DEBUG: gc.collect() print >> sys.stderr, ":::::::::::::GC GARBAGE: %s" % gc.garbage foo = elem._Cstruct[0] while (hasattr(foo, 'baseclass')): foo = foo.baseclass if DEBUG: print >> sys.stderr, ":::::::::::::GC refcount %d, REFERRERS: %s" % ( sys.getrefcount(elem), gc.get_referrers(elem)) print >> sys.stderr, ":::::::::::::FOO: %s" % foo del elem if DEBUG: print '++++++++++++++++++ REFCOUNT SECOND VERSE: %s' % ( foo._refcount) elemcount += 1 if DEBUG: for j in range(1, 5): proj_class_decr_debug('NetAddr')
def test_kitchen_sink(self): if DEBUG: print >> sys.stderr, "===============testConfigContext_kitchen_sink(pyConfigContextTest)" for j in range(1, 5): proj_class_incr_debug("NetAddr") strings = [ # The next two originally failed intermittently '{"a":["1.2.3.4"]}', '{"cmdline":["192.168.122.1"]}', # All the remaining ones originally failed pretty reliably... '{"cmdline":["/usr/sbin/dnsmasq","-u","libvirt-dnsmasq","--strict-order","--bind-interfaces","--pid-file=/var/run/libvirt/network/default.pid","--conf-file=","--except-interface","lo","--listen-address","192.168.122.1"]}', '{"cmdline":["--listen-address","192.168.122.1"]}', '{"cmdline":["/usr/sbin/dnsmasq","-u","libvirt-dnsmasq","--strict-order","--bind-interfaces","--pid-file=/var/run/libvirt/network/default.pid","--conf-file=","--except-interface","lo","--listen-address","192.168.122.1","--dhcp-range","192.168.122.2,192.168.122.254","--dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases","--dhcp-lease-max=253","--dhcp-no-override" ]}', '{"cmdline":["--listen-address","192.168.122.1","--dhcp-range","192.168.122.2,192.168.122.254","--dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases","--dhcp-lease-max=253","--dhcp-no-override" ]}', '{"cmdline":["--listen-address","192.168.122.1","--dhcp-range"]}', '{"cmdline":["192.168.122.1","--dhcp-range"]}', '{"cmdline":["192.168.122.1","anything"]}', '{"cmdline":["192.168.122.1",1]}', '{"cmdline":["192.168.122.1",false]}', ] for s in strings: if DEBUG: print >> sys.stderr, ('Creating pyConfigContext("%s")' % s) sc = pyConfigContext(s) if DEBUG: print >> sys.stderr, ("sc.keys() == %s" % sc.keys()) for key in sc.keys(): elemcount = 0 if DEBUG: print >> sys.stderr, ("Looking at key %s: sc[key] = %s" % (key, sc[key])) for elem in sc[key]: if DEBUG: print >> sys.stderr, ("Looking at element %s" % str(elem)) self.assertNotEqual(str(elem), "") if isinstance(elem, pyAssimObj): if DEBUG: print "++++++++++++++++++ REFCOUNT(%s): %d" % (str(elem), elem.refcount()) # CCref(elem._Cstruct) self.assertEqual(elem.refcount(), 2) if DEBUG: gc.collect() print >> sys.stderr, ":::::::::::::GC GARBAGE: %s" % gc.garbage foo = elem._Cstruct[0] while hasattr(foo, "baseclass"): foo = foo.baseclass if DEBUG: print >> sys.stderr, ":::::::::::::GC refcount %d, REFERRERS: %s" % ( sys.getrefcount(elem), gc.get_referrers(elem), ) print >> sys.stderr, ":::::::::::::FOO: %s" % foo del elem if DEBUG: print "++++++++++++++++++ REFCOUNT SECOND VERSE: %s" % (foo._refcount) elemcount += 1 if DEBUG: for j in range(1, 5): proj_class_decr_debug("NetAddr")
def test_ipv6_strinit(self): 'Test constructing ipv6 addresses from strings.' if DEBUG: for j in range(1, 5): proj_class_incr_debug('NetAddr') if DEBUG: print >> sys.stderr, "===============test_ipv6_strinit(pyNetAddrTest)" ipv6 = pyNetAddr('::1') self.assertEqual(str(ipv6), '::1') ipv6 = pyNetAddr('::') self.assertEqual(str(ipv6), '::') ipv6 = pyNetAddr('0:1:2:3:4:5:6:7') self.assertEqual(str(ipv6), '0:1:2:3:4:5:6:7') ipv6 = pyNetAddr('::2:3:4:5:6:7') self.assertEqual(str(ipv6), '::2:3:4:5:6:7') ipv6 = pyNetAddr('[::]:1984') self.assertEqual(str(ipv6), '[::]:1984') ipv6 = pyNetAddr('[::1]:80') self.assertEqual(str(ipv6), '[::1]:80') ipv6 = pyNetAddr('[0:1:2:3:4:5:6:7]:8080') self.assertEqual(str(ipv6), '[0:1:2:3:4:5:6:7]:8080') ipv6 = pyNetAddr('::2:3:4:5:6:7') self.assertEqual(str(ipv6), '::2:3:4:5:6:7') ipv6 = pyNetAddr('::a:b:c:d:e:f') self.assertEqual(str(ipv6), '::a:b:c:d:e:f') ipv6 = pyNetAddr('::ffff:1.2.3.4') self.assertEqual(str(ipv6), '::ffff:1.2.3.4') ipv6 = pyNetAddr('[::ffff:1.2.3.4]:80') self.assertEqual(str(ipv6), '[::ffff:1.2.3.4]:80') ipv6 = pyNetAddr('[::ffff:255.255.255.255]:65535') self.assertEqual(str(ipv6), '[::ffff:255.255.255.255]:65535') self.assertRaises(ValueError, pyNetAddr, '0:1:2:3:4:5:6:7::') self.assertRaises(ValueError, pyNetAddr, '::fffff') self.assertRaises(ValueError, pyNetAddr, '[0:1:2:3:4:5:6:7]10') self.assertRaises(ValueError, pyNetAddr, '[0:1:2:3:4:5:6:7]:ff') self.assertRaises(ValueError, pyNetAddr, '0:1:2:3:4:5g:6:7') self.assertRaises(ValueError, pyNetAddr, '[0:1:2:3:4:5g:6:7]:10') self.assertRaises(ValueError, pyNetAddr, 'ffff:1.2.3.256') self.assertRaises(ValueError, pyNetAddr, 'ffff:1.2.3:4') self.assertRaises(ValueError, pyNetAddr, '[ffff:1.2.3:4]:99') self.assertRaises(ValueError, pyNetAddr, '[ffff:1.2.3.4]:65536') if DEBUG: for j in range(1, 5): proj_class_decr_debug('NetAddr')
def test_ipv6_strinit(self): "Test constructing ipv6 addresses from strings." if DEBUG: for j in range(1, 5): proj_class_incr_debug("NetAddr") if DEBUG: print >> sys.stderr, "===============test_ipv6_strinit(pyNetAddrTest)" ipv6 = pyNetAddr("::1") self.assertEqual(str(ipv6), "::1") ipv6 = pyNetAddr("::") self.assertEqual(str(ipv6), "::") ipv6 = pyNetAddr("0:1:2:3:4:5:6:7") self.assertEqual(str(ipv6), "0:1:2:3:4:5:6:7") ipv6 = pyNetAddr("::2:3:4:5:6:7") self.assertEqual(str(ipv6), "::2:3:4:5:6:7") ipv6 = pyNetAddr("[::]:1984") self.assertEqual(str(ipv6), "[::]:1984") ipv6 = pyNetAddr("[::1]:80") self.assertEqual(str(ipv6), "[::1]:80") ipv6 = pyNetAddr("[0:1:2:3:4:5:6:7]:8080") self.assertEqual(str(ipv6), "[0:1:2:3:4:5:6:7]:8080") ipv6 = pyNetAddr("::2:3:4:5:6:7") self.assertEqual(str(ipv6), "::2:3:4:5:6:7") ipv6 = pyNetAddr("::a:b:c:d:e:f") self.assertEqual(str(ipv6), "::a:b:c:d:e:f") ipv6 = pyNetAddr("::ffff:1.2.3.4") self.assertEqual(str(ipv6), "::ffff:1.2.3.4") ipv6 = pyNetAddr("[::ffff:1.2.3.4]:80") self.assertEqual(str(ipv6), "[::ffff:1.2.3.4]:80") ipv6 = pyNetAddr("[::ffff:255.255.255.255]:65535") self.assertEqual(str(ipv6), "[::ffff:255.255.255.255]:65535") self.assertRaises(ValueError, pyNetAddr, "0:1:2:3:4:5:6:7::") self.assertRaises(ValueError, pyNetAddr, "::fffff") self.assertRaises(ValueError, pyNetAddr, "[0:1:2:3:4:5:6:7]10") self.assertRaises(ValueError, pyNetAddr, "[0:1:2:3:4:5:6:7]:ff") self.assertRaises(ValueError, pyNetAddr, "0:1:2:3:4:5g:6:7") self.assertRaises(ValueError, pyNetAddr, "[0:1:2:3:4:5g:6:7]:10") self.assertRaises(ValueError, pyNetAddr, "ffff:1.2.3.256") self.assertRaises(ValueError, pyNetAddr, "ffff:1.2.3:4") self.assertRaises(ValueError, pyNetAddr, "[ffff:1.2.3:4]:99") self.assertRaises(ValueError, pyNetAddr, "[ffff:1.2.3.4]:65536") if DEBUG: for j in range(1, 5): proj_class_decr_debug("NetAddr")
def test_ipv6_strinit(self): 'Test constructing ipv6 addresses from strings.' if DEBUG: for j in range(1,5): proj_class_incr_debug('NetAddr') if DEBUG: print >>sys.stderr, "===============test_ipv6_strinit(pyNetAddrTest)" ipv6 = pyNetAddr('::1') self.assertEqual(str(ipv6),'::1') ipv6 = pyNetAddr('::') self.assertEqual(str(ipv6),'::') ipv6 = pyNetAddr('0:1:2:3:4:5:6:7') self.assertEqual(str(ipv6),'0:1:2:3:4:5:6:7') ipv6 = pyNetAddr('::2:3:4:5:6:7') self.assertEqual(str(ipv6),'::2:3:4:5:6:7') ipv6 = pyNetAddr('[::]:1984') self.assertEqual(str(ipv6),'[::]:1984') ipv6 = pyNetAddr('[::1]:80') self.assertEqual(str(ipv6),'[::1]:80') ipv6 = pyNetAddr('[0:1:2:3:4:5:6:7]:8080') self.assertEqual(str(ipv6),'[0:1:2:3:4:5:6:7]:8080') ipv6 = pyNetAddr('::2:3:4:5:6:7') self.assertEqual(str(ipv6),'::2:3:4:5:6:7') ipv6 = pyNetAddr('::a:b:c:d:e:f') self.assertEqual(str(ipv6),'::a:b:c:d:e:f') ipv6 = pyNetAddr('::ffff:1.2.3.4') self.assertEqual(str(ipv6),'::ffff:1.2.3.4') ipv6 = pyNetAddr('[::ffff:1.2.3.4]:80') self.assertEqual(str(ipv6),'[::ffff:1.2.3.4]:80') ipv6 = pyNetAddr('[::ffff:255.255.255.255]:65535') self.assertEqual(str(ipv6), '[::ffff:255.255.255.255]:65535') self.assertRaises(ValueError, pyNetAddr, '0:1:2:3:4:5:6:7::') self.assertRaises(ValueError, pyNetAddr, '::fffff') self.assertRaises(ValueError, pyNetAddr, '[0:1:2:3:4:5:6:7]10') self.assertRaises(ValueError, pyNetAddr, '[0:1:2:3:4:5:6:7]:ff') self.assertRaises(ValueError, pyNetAddr, '0:1:2:3:4:5g:6:7') self.assertRaises(ValueError, pyNetAddr, '[0:1:2:3:4:5g:6:7]:10') self.assertRaises(ValueError, pyNetAddr, 'ffff:1.2.3.256') self.assertRaises(ValueError, pyNetAddr, 'ffff:1.2.3:4') self.assertRaises(ValueError, pyNetAddr, '[ffff:1.2.3:4]:99') self.assertRaises(ValueError, pyNetAddr, '[ffff:1.2.3.4]:65536') if DEBUG: for j in range(1,5): proj_class_decr_debug('NetAddr')
def test_dns_strinit(self): 'Test constructing DNS addresses from strings.' if DEBUG: for j in range(1, 5): proj_class_incr_debug('NetAddr') if DEBUG: print >> sys.stderr, "===============test_DNS_strinit(pyNetAddrTest)" addr1 = pyNetAddr('www.linux-ha.org:80') self.assertEqual(addr1.port(), 80) try: addr2 = pyNetAddr('www.linux-ha.org:http') except ValueError: # Some systems use www instead of http... addr2 = pyNetAddr('www.linux-ha.org:www') # Note that this next test assumes that we're not getting round robin DNS... self.assertEqual(addr1, addr2) self.assertRaises(ValueError, pyNetAddr, 'www.google.com:') self.assertRaises(ValueError, pyNetAddr, 'www.google.com:nosuchport') self.assertRaises(ValueError, pyNetAddr, 'www.google.com:65536') self.assertRaises(ValueError, pyNetAddr, 'www.google.com:65537') self.assertRaises(ValueError, pyNetAddr, 'www.google.com:-1') # These next two may fail to raise ValueError - if your DNS is broken... try: pyNetAddr('www.frodo.middleearth') except ValueError: # This is correct behavior pass else: if not BROKENDNS: raise ValueError( 'Your DNS seems to be broken. Set environment variable BROKENDNS' ) try: pyNetAddr('www.frodo.middleearth:80') except ValueError: # This is correct behavior pass else: if not BROKENDNS: raise ValueError('Your DNS is broken - in kind of a weird way') if DEBUG: for j in range(1, 5): proj_class_decr_debug('NetAddr')
def test_dns_strinit(self): "Test constructing DNS addresses from strings." if DEBUG: for j in range(1, 5): proj_class_incr_debug("NetAddr") if DEBUG: print >> sys.stderr, "===============test_DNS_strinit(pyNetAddrTest)" addr1 = pyNetAddr("www.linux-ha.org:80") self.assertEqual(addr1.port(), 80) try: addr2 = pyNetAddr("www.linux-ha.org:http") except ValueError: # Some systems use www instead of http... addr2 = pyNetAddr("www.linux-ha.org:www") # Note that this next test assumes that we're not getting round robin DNS... self.assertEqual(addr1, addr2) self.assertRaises(ValueError, pyNetAddr, "www.google.com:") self.assertRaises(ValueError, pyNetAddr, "www.google.com:nosuchport") self.assertRaises(ValueError, pyNetAddr, "www.google.com:65536") self.assertRaises(ValueError, pyNetAddr, "www.google.com:65537") self.assertRaises(ValueError, pyNetAddr, "www.google.com:-1") # These next two may fail to raise ValueError - if your DNS is broken... try: pyNetAddr("www.frodo.middleearth") except ValueError: # This is correct behavior pass else: if not BROKENDNS: raise ValueError("Your DNS seems to be broken. Set environment variable BROKENDNS") try: pyNetAddr("www.frodo.middleearth:80") except ValueError: # This is correct behavior pass else: if not BROKENDNS: raise ValueError("Your DNS is broken - in kind of a weird way") if DEBUG: for j in range(1, 5): proj_class_decr_debug("NetAddr")