Add server_test.go

This commit is contained in:
George 2020-09-23 13:41:18 -04:00 committed by George
parent a0dfd597ad
commit ae6bd725d6

View File

@ -0,0 +1,52 @@
package meshname
import (
"net"
"os"
"strings"
"testing"
"github.com/gologme/log"
"github.com/miekg/dns"
"github.com/zhoreeq/meshname/pkg/meshname"
)
func TestServerLocalDomain(t *testing.T) {
bindAddr := "[::1]:54545"
log := log.New(os.Stdout, "", log.Flags())
ts := meshname.New(log, bindAddr)
// ...
yggIPNet := &net.IPNet{IP: net.ParseIP("200::"), Mask: net.CIDRMask(7, 128)}
ts.SetNetworks(map[string]*net.IPNet{"ygg": yggIPNet, "meshname": yggIPNet})
exampleConfig := make(map[string][]string)
exampleConfig["aiarnf2wpqjxkp6rhivuxbondy"] = append(exampleConfig["aiarnf2wpqjxkp6rhivuxbondy"],
"test.aiarnf2wpqjxkp6rhivuxbondy.meshname. AAAA 201:1697:567c:1375:3fd1:3a2b:4b85:cd1e")
if zoneConfig, err := meshname.ParseZoneConfigMap(exampleConfig); err == nil {
ts.SetZoneConfig(zoneConfig)
} else {
t.Fatalf("meshname: Failed to parse Meshname config: %s", err)
}
ts.Start()
tc := new(dns.Client)
m := new(dns.Msg)
m.SetQuestion("test.aiarnf2wpqjxkp6rhivuxbondy.meshname.", dns.TypeAAAA)
resp, _, err := tc.Exchange(m, bindAddr)
if err != nil {
t.Fatal(err)
}
if len(resp.Answer) != 1 {
t.Fatalf("Invalid response: %s", resp.String())
}
if !strings.Contains(resp.Answer[0].String(), "201:1697:567c:1375:3fd1:3a2b:4b85:cd1e") {
t.Fatalf("Invalid IP in response: %s", resp.Answer[0].String())
}
ts.Stop()
}