import os
import requests
import subprocess
+import time
class AggressiveNSECCacheBase(RecursorTest):
__test__ = False
""" % (_wsPort, _wsPassword, _apiKey)
@classmethod
- def setUp(cls):
+ def wipe(cls):
confdir = os.path.join('configs', cls._confdir)
cls.wipeRecursorCache(confdir)
def testNoData(self):
+ self.wipe()
# first we query a non-existent type, to get the NSEC in our cache
entries = self.getMetric('aggressive-nsec-cache-entries')
res = self.sendQuery('host1.secure.example.', 'TXT')
# do not deny the same names than the non-hashed NSECs do
def testNXD(self):
+ self.wipe()
# first we query a non-existent name, to get the needed NSECs (name + widcard) in our cache
entries = self.getMetric('aggressive-nsec-cache-entries')
hits = self.getMetric('aggressive-nsec-cache-nsec-hits')
def testWildcard(self):
+ self.wipe()
# first we query a non-existent name, but for which a wildcard matches,
# to get the NSEC in our cache
res = self.sendQuery('test1.wildcard.secure.example.', 'A')
self.assertGreater(self.getMetric('aggressive-nsec-cache-nsec-hits'), hits)
def test_Bogus(self):
+ self.wipe()
+
+ # query a name in example to fill the aggressive negcache
+ res = self.sendQuery('example.', 'A')
+ self.assertRcodeEqual(res, dns.rcode.NOERROR)
+ self.assertAnswerEmpty(res)
+ self.assertEqual(1, self.getMetric('aggressive-nsec-cache-entries'))
+
# query a name in a Bogus zone
- entries = self.getMetric('aggressive-nsec-cache-entries')
res = self.sendQuery('ted1.bogus.example.', 'A')
self.assertRcodeEqual(res, dns.rcode.SERVFAIL)
self.assertAnswerEmpty(res)
self.assertAnswerEmpty(res)
self.assertAuthorityHasSOA(res)
self.assertGreater(self.getMetric('all-outqueries'), nbQueries)
- # we will accept a NSEC for root, which is secure..
- self.assertEqual(entries + 1, self.getMetric('aggressive-nsec-cache-entries'))
+
+ # Check that we stil have one aggressive cache entry
+ self.assertEqual(1, self.getMetric('aggressive-nsec-cache-entries'))
class AggressiveNSECCacheNSEC3(AggressiveNSECCacheBase):
_confdir = 'AggressiveNSECCacheNSEC3'