]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth py tests: add UDP LUA shared/non-shared counter tests
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 5 Jul 2022 09:54:44 +0000 (11:54 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 5 Jul 2022 13:11:55 +0000 (15:11 +0200)
regression-tests.auth-py/test_LuaRecords.py

index 887bce455db40f48e13e895e28591d26b7dad0a1..6f6bc4011221cf9d5977d76ad83da643014003ab 100644 (file)
@@ -146,6 +146,8 @@ resolve          IN    LUA    A   ";local r=resolve('localhost', 1) local t={{}}
 
 newcafromraw     IN    LUA    A    "newCAFromRaw('ABCD'):toString()"
 newcafromraw     IN    LUA    AAAA "newCAFromRaw('ABCD020340506070'):toString()"
+
+counter          IN    LUA    TXT  ";counter = counter or 0 counter=counter+1 return tostring(counter)"
         """,
         'createforward6.example.org': """
 createforward6.example.org.                 3600 IN SOA  {soa}
@@ -935,6 +937,30 @@ createforward6.example.org.                 3600 IN NS   ns2.example.org.
                 self.assertRcodeEqual(res, dns.rcode.NOERROR)
                 self.assertEqual(res.answer, response.answer)
 
+    def _getCounter(self):
+        """
+        Helper function for shared/non-shared testing
+        """
+        name = 'counter.example.org.'
+
+        query = dns.message.make_query(name, 'TXT')
+        responses = []
+
+        for i in range(50):
+            res = self.sendUDPQuery(query)
+            responses.append(res.answer[0][0])
+
+        return(responses)
+
+    def testCounter(self):
+        """
+        Test non-shared behaviour
+        """
+
+        res = set(self._getCounter())
+
+        self.assertEqual(len(res), 1)
+
 class TestLuaRecordsShared(TestLuaRecords):
     _config_template = """
 geoip-database-files=../modules/geoipbackend/regression-tests/GeoLiteCity.mmdb
@@ -945,6 +971,15 @@ enable-lua-records=shared
 lua-health-checks-interval=1
 """
 
+    def testCounter(self):
+        """
+        Test shared behaviour
+        """
+
+        res = set(self._getCounter())
+
+        self.assertEqual(len(res), 50)
+
 if __name__ == '__main__':
     unittest.main()
     exit(0)