]> git.ipfire.org Git - thirdparty/pdns.git/blame - regression-tests.dnsdist/test_TCPOnly.py
dnsdist: Add regression tests for eBPF blocks (static / dynamic)
[thirdparty/pdns.git] / regression-tests.dnsdist / test_TCPOnly.py
CommitLineData
33cf6ab4
RG
1#!/usr/bin/env python
2import dns
3
4from dnsdisttests import DNSDistTest
5
6class TestTCPOnly(DNSDistTest):
7
8 _config_template = """
9 newServer{address="127.0.0.1:%s", tcpOnly=true}
10 """
11
12 def testUDP(self):
13 """
14 TCP Only: UDP query is sent via TCP
15 """
16 name = 'udp.tcp-only.test.powerdns.com.'
17 query = dns.message.make_query(name, 'A', 'IN')
18 expectedResponse = dns.message.make_response(query)
19 rrset = dns.rrset.from_text(name,
20 60,
21 dns.rdataclass.IN,
22 dns.rdatatype.A,
23 '127.0.0.1')
24 expectedResponse.answer.append(rrset)
25
26 (receivedQuery, receivedResponse) = self.sendUDPQuery(query, expectedResponse)
645a1ca4 27 receivedQuery.id = query.id
33cf6ab4
RG
28 self.assertEqual(query, receivedQuery)
29 self.assertEqual(receivedResponse, expectedResponse)
30
31 if 'UDP Responder' in self._responsesCounter:
32 self.assertEqual(self._responsesCounter['UDP Responder'], 0)
33 if 'TCP Responder' in self._responsesCounter:
34 self.assertEqual(self._responsesCounter['TCP Responder'], 1)
35
36 def testTCP(self):
37 """
38 TCP Only: TCP query is sent via TCP
39 """
40 name = 'tcp.tcp-only.test.powerdns.com.'
41 query = dns.message.make_query(name, 'A', 'IN')
42 expectedResponse = dns.message.make_response(query)
43 rrset = dns.rrset.from_text(name,
44 60,
45 dns.rdataclass.IN,
46 dns.rdatatype.A,
47 '127.0.0.1')
48 expectedResponse.answer.append(rrset)
49
50 (receivedQuery, receivedResponse) = self.sendTCPQuery(query, expectedResponse)
645a1ca4 51 receivedQuery.id = query.id
33cf6ab4
RG
52 self.assertEqual(query, receivedQuery)
53 self.assertEqual(receivedResponse, expectedResponse)
54 if 'UDP Responder' in self._responsesCounter:
55 self.assertEqual(self._responsesCounter['UDP Responder'], 0)
56 if 'TCP Responder' in self._responsesCounter:
57 self.assertEqual(self._responsesCounter['TCP Responder'], 1)