#!/usr/bin/env python
import threading
import dns
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, pickAvailablePort
class TestTrailingDataToBackend(DNSDistTest):
# because, contrary to the other ones, its
# responders allow trailing data and we don't want
# to mix things up.
- _testServerPort = 5360
+ _testServerPort = pickAvailablePort()
_verboseMode = True
_config_template = """
newServer{address="127.0.0.1:%s"}
addAction("added.trailing.tests.powerdns.com.", LuaAction(replaceTrailingData))
function fillBuffer(dq)
- local available = dq.size - dq.len
+ local available = 4096 - dq.len
+ if dq.tcp then
+ available = 65535 - dq.len
+ end
local tail = string.rep("A", available)
local success = dq:setTrailingData(tail)
if not success then
addAction("max.trailing.tests.powerdns.com.", LuaAction(fillBuffer))
function exceedBuffer(dq)
- local available = dq.size - dq.len
+ local available = 4096 - dq.len
+ if dq.tcp then
+ available = 65535 - dq.len
+ end
local tail = string.rep("A", available + 1)
local success = dq:setTrailingData(tail)
if not success then
# Respond REFUSED to queries with trailing data.
cls._UDPResponder = threading.Thread(name='UDP Responder', target=cls.UDPResponder, args=[cls._testServerPort, cls._toResponderQueue, cls._fromResponderQueue, dns.rcode.REFUSED])
- cls._UDPResponder.setDaemon(True)
+ cls._UDPResponder.daemon = True
cls._UDPResponder.start()
# Respond REFUSED to queries with trailing data.
cls._TCPResponder = threading.Thread(name='TCP Responder', target=cls.TCPResponder, args=[cls._testServerPort, cls._toResponderQueue, cls._fromResponderQueue, dns.rcode.REFUSED])
- cls._TCPResponder.setDaemon(True)
+ cls._TCPResponder.daemon = True
cls._TCPResponder.start()
def testTrailingPassthrough(self):
self.assertTrue(receivedQuery)
self.assertTrue(receivedResponse)
receivedQuery.id = query.id
- self.assertEquals(receivedQuery, query)
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedQuery, query)
+ self.assertEqual(receivedResponse, expectedResponse)
def testTrailingCapacity(self):
"""
self.assertTrue(receivedQuery)
self.assertTrue(receivedResponse)
receivedQuery.id = query.id
- self.assertEquals(receivedQuery, query)
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedQuery, query)
+ self.assertEqual(receivedResponse, expectedResponse)
def testTrailingLimited(self):
"""
sender = getattr(self, method)
(_, receivedResponse) = sender(query, response, useQueue=False)
self.assertTrue(receivedResponse)
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedResponse, expectedResponse)
def testTrailingAdded(self):
"""
self.assertTrue(receivedQuery)
self.assertTrue(receivedResponse)
receivedQuery.id = query.id
- self.assertEquals(receivedQuery, query)
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedQuery, query)
+ self.assertEqual(receivedResponse, expectedResponse)
class TestTrailingDataToDnsdist(DNSDistTest):
_verboseMode = True
self.assertTrue(receivedQuery)
self.assertTrue(receivedResponse)
receivedQuery.id = query.id
- self.assertEquals(query, receivedQuery)
- self.assertEquals(response, receivedResponse)
+ self.assertEqual(query, receivedQuery)
+ self.assertEqual(response, receivedResponse)
# Verify that queries with trailing data don't make it through.
(_, receivedResponse) = sender(raw, response, rawQuery=True, useQueue=False)
- self.assertEquals(receivedResponse, None)
+ self.assertEqual(receivedResponse, None)
def testTrailingRemoved(self):
"""
self.assertTrue(receivedQuery)
self.assertTrue(receivedResponse)
receivedQuery.id = query.id
- self.assertEquals(receivedQuery, query)
- self.assertEquals(receivedResponse, response)
+ self.assertEqual(receivedQuery, query)
+ self.assertEqual(receivedResponse, response)
def testTrailingRead(self):
"""
(_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedResponse, expectedResponse)
def testTrailingReplaced(self):
"""
(_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedResponse, expectedResponse)
def testTrailingReadUnsafe(self):
"""
(_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedResponse, expectedResponse)
def testTrailingReplacedUnsafe(self):
"""
(_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
- self.assertEquals(receivedResponse, expectedResponse)
+ self.assertEqual(receivedResponse, expectedResponse)