for listerner in DNSTapListeners:
listerner.close()
+ def getFirstDnstap(self):
+ try:
+ data = DNSTapServerParameters.queue.get(True, timeout=2.0)
+ except:
+ data = False
+ self.assertTrue(data)
+ dnstap = dnstap_pb2.Dnstap()
+ dnstap.ParseFromString(data)
+ return dnstap
+
class DNSTapDefaultTest(TestRecursorDNSTap):
"""
This test makes sure that we correctly export outgoing queries over DNSTap.
dnstapFrameStreamServer({"%s"})
""" % DNSTapServerParameters.path
- def getFirstDnstap(self):
- try:
- data = DNSTapServerParameters.queue.get(True, timeout=2.0)
- except:
- data = False
- self.assertTrue(data)
- dnstap = dnstap_pb2.Dnstap()
- dnstap.ParseFromString(data)
- return dnstap
-
def testA(self):
name = 'www.example.org.'
query = dns.message.make_query(name, 'A', want_dnssec=True)
checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, '127.0.0.1', '127.0.0.8')
# We don't expect a response
checkDnstapNoExtra(self, dnstap)
+ # We don't expect anything more, but we'll sleep anyway to avoid a LeakSanitizer race
+ time.sleep(1)
class DNSTapLogNoQueriesTest(TestRecursorDNSTap):
res = self.sendUDPQuery(query)
self.assertNotEqual(res, None)
- # We don't expect anything
+ # We don't expect anything more
time.sleep(1)
self.assertTrue(DNSTapServerParameters.queue.empty())
cls.createConfigDir(path)
super(DNSTapLogNODTest, cls).generateRecursorConfig(confdir)
- def getFirstDnstap(self):
- try:
- data = DNSTapServerParameters.queue.get(True, timeout=2.0)
- except:
- data = False
- self.assertTrue(data)
- dnstap = dnstap_pb2.Dnstap()
- dnstap.ParseFromString(data)
- return dnstap
-
def testA(self):
name = 'types.example.'
query = dns.message.make_query(name, 'A', want_dnssec=True)
checkDnstapNOD(self, dnstap, dnstap_pb2.UDP, '127.0.0.1', '127.0.0.1', 5300, name)
# We don't expect a response
checkDnstapNoExtra(self, dnstap)
+ # We don't expect anything more
+ time.sleep(1)
+ self.assertTrue(DNSTapServerParameters.queue.empty())
class DNSTapLogUDRTest(TestRecursorDNSTap):
cls.createConfigDir(path)
super(DNSTapLogUDRTest, cls).generateRecursorConfig(confdir)
- def getFirstDnstap(self):
- try:
- data = DNSTapServerParameters.queue.get(True, timeout=2.0)
- except:
- data = False
- self.assertTrue(data)
- dnstap = dnstap_pb2.Dnstap()
- dnstap.ParseFromString(data)
- return dnstap
-
def testA(self):
name = 'types.example.'
query = dns.message.make_query(name, 'A', want_dnssec=True)
checkDnstapUDR(self, dnstap, dnstap_pb2.UDP, '127.0.0.1', '127.0.0.1', 5300, name)
# We don't expect a rpasesponse
checkDnstapNoExtra(self, dnstap)
+ # We don't expect anything more
+ time.sleep(1)
+ self.assertTrue(DNSTapServerParameters.queue.empty())
class DNSTapLogNODUDRTest(TestRecursorDNSTap):
cls.createConfigDir(path)
super(DNSTapLogNODUDRTest, cls).generateRecursorConfig(confdir)
- def getFirstDnstap(self):
- try:
- data = DNSTapServerParameters.queue.get(True, timeout=2.0)
- except:
- data = False
- self.assertTrue(data)
- dnstap = dnstap_pb2.Dnstap()
- dnstap.ParseFromString(data)
- return dnstap
-
def testA(self):
name = 'types.example.'
query = dns.message.make_query(name, 'A', want_dnssec=True)
checkDnstapNOD(self, dnstap, dnstap_pb2.UDP, '127.0.0.1', '127.0.0.1', 5300, name)
checkDnstapNoExtra(self, dnstap)
+ # We don't expect anything more
+ time.sleep(1)
+ self.assertTrue(DNSTapServerParameters.queue.empty())