From: Remi Gacogne Date: Mon, 4 Dec 2023 10:31:38 +0000 (+0100) Subject: dnsdist: Add regression tests for deprecated but not yet removed items X-Git-Tag: dnsdist-1.9.0-alpha4~26^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=149b7e3b8b56d0dc8a5d7c5d9b576fe0c46b18b2;p=thirdparty%2Fpdns.git dnsdist: Add regression tests for deprecated but not yet removed items --- diff --git a/regression-tests.dnsdist/test_Deprecated.py b/regression-tests.dnsdist/test_Deprecated.py new file mode 100644 index 0000000000..adb0f65112 --- /dev/null +++ b/regression-tests.dnsdist/test_Deprecated.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python +import dns +from dnsdisttests import DNSDistTest + +class TestDeprecatedMakeRule(DNSDistTest): + + _config_template = """ + addAction(makeRule("make-rule-suffix.deprecated.tests.powerdns.com."), SpoofAction("192.0.2.1")) + addAction("string-suffix.deprecated.tests.powerdns.com.", SpoofAction("192.0.2.2")) + addAction({"list-of-string-suffixes.deprecated.tests.powerdns.com."}, SpoofAction("192.0.2.3")) + + newServer{address="127.0.0.1:%d"} + """ + + def testDeprecatedMakeRule(self): + """ + Deprecated: makeRule + """ + name = 'prefix.make-rule-suffix.deprecated.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + # dnsdist set RA = RD for spoofed responses + query.flags &= ~dns.flags.RD + expectedResponse = dns.message.make_response(query) + rrset = dns.rrset.from_text(name, + 60, + dns.rdataclass.IN, + dns.rdatatype.A, + '192.0.2.1') + expectedResponse.answer.append(rrset) + + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + (_, receivedResponse) = sender(query, response=None, useQueue=False) + self.assertTrue(receivedResponse) + self.assertEqual(expectedResponse, receivedResponse) + + def testDeprecatedAddActionStringSuffix(self): + """ + Deprecated: addAction string suffix + """ + name = 'another.prefix.string-suffix.deprecated.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + # dnsdist set RA = RD for spoofed responses + query.flags &= ~dns.flags.RD + expectedResponse = dns.message.make_response(query) + rrset = dns.rrset.from_text(name, + 60, + dns.rdataclass.IN, + dns.rdatatype.A, + '192.0.2.2') + expectedResponse.answer.append(rrset) + + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + (_, receivedResponse) = sender(query, response=None, useQueue=False) + self.assertTrue(receivedResponse) + self.assertEqual(expectedResponse, receivedResponse) + + def testDeprecatedAddActionListOfStringSuffixes(self): + """ + Deprecated: addAction list of string suffixes + """ + name = 'yet.another.prefix.list-of-string-suffixes.deprecated.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + # dnsdist set RA = RD for spoofed responses + query.flags &= ~dns.flags.RD + expectedResponse = dns.message.make_response(query) + rrset = dns.rrset.from_text(name, + 60, + dns.rdataclass.IN, + dns.rdatatype.A, + '192.0.2.3') + expectedResponse.answer.append(rrset) + + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + (_, receivedResponse) = sender(query, response=None, useQueue=False) + self.assertTrue(receivedResponse) + self.assertEqual(expectedResponse, receivedResponse)