From: Remi Gacogne Date: Thu, 12 Jun 2025 10:42:05 +0000 (+0200) Subject: dnsdist: Add a regression test for randomized IDs over UDP X-Git-Tag: dnsdist-2.0.0-beta1~17^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de58efbf65184f1103d3139472f90b6d2e9b013e;p=thirdparty%2Fpdns.git dnsdist: Add a regression test for randomized IDs over UDP Signed-off-by: Remi Gacogne --- diff --git a/regression-tests.dnsdist/test_Randomized.py b/regression-tests.dnsdist/test_Randomized.py new file mode 100644 index 0000000000..6954d37fc6 --- /dev/null +++ b/regression-tests.dnsdist/test_Randomized.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +import dns +import socket +from dnsdisttests import DNSDistTest + +class RandomizedIDs: + def testRandomizedIDOverUDPFromLuaConfig(self): + """ + Randomized IDs over UDP: Lua config + """ + name = 'lua-config.randomizedids.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + response = dns.message.make_response(query) + + randomized = False + for idx in range(10): + (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response) + if socket.ntohs(receivedQuery.id) != idx: + randomized = True + + receivedQuery.id = query.id + self.assertEqual(query, receivedQuery) + self.assertEqual(response, receivedResponse) + + self.assertTrue(randomized) + +class RandomizedIDsLuaConfig(DNSDistTest, RandomizedIDs): + _config_template = """ + setRandomizedIdsOverUDP(true) + newServer{address="127.0.0.1:%d"} + """ + +class RandomizedIDsYAMLConfig(DNSDistTest, RandomizedIDs): + _yaml_config_template = """ +backends: + - address: "127.0.0.1:%d" + protocol: Do53 +tuning: + udp: + randomize_ids_to_backend: true + """ + _yaml_config_params = ['_testServerPort'] + _config_params = []