racket/collects/tests/net/dns.rkt
Eli Barzilay 6149134011 Misc improvements to net/dns' and net/private/ip'.
* Some racketisms.

* Use explicit `in-list' etc in for loops.

* Remove some redundant requires from `net/dns'.

* Move all tests to `tests/net', including a new `tests/net/ip'.  In the
  future there's a plan to have things like stripped zos etc for
  distribution, but we're not there yet, and the net collection is
  already organized nicely so this also makes it more uniform.

* Include the dns tests in the main test file.
2013-04-05 02:23:43 -04:00

45 lines
1.8 KiB
Racket

#lang racket/base
(require net/dns tests/eli-tester)
;; internal tests
(require (only-in rackunit require/expose) net/private/ip)
(require/expose net/dns (ip->in-addr.arpa ip->ip6.arpa))
(define (internal-tests)
(test (ip->in-addr.arpa (ipv4 (bytes 8 8 8 8)))
=> "8.8.8.8.in-addr.arpa"
(ip->in-addr.arpa (ipv4 (bytes 127 0 0 1)))
=> "1.0.0.127.in-addr.arpa"
(ip->ip6.arpa (make-ip-address "4321:0:1:2:3:4:567:89ab"))
=> (string-append "b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0"
".2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.ip6.arpa")
(ip->ip6.arpa (make-ip-address "2001:db8::567:89ab"))
=> (string-append "b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0"
".0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa")))
;; Constants for testing. These can go out of sync
;; when server setups change, so keep them up-to-date.
(define *google-dns* "8.8.8.8")
(define *google-dns-2* "8.8.4.4")
(define *racket-url* "racket-lang.org")
(define *racket-host* "champlain.ccs.neu.edu")
(define *racket-ip* "129.10.115.116")
(define *racket-mx* "aspmx.l.google.com")
(define *kame-url* "www.kame.net")
(define *kame-ip* "2001:200:dff:fff1:216:3eff:feb1:44d7")
(define (nameserver-tests nameserver)
(test (dns-get-address nameserver *racket-url*) => *racket-ip*
(dns-get-address nameserver *racket-host*) => *racket-ip*
(dns-get-address nameserver *kame-url* #:ipv6? #t) => *kame-ip*
(dns-get-name nameserver *racket-ip*) => *racket-host*
(dns-get-mail-exchanger nameserver *racket-url*) => *racket-mx*))
(provide tests)
(module+ main (tests))
(define (tests)
(test do (internal-tests)
(nameserver-tests *google-dns*)
(nameserver-tests *google-dns-2*)
(let ([ns (dns-find-nameserver)]) (when ns (nameserver-tests ns)))))