37 lines
788 B
Go
37 lines
788 B
Go
package dnstest
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/miekg/dns"
|
|
)
|
|
|
|
func TestNewServer(t *testing.T) {
|
|
s := NewServer(func(w dns.ResponseWriter, r *dns.Msg) {
|
|
ret := new(dns.Msg)
|
|
ret.SetReply(r)
|
|
w.WriteMsg(ret)
|
|
})
|
|
defer s.Close()
|
|
|
|
c := new(dns.Client)
|
|
c.Net = "tcp"
|
|
m := new(dns.Msg)
|
|
m.SetQuestion("example.org.", dns.TypeSOA)
|
|
ret, _, err := c.Exchange(m, s.Addr)
|
|
if err != nil {
|
|
t.Fatalf("Could not send message to dnstest.Server: %s", err)
|
|
}
|
|
if ret.Id != m.Id {
|
|
t.Fatalf("Msg ID's should match, expected %d, got %d", m.Id, ret.Id)
|
|
}
|
|
|
|
c.Net = "udp"
|
|
ret, _, err = c.Exchange(m, s.Addr)
|
|
if err != nil {
|
|
t.Fatalf("Could not send message to dnstest.Server: %s", err)
|
|
}
|
|
if ret.Id != m.Id {
|
|
t.Fatalf("Msg ID's should match, expected %d, got %d", m.Id, ret.Id)
|
|
}
|
|
}
|