aboutsummaryrefslogtreecommitdiff
path: root/plugin/trace/trace_test.go
diff options
context:
space:
mode:
authorGravatar Ondřej Benkovský <ondrej.benkovsky@wandera.com> 2021-07-10 07:34:53 +0200
committerGravatar GitHub <noreply@github.com> 2021-07-10 07:34:53 +0200
commitd17e50afc7e231b0389596cbe69b82f85e4221f3 (patch)
tree2ea387dabb3ba899ee0c87bffe59101b0ea829f5 /plugin/trace/trace_test.go
parent6efda5293e012238d34157c6eca29c0e5cbf7119 (diff)
downloadcoredns-d17e50afc7e231b0389596cbe69b82f85e4221f3.tar.gz
coredns-d17e50afc7e231b0389596cbe69b82f85e4221f3.tar.zst
coredns-d17e50afc7e231b0389596cbe69b82f85e4221f3.zip
plugin/trace: fix rcode tag in case of no response (#4742)
Signed-off-by: Ondrej Benkovsky <ondrej.benkovsky@wandera.com>
Diffstat (limited to 'plugin/trace/trace_test.go')
-rw-r--r--plugin/trace/trace_test.go24
1 files changed, 17 insertions, 7 deletions
diff --git a/plugin/trace/trace_test.go b/plugin/trace/trace_test.go
index 233f63207..dae546f8d 100644
--- a/plugin/trace/trace_test.go
+++ b/plugin/trace/trace_test.go
@@ -6,6 +6,7 @@ import (
"testing"
"github.com/coredns/caddy"
+ "github.com/coredns/coredns/plugin"
"github.com/coredns/coredns/plugin/pkg/dnstest"
"github.com/coredns/coredns/plugin/pkg/rcode"
"github.com/coredns/coredns/plugin/test"
@@ -43,23 +44,33 @@ func TestTrace(t *testing.T) {
cases := []struct {
name string
rcode int
+ status int
question *dns.Msg
- server string
err error
}{
{
name: "NXDOMAIN",
rcode: dns.RcodeNameError,
+ status: dns.RcodeSuccess,
question: new(dns.Msg).SetQuestion("example.org.", dns.TypeA),
},
{
name: "NOERROR",
rcode: dns.RcodeSuccess,
+ status: dns.RcodeSuccess,
question: new(dns.Msg).SetQuestion("example.net.", dns.TypeCNAME),
},
{
name: "SERVFAIL",
rcode: dns.RcodeServerFailure,
+ status: dns.RcodeSuccess,
+ question: new(dns.Msg).SetQuestion("example.net.", dns.TypeA),
+ err: errors.New("test error"),
+ },
+ {
+ name: "No response written",
+ rcode: dns.RcodeServerFailure,
+ status: dns.RcodeServerFailure,
question: new(dns.Msg).SetQuestion("example.net.", dns.TypeA),
err: errors.New("test error"),
},
@@ -71,13 +82,12 @@ func TestTrace(t *testing.T) {
m := mocktracer.New()
tr := &trace{
Next: test.HandlerFunc(func(_ context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
- m := new(dns.Msg)
- m.SetRcode(r, tc.rcode)
- w.WriteMsg(m)
- if tc.err != nil {
- return tc.rcode, tc.err
+ if plugin.ClientWrite(tc.status) {
+ m := new(dns.Msg)
+ m.SetRcode(r, tc.rcode)
+ w.WriteMsg(m)
}
- return tc.rcode, nil
+ return tc.status, tc.err
}),
every: 1,
tracer: m,