mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 08:44:17 -04:00
add test case of remote ip (#3964)
Signed-off-by: zounengren <zounengren@cmss.chinamobile.com>
This commit is contained in:
@@ -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 }
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user