Blame lenses/tests/test_dns_zone.aug

Packit 06dd63
module Test_Dns_Zone =
Packit 06dd63
Packit 06dd63
let lns = Dns_Zone.lns
Packit 06dd63
Packit 06dd63
(* RFC 1034 ยง6 *)
Packit 06dd63
test lns get "
Packit 06dd63
EDU.  IN SOA SRI-NIC.ARPA. HOSTMASTER.SRI-NIC.ARPA. (
Packit 06dd63
                        870729 ;serial
Packit 06dd63
                        1800 ;refresh every 30 minutes
Packit 06dd63
                        300 ;retry every 5 minutes
Packit 06dd63
                        604800 ;expire after a week
Packit 06dd63
                        86400 ;minimum of a day
Packit 06dd63
                        )
Packit 06dd63
                NS SRI-NIC.ARPA.
Packit 06dd63
                NS C.ISI.EDU.
Packit 06dd63
Packit 06dd63
UCI 172800 NS ICS.UCI
Packit 06dd63
                172800 NS ROME.UCI
Packit 06dd63
ICS.UCI 172800 A 192.5.19.1
Packit 06dd63
ROME.UCI 172800 A 192.5.19.31
Packit 06dd63
Packit 06dd63
ISI 172800 NS VAXA.ISI
Packit 06dd63
                172800 NS A.ISI
Packit 06dd63
                172800 NS VENERA.ISI.EDU.
Packit 06dd63
VAXA.ISI 172800 A 10.2.0.27
Packit 06dd63
                172800 A 128.9.0.33
Packit 06dd63
VENERA.ISI.EDU. 172800 A 10.1.0.52
Packit 06dd63
                172800 A 128.9.0.32
Packit 06dd63
A.ISI 172800 A 26.3.0.103
Packit 06dd63
Packit 06dd63
UDEL.EDU.  172800 NS LOUIE.UDEL.EDU.
Packit 06dd63
                172800 NS UMN-REI-UC.ARPA.
Packit 06dd63
LOUIE.UDEL.EDU. 172800 A 10.0.0.96
Packit 06dd63
                172800 A 192.5.39.3
Packit 06dd63
Packit 06dd63
YALE.EDU.  172800 NS YALE.ARPA.
Packit 06dd63
YALE.EDU.  172800 NS YALE-BULLDOG.ARPA.
Packit 06dd63
Packit 06dd63
MIT.EDU.  43200 NS XX.LCS.MIT.EDU.
Packit 06dd63
                  43200 NS ACHILLES.MIT.EDU.
Packit 06dd63
XX.LCS.MIT.EDU.  43200 A 10.0.0.44
Packit 06dd63
ACHILLES.MIT.EDU. 43200 A 18.72.0.8
Packit 06dd63
" =
Packit 06dd63
  { "EDU."
Packit 06dd63
    { "1"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "SOA" }
Packit 06dd63
      { "mname" = "SRI-NIC.ARPA." }
Packit 06dd63
      { "rname" = "HOSTMASTER.SRI-NIC.ARPA." }
Packit 06dd63
      { "serial" = "870729" }
Packit 06dd63
      { "refresh" = "1800" }
Packit 06dd63
      { "retry" = "300" }
Packit 06dd63
      { "expiry" = "604800" }
Packit 06dd63
      { "minimum" = "86400" }
Packit 06dd63
    }
Packit 06dd63
    { "2" { "type" = "NS" } { "rdata" = "SRI-NIC.ARPA." } }
Packit 06dd63
    { "3" { "type" = "NS" } { "rdata" = "C.ISI.EDU." } }
Packit 06dd63
  }
Packit 06dd63
  { "UCI"
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "ICS.UCI" } }
Packit 06dd63
    { "2" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "ROME.UCI" } }
Packit 06dd63
  }
Packit 06dd63
  { "ICS.UCI"
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "192.5.19.1" } }
Packit 06dd63
  }
Packit 06dd63
  { "ROME.UCI"
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "192.5.19.31" } }
Packit 06dd63
  }
Packit 06dd63
  { "ISI"
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "VAXA.ISI" } }
Packit 06dd63
    { "2" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "A.ISI" } }
Packit 06dd63
    { "3"
Packit 06dd63
      { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "VENERA.ISI.EDU." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "VAXA.ISI"
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "10.2.0.27" } }
Packit 06dd63
    { "2" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "128.9.0.33" } }
Packit 06dd63
  }
Packit 06dd63
  { "VENERA.ISI.EDU."
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "10.1.0.52" } }
Packit 06dd63
    { "2" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "128.9.0.32" } }
Packit 06dd63
  }
Packit 06dd63
  { "A.ISI"
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "26.3.0.103" } }
Packit 06dd63
  }
Packit 06dd63
  { "UDEL.EDU."
Packit 06dd63
    { "1"
Packit 06dd63
      { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "LOUIE.UDEL.EDU." }
Packit 06dd63
    }
Packit 06dd63
    { "2"
Packit 06dd63
      { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "UMN-REI-UC.ARPA." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "LOUIE.UDEL.EDU."
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "10.0.0.96" } }
Packit 06dd63
    { "2" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "192.5.39.3" } }
Packit 06dd63
  }
Packit 06dd63
  { "YALE.EDU."
Packit 06dd63
    { "1" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "YALE.ARPA." } }
Packit 06dd63
  }
Packit 06dd63
  { "YALE.EDU."
Packit 06dd63
    { "1"
Packit 06dd63
      { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "YALE-BULLDOG.ARPA." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "MIT.EDU."
Packit 06dd63
    { "1"
Packit 06dd63
      { "ttl" = "43200" } { "type" = "NS" } { "rdata" = "XX.LCS.MIT.EDU." }
Packit 06dd63
    }
Packit 06dd63
    { "2"
Packit 06dd63
      { "ttl" = "43200" } { "type" = "NS" } { "rdata" = "ACHILLES.MIT.EDU." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "XX.LCS.MIT.EDU."
Packit 06dd63
    { "1" { "ttl" = "43200" } { "type" = "A" } { "rdata" = "10.0.0.44" } }
Packit 06dd63
  }
Packit 06dd63
  { "ACHILLES.MIT.EDU."
Packit 06dd63
    { "1" { "ttl" = "43200" } { "type" = "A" } { "rdata" = "18.72.0.8" } }
Packit 06dd63
  }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* RFC 1035 ยง5.3 *)
Packit 06dd63
test lns get "
Packit 06dd63
@   IN  SOA     VENERA      Action\.domains (
Packit 06dd63
                                 20     ; SERIAL
Packit 06dd63
                                 7200   ; REFRESH
Packit 06dd63
                                 600    ; RETRY
Packit 06dd63
                                 3600000; EXPIRE
Packit 06dd63
                                 60)    ; MINIMUM
Packit 06dd63
Packit 06dd63
        NS      A.ISI.EDU.
Packit 06dd63
        NS      VENERA
Packit 06dd63
        NS      VAXA
Packit 06dd63
        MX      10      VENERA
Packit 06dd63
        MX      20      VAXA
Packit 06dd63
Packit 06dd63
A       A       26.3.0.103
Packit 06dd63
Packit 06dd63
VENERA  A       10.1.0.52
Packit 06dd63
        A       128.9.0.32
Packit 06dd63
Packit 06dd63
VAXA    A       10.2.0.27
Packit 06dd63
        A       128.9.0.33
Packit 06dd63
" =
Packit 06dd63
  { "@"
Packit 06dd63
    { "1"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "SOA" }
Packit 06dd63
      { "mname" = "VENERA" }
Packit 06dd63
      { "rname" = "Action\\.domains" }
Packit 06dd63
      { "serial" = "20" }
Packit 06dd63
      { "refresh" = "7200" }
Packit 06dd63
      { "retry" = "600" }
Packit 06dd63
      { "expiry" = "3600000" }
Packit 06dd63
      { "minimum" = "60" }
Packit 06dd63
    }
Packit 06dd63
    { "2" { "type" = "NS" } { "rdata" = "A.ISI.EDU." } }
Packit 06dd63
    { "3" { "type" = "NS" } { "rdata" = "VENERA" } }
Packit 06dd63
    { "4" { "type" = "NS" } { "rdata" = "VAXA" } }
Packit 06dd63
    { "5" { "type" = "MX" } { "priority" = "10" } { "exchange" = "VENERA" } }
Packit 06dd63
    { "6" { "type" = "MX" } { "priority" = "20" } { "exchange" = "VAXA" } }
Packit 06dd63
  }
Packit 06dd63
  { "A" { "1" { "type" = "A" } { "rdata" = "26.3.0.103" } } }
Packit 06dd63
  { "VENERA"
Packit 06dd63
    { "1" { "type" = "A" } { "rdata" = "10.1.0.52" } }
Packit 06dd63
    { "2" { "type" = "A" } { "rdata" = "128.9.0.32" } }
Packit 06dd63
  }
Packit 06dd63
  { "VAXA"
Packit 06dd63
    { "1" { "type" = "A" } { "rdata" = "10.2.0.27" } }
Packit 06dd63
    { "2" { "type" = "A" } { "rdata" = "128.9.0.33" } }
Packit 06dd63
  }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* RFC 2782 *)
Packit 06dd63
test lns get "
Packit 06dd63
$ORIGIN example.com.
Packit 06dd63
@               SOA server.example.com. root.example.com. (
Packit 06dd63
                    1995032001 3600 3600 604800 86400 )
Packit 06dd63
                NS  server.example.com.
Packit 06dd63
                NS  ns1.ip-provider.net.
Packit 06dd63
                NS  ns2.ip-provider.net.
Packit 06dd63
; foobar - use old-slow-box or new-fast-box if either is
Packit 06dd63
; available, make three quarters of the logins go to
Packit 06dd63
; new-fast-box.
Packit 06dd63
_foobar._tcp    SRV 0 1 9 old-slow-box.example.com.
Packit 06dd63
                 SRV 0 3 9 new-fast-box.example.com.
Packit 06dd63
; if neither old-slow-box or new-fast-box is up, switch to
Packit 06dd63
; using the sysdmin's box and the server
Packit 06dd63
                 SRV 1 0 9 sysadmins-box.example.com.
Packit 06dd63
                 SRV 1 0 9 server.example.com.
Packit 06dd63
server           A   172.30.79.10
Packit 06dd63
old-slow-box     A   172.30.79.11
Packit 06dd63
sysadmins-box    A   172.30.79.12
Packit 06dd63
new-fast-box     A   172.30.79.13
Packit 06dd63
; NO other services are supported
Packit 06dd63
*._tcp          SRV  0 0 0 .
Packit 06dd63
*._udp          SRV  0 0 0 .
Packit 06dd63
" =
Packit 06dd63
  { "$ORIGIN" = "example.com." }
Packit 06dd63
  { "@"
Packit 06dd63
    { "1"
Packit 06dd63
      { "type" = "SOA" }
Packit 06dd63
      { "mname" = "server.example.com." }
Packit 06dd63
      { "rname" = "root.example.com." }
Packit 06dd63
      { "serial" = "1995032001" }
Packit 06dd63
      { "refresh" = "3600" }
Packit 06dd63
      { "retry" = "3600" }
Packit 06dd63
      { "expiry" = "604800" }
Packit 06dd63
      { "minimum" = "86400" }
Packit 06dd63
    }
Packit 06dd63
    { "2" { "type" = "NS" } { "rdata" = "server.example.com." } }
Packit 06dd63
    { "3" { "type" = "NS" } { "rdata" = "ns1.ip-provider.net." } }
Packit 06dd63
    { "4" { "type" = "NS" } { "rdata" = "ns2.ip-provider.net." } }
Packit 06dd63
  }
Packit 06dd63
  { "_foobar._tcp"
Packit 06dd63
    { "1"
Packit 06dd63
      { "type" = "SRV" }
Packit 06dd63
      { "priority" = "0" }
Packit 06dd63
      { "weight" = "1" }
Packit 06dd63
      { "port" = "9" }
Packit 06dd63
      { "target" = "old-slow-box.example.com." }
Packit 06dd63
    }
Packit 06dd63
    { "2"
Packit 06dd63
      { "type" = "SRV" }
Packit 06dd63
      { "priority" = "0" }
Packit 06dd63
      { "weight" = "3" }
Packit 06dd63
      { "port" = "9" }
Packit 06dd63
      { "target" = "new-fast-box.example.com." }
Packit 06dd63
    }
Packit 06dd63
    { "3"
Packit 06dd63
      { "type" = "SRV" }
Packit 06dd63
      { "priority" = "1" }
Packit 06dd63
      { "weight" = "0" }
Packit 06dd63
      { "port" = "9" }
Packit 06dd63
      { "target" = "sysadmins-box.example.com." }
Packit 06dd63
    }
Packit 06dd63
    { "4"
Packit 06dd63
      { "type" = "SRV" }
Packit 06dd63
      { "priority" = "1" }
Packit 06dd63
      { "weight" = "0" }
Packit 06dd63
      { "port" = "9" }
Packit 06dd63
      { "target" = "server.example.com." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "server" { "1" { "type" = "A" } { "rdata" = "172.30.79.10" } } }
Packit 06dd63
  { "old-slow-box" { "1" { "type" = "A" } { "rdata" = "172.30.79.11" } } }
Packit 06dd63
  { "sysadmins-box" { "1" { "type" = "A" } { "rdata" = "172.30.79.12" } } }
Packit 06dd63
  { "new-fast-box" { "1" { "type" = "A" } { "rdata" = "172.30.79.13" } } }
Packit 06dd63
  { "*._tcp"
Packit 06dd63
    { "1"
Packit 06dd63
      { "type" = "SRV" }
Packit 06dd63
      { "priority" = "0" }
Packit 06dd63
      { "weight" = "0" }
Packit 06dd63
      { "port" = "0" }
Packit 06dd63
      { "target" = "." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "*._udp"
Packit 06dd63
    { "1"
Packit 06dd63
      { "type" = "SRV" }
Packit 06dd63
      { "priority" = "0" }
Packit 06dd63
      { "weight" = "0" }
Packit 06dd63
      { "port" = "0" }
Packit 06dd63
      { "target" = "." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* RFC 3403 ยง6.2 *)
Packit 06dd63
test lns get "
Packit 06dd63
$ORIGIN 2.1.2.1.5.5.5.0.7.7.1.e164.arpa.
Packit 06dd63
 IN NAPTR 100 10 \"u\" \"sip+E2U\"  \"!^.*$!sip:information@foo.se!i\"     .
Packit 06dd63
 IN NAPTR 102 10 \"u\" \"smtp+E2U\" \"!^.*$!mailto:information@foo.se!i\"  .
Packit 06dd63
" =
Packit 06dd63
  { "$ORIGIN" = "2.1.2.1.5.5.5.0.7.7.1.e164.arpa." }
Packit 06dd63
  { "@"
Packit 06dd63
    { "1"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "NAPTR" }
Packit 06dd63
      { "order" = "100" }
Packit 06dd63
      { "preference" = "10" }
Packit 06dd63
      { "flags" = "\"u\"" }
Packit 06dd63
      { "service" = "\"sip+E2U\"" }
Packit 06dd63
      { "regexp" = "\"!^.*$!sip:information@foo.se!i\"" }
Packit 06dd63
      { "replacement" = "." }
Packit 06dd63
    }
Packit 06dd63
    { "2"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "NAPTR" }
Packit 06dd63
      { "order" = "102" }
Packit 06dd63
      { "preference" = "10" }
Packit 06dd63
      { "flags" = "\"u\"" }
Packit 06dd63
      { "service" = "\"smtp+E2U\"" }
Packit 06dd63
      { "regexp" = "\"!^.*$!mailto:information@foo.se!i\"" }
Packit 06dd63
      { "replacement" = "." }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* SOA record on a single line *)
Packit 06dd63
test lns get "
Packit 06dd63
$ORIGIN example.com.
Packit 06dd63
@ IN SOA ns root.example.com. (1 2 3 4 5)
Packit 06dd63
" =
Packit 06dd63
  { "$ORIGIN" = "example.com." }
Packit 06dd63
  { "@"
Packit 06dd63
    { "1"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "SOA" }
Packit 06dd63
      { "mname" = "ns" }
Packit 06dd63
      { "rname" = "root.example.com." }
Packit 06dd63
      { "serial" = "1" }
Packit 06dd63
      { "refresh" = "2" }
Packit 06dd63
      { "retry" = "3" }
Packit 06dd63
      { "expiry" = "4" }
Packit 06dd63
      { "minimum" = "5" }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* Different ordering of TTL and class *)
Packit 06dd63
test lns get "
Packit 06dd63
$ORIGIN example.com.
Packit 06dd63
foo 1D IN A 10.1.2.3
Packit 06dd63
bar IN 2W A 10.4.5.6
Packit 06dd63
" =
Packit 06dd63
  { "$ORIGIN" = "example.com." }
Packit 06dd63
  { "foo"
Packit 06dd63
    { "1"
Packit 06dd63
      { "ttl" = "1D" }
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "A" }
Packit 06dd63
      { "rdata" = "10.1.2.3" }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "bar"
Packit 06dd63
    { "1"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "ttl" = "2W" }
Packit 06dd63
      { "type" = "A" }
Packit 06dd63
      { "rdata" = "10.4.5.6" }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* Escaping *)
Packit 06dd63
test lns get "
Packit 06dd63
$ORIGIN example.com.
Packit 06dd63
foo TXT abc\\\\def\\\"ghi
Packit 06dd63
bar TXT \"ab cd\\\\ef\\\"gh\"
Packit 06dd63
" =
Packit 06dd63
  { "$ORIGIN" = "example.com." }
Packit 06dd63
  { "foo" { "1" { "type" = "TXT" } { "rdata" = "abc\\\\def\\\"ghi" } } }
Packit 06dd63
  { "bar" { "1" { "type" = "TXT" } { "rdata" = "\"ab cd\\\\ef\\\"gh\"" } } }
Packit 06dd63
Packit 06dd63
Packit 06dd63
(* Whitespace at the end of the line *)
Packit 06dd63
test lns get "
Packit 06dd63
$ORIGIN example.com. \n@ IN SOA ns root.example.com. (1 2 3 4 5) \t
Packit 06dd63
foo 1D IN A 10.1.2.3\t
Packit 06dd63
" =
Packit 06dd63
  { "$ORIGIN" = "example.com." }
Packit 06dd63
  { "@"
Packit 06dd63
    { "1"
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "SOA" }
Packit 06dd63
      { "mname" = "ns" }
Packit 06dd63
      { "rname" = "root.example.com." }
Packit 06dd63
      { "serial" = "1" }
Packit 06dd63
      { "refresh" = "2" }
Packit 06dd63
      { "retry" = "3" }
Packit 06dd63
      { "expiry" = "4" }
Packit 06dd63
      { "minimum" = "5" }
Packit 06dd63
    }
Packit 06dd63
  }
Packit 06dd63
  { "foo"
Packit 06dd63
    { "1"
Packit 06dd63
      { "ttl" = "1D" }
Packit 06dd63
      { "class" = "IN" }
Packit 06dd63
      { "type" = "A" }
Packit 06dd63
      { "rdata" = "10.1.2.3" }
Packit 06dd63
    }
Packit 06dd63
  }