Parcourir la source

[1891] added a check in xfrin lettuce test for xfr with NSEC3.

- the test zone DB was updated by hand with an NSEC3 record in the nsec3 table.
- changes to transfer.py was the same one as that in quering.py to support IPv6
  transport
JINMEI Tatuya il y a 13 ans
Parent
commit
14a13b8494

BIN
tests/lettuce/data/example.org.sqlite3


+ 3 - 1
tests/lettuce/features/terrain/transfer.py

@@ -58,7 +58,7 @@ class TransferResult(object):
             if len(line) > 0 and line[0] != ';':
                 self.records.append(line)
 
-@step('An AXFR transfer of ([\w.]+)(?: from ([^:]+)(?::([0-9]+))?)?')
+@step('An AXFR transfer of ([\w.]+)(?: from ([^:]+|\[[0-9a-fA-F:]+\])(?::([0-9]+))?)?')
 def perform_axfr(step, zone_name, address, port):
     """
     Perform an AXFR transfer, and store the result as an instance of
@@ -72,6 +72,8 @@ def perform_axfr(step, zone_name, address, port):
     """
     if address is None:
         address = "127.0.0.1"
+    # convert [IPv6_addr] to IPv6_addr:
+    address = re.sub(r"\[(.+)\]", r"\1", address)
     if port is None:
         port = 47806
     args = [ 'dig', 'AXFR', '@' + str(address), '-p', str(port), zone_name ]

+ 8 - 0
tests/lettuce/features/xfrin_bind10.feature

@@ -21,3 +21,11 @@ Feature: Xfrin
     When I send bind10 the command Xfrin retransfer example.org IN ::1 47807
     Then wait for new bind10 stderr message XFRIN_TRANSFER_SUCCESS not XFRIN_XFR_PROCESS_FAILURE
     A query for www.example.org should have rcode NOERROR
+
+    # The transferred zone should have 11 non-NSEC3 RRs and 1 NSEC3 RR.
+    # The following check will get these by AXFR, so the total # of RRs
+    # should be 13, counting the duplicated SOA.
+    # At this point we can confirm both in and out of AXFR for a zone
+    # containing an NSEC3 RR.
+    When I do an AXFR transfer of example.org from ::1 47807
+    Then transfer result should have 13 rrs