From: Remi Gacogne Date: Wed, 3 Apr 2019 15:29:39 +0000 (+0200) Subject: dnsdist: Add a few more regression tests for DNS over TLS X-Git-Tag: dnsdist-1.4.0-alpha1~25^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6db567d154dc2515c63425fd0da34133baec023a;p=thirdparty%2Fpdns.git dnsdist: Add a few more regression tests for DNS over TLS --- diff --git a/regression-tests.dnsdist/test_TLS.py b/regression-tests.dnsdist/test_TLS.py index 68aaa83e6d..b31c6c2f9b 100644 --- a/regression-tests.dnsdist/test_TLS.py +++ b/regression-tests.dnsdist/test_TLS.py @@ -38,3 +38,55 @@ class TestTLS(DNSDistTest): receivedQuery.id = query.id self.assertEquals(query, receivedQuery) self.assertEquals(response, receivedResponse) + + def testTLKA(self): + """ + TLS: Several queries over the same connection + """ + name = 'ka.tls.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN', use_edns=False) + response = dns.message.make_response(query) + rrset = dns.rrset.from_text(name, + 3600, + dns.rdataclass.IN, + dns.rdatatype.A, + '127.0.0.1') + response.answer.append(rrset) + + conn = self.openTLSConnection(self._tlsServerPort, self._serverName, self._caCert) + + for idx in range(5): + self.sendTCPQueryOverConnection(conn, query, response=response) + (receivedQuery, receivedResponse) = self.recvTCPResponseOverConnection(conn, useQueue=True) + self.assertTrue(receivedQuery) + self.assertTrue(receivedResponse) + receivedQuery.id = query.id + self.assertEquals(query, receivedQuery) + self.assertEquals(response, receivedResponse) + + def testTLSPipelining(self): + """ + TLS: Several queries over the same connection without waiting for the responses + """ + name = 'pipelining.tls.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN', use_edns=False) + response = dns.message.make_response(query) + rrset = dns.rrset.from_text(name, + 3600, + dns.rdataclass.IN, + dns.rdatatype.A, + '127.0.0.1') + response.answer.append(rrset) + + conn = self.openTLSConnection(self._tlsServerPort, self._serverName, self._caCert) + + for idx in range(100): + self.sendTCPQueryOverConnection(conn, query, response=response) + + for idx in range(100): + (receivedQuery, receivedResponse) = self.recvTCPResponseOverConnection(conn, useQueue=True) + self.assertTrue(receivedQuery) + self.assertTrue(receivedResponse) + receivedQuery.id = query.id + self.assertEquals(query, receivedQuery) + self.assertEquals(response, receivedResponse)