From 97f81a2cb58556e7be1679e1f882941453018086 Mon Sep 17 00:00:00 2001 From: Rafael Dantas Justo Date: Fri, 8 Jan 2016 11:34:08 -0200 Subject: [PATCH] Test client with TLS support See #297 --- client_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/client_test.go b/client_test.go index 38794515..09ec7037 100644 --- a/client_test.go +++ b/client_test.go @@ -1,6 +1,7 @@ package dns import ( + "crypto/tls" "fmt" "net" "strconv" @@ -39,6 +40,43 @@ func TestClientSync(t *testing.T) { } } +func TestClientTLSSync(t *testing.T) { + HandleFunc("miek.nl.", HelloServer) + defer HandleRemove("miek.nl.") + + cert, err := tls.X509KeyPair(CertPEMBlock, KeyPEMBlock) + if err != nil { + t.Fatalf("unable to build certificate: %v", err) + } + + config := tls.Config{ + Certificates: []tls.Certificate{cert}, + } + + s, addrstr, err := RunLocalTLSServer("127.0.0.1:0", &config) + if err != nil { + t.Fatalf("unable to run test server: %v", err) + } + defer s.Shutdown() + + m := new(Msg) + m.SetQuestion("miek.nl.", TypeSOA) + + c := new(Client) + c.Net = "tcp-tls" + c.TLSConfig = &tls.Config{ + InsecureSkipVerify: true, + } + + r, _, err := c.Exchange(m, addrstr) + if err != nil { + t.Errorf("failed to exchange: %v", err) + } + if r != nil && r.Rcode != RcodeSuccess { + t.Errorf("failed to get an valid answer\n%v", r) + } +} + func TestClientSyncBadId(t *testing.T) { HandleFunc("miek.nl.", HelloServerBadId) defer HandleRemove("miek.nl.")