From d884509e990af0f365ad75cfdb841ab520aa31b0 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Wed, 7 Apr 2021 10:07:09 +0200 Subject: [PATCH] Aslo test query_address for value and query_port for presence (cherry picked from commit 11927be3eb2a9f1aa0f210dc7dd73c7c32209d01) --- .../test_RecDnstap.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/regression-tests.recursor-dnssec/test_RecDnstap.py b/regression-tests.recursor-dnssec/test_RecDnstap.py index 8a8ad9a5ba..e3f7b3a40d 100644 --- a/regression-tests.recursor-dnssec/test_RecDnstap.py +++ b/regression-tests.recursor-dnssec/test_RecDnstap.py @@ -26,7 +26,7 @@ except NameError: pass -def checkDnstapBase(testinstance, dnstap, protocol, initiator): +def checkDnstapBase(testinstance, dnstap, protocol, initiator, responder): testinstance.assertTrue(dnstap) testinstance.assertTrue(dnstap.HasField('identity')) #testinstance.assertEqual(dnstap.identity, b'a.server') @@ -40,19 +40,20 @@ def checkDnstapBase(testinstance, dnstap, protocol, initiator): testinstance.assertTrue(dnstap.message.HasField('socket_family')) testinstance.assertEquals(dnstap.message.socket_family, dnstap_pb2.INET) # - # We cannot check the query address and port since we only log outgoing queries via dnstap + # The query address and port are from the the recursor, we don't know the port # - #testinstance.assertTrue(dnstap.message.HasField('query_address')) - #testinstance.assertEquals(socket.inet_ntop(socket.AF_INET, dnstap.message.query_address), initiator) + testinstance.assertTrue(dnstap.message.HasField('query_address')) + testinstance.assertEqual(socket.inet_ntop(socket.AF_INET, dnstap.message.query_address), initiator) + testinstance.assertTrue(dnstap.message.HasField('query_port')) testinstance.assertTrue(dnstap.message.HasField('response_address')) - testinstance.assertEquals(socket.inet_ntop(socket.AF_INET, dnstap.message.response_address), initiator) + testinstance.assertEqual(socket.inet_ntop(socket.AF_INET, dnstap.message.response_address), responder) testinstance.assertTrue(dnstap.message.HasField('response_port')) testinstance.assertEquals(dnstap.message.response_port, 53) -def checkDnstapQuery(testinstance, dnstap, protocol, initiator='127.0.0.1'): - testinstance.assertEquals(dnstap.message.type, dnstap_pb2.Message.RESOLVER_QUERY) - checkDnstapBase(testinstance, dnstap, protocol, initiator) +def checkDnstapQuery(testinstance, dnstap, protocol, initiator, responder): + testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.RESOLVER_QUERY) + checkDnstapBase(testinstance, dnstap, protocol, initiator, responder) testinstance.assertTrue(dnstap.message.HasField('query_time_sec')) testinstance.assertTrue(dnstap.message.HasField('query_time_nsec')) @@ -75,9 +76,9 @@ def checkDnstapNoExtra(testinstance, dnstap): testinstance.assertFalse(dnstap.HasField('extra')) -def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator='127.0.0.1'): - testinstance.assertEquals(dnstap.message.type, dnstap_pb2.Message.RESOLVER_RESPONSE) - checkDnstapBase(testinstance, dnstap, protocol, initiator) +def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator, responder): + testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.RESOLVER_RESPONSE) + checkDnstapBase(testinstance, dnstap, protocol, initiator, responder) testinstance.assertTrue(dnstap.message.HasField('query_time_sec')) testinstance.assertTrue(dnstap.message.HasField('query_time_nsec')) @@ -285,7 +286,7 @@ dnstapFrameStreamServer({"%s"}) # check the dnstap message corresponding to the UDP query dnstap = self.getFirstDnstap() - checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, '127.0.0.8') + checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, '127.0.0.1', '127.0.0.8') # We don't expect a response checkDnstapNoExtra(self, dnstap) -- 2.47.2