package net import ( "testing" "net" "github.com/benburkert/dns" ) func TestPreferIPV4Resolver(t *testing.T) { var ( cli = &dns.Client{Resolver: &PreferIPV4Resolver{}} addrs []net.IP err error ) addrs, err = net.LookupIP("www.v6.facebook.com") if err == nil && len(addrs) != 0 && len(addrs[0]) == net.IPv6len { err = nil t.Log("checked AAAA dns reponse") } else { t.Fatal("unknown error : ", err) } net.DefaultResolver.PreferGo = true net.DefaultResolver.Dial = cli.Dial addrs, err = net.LookupIP("www.v6.facebook.com") if len(addrs) != 0 { t.Fatal("ipv6 address isn't empty") } else if err == nil { t.Fatal("no error in AAAA record") } else if dnserr, ok := err.(*net.DNSError); !ok || dnserr.Err != "no such host" { t.Fatal("unknown error : ", err) } else { err = nil t.Log("AAAA dns request filtered") } }