add test case of remote ip (#3964)

Signed-off-by: zounengren <zounengren@cmss.chinamobile.com>
This commit is contained in:
Zou Nengren
2020-06-24 05:37:00 +08:00
committed by GitHub
parent ba8a567e38
commit 55a33aa9d2
2 changed files with 23 additions and 5 deletions

View File

@@ -12,6 +12,7 @@ import (
"github.com/miekg/dns" "github.com/miekg/dns"
) )
const name = "whoami"
// Whoami is a plugin that returns your IP address, port and the protocol used for connecting // Whoami is a plugin that returns your IP address, port and the protocol used for connecting
// to CoreDNS. // to CoreDNS.
type Whoami struct{} type Whoami struct{}
@@ -55,4 +56,4 @@ func (wh Whoami) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
} }
// Name implements the Handler interface. // Name implements the Handler interface.
func (wh Whoami) Name() string { return "whoami" } func (wh Whoami) Name() string { return name }

View File

@@ -12,10 +12,13 @@ import (
func TestWhoami(t *testing.T) { func TestWhoami(t *testing.T) {
wh := Whoami{} wh := Whoami{}
if wh.Name() != name {
t.Errorf("expected plugin name: %s, got %s", wh.Name(), name)
}
tests := []struct { tests := []struct {
qname string qname string
qtype uint16 qtype uint16
remote string
expectedCode int expectedCode int
expectedReply []string // ownernames for the records in the additional section. expectedReply []string // ownernames for the records in the additional section.
expectedErr error expectedErr error
@@ -35,6 +38,22 @@ func TestWhoami(t *testing.T) {
expectedReply: []string{"Example.ORG.", "_udp.Example.ORG."}, expectedReply: []string{"Example.ORG.", "_udp.Example.ORG."},
expectedErr: nil, expectedErr: nil,
}, },
{
qname: "example.org",
qtype: dns.TypeA,
remote: "2003::1/64",
expectedCode: dns.RcodeSuccess,
expectedReply: []string{"example.org.", "_udp.example.org."},
expectedErr: nil,
},
{
qname: "Example.ORG",
qtype: dns.TypeA,
remote: "2003::1/64",
expectedCode: dns.RcodeSuccess,
expectedReply: []string{"Example.ORG.", "_udp.Example.ORG."},
expectedErr: nil,
},
} }
ctx := context.TODO() ctx := context.TODO()
@@ -42,10 +61,8 @@ func TestWhoami(t *testing.T) {
for i, tc := range tests { for i, tc := range tests {
req := new(dns.Msg) req := new(dns.Msg)
req.SetQuestion(dns.Fqdn(tc.qname), tc.qtype) req.SetQuestion(dns.Fqdn(tc.qname), tc.qtype)
rec := dnstest.NewRecorder(&test.ResponseWriter{RemoteIP: tc.remote})
rec := dnstest.NewRecorder(&test.ResponseWriter{})
code, err := wh.ServeDNS(ctx, rec, req) code, err := wh.ServeDNS(ctx, rec, req)
if err != tc.expectedErr { if err != tc.expectedErr {
t.Errorf("Test %d: Expected error %v, but got %v", i, tc.expectedErr, err) t.Errorf("Test %d: Expected error %v, but got %v", i, tc.expectedErr, err)
} }