rework/dnstraverse-parity #27
@@ -3,6 +3,7 @@ package dns
|
||||
import (
|
||||
"context"
|
||||
"net"
|
||||
"sync/atomic"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -107,9 +108,11 @@ func TestRealExchangeUnreachable(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestClientAgainstLocalServer(t *testing.T) {
|
||||
var sawRD bool
|
||||
// Written by the server handler goroutine, read by the test goroutine;
|
||||
// the UDP round-trip provides no happens-before edge, so use an atomic.
|
||||
var sawRD atomic.Bool
|
||||
addr := startTestDNSServer(t, "udp", func(w dns.ResponseWriter, r *dns.Msg) {
|
||||
sawRD = r.RecursionDesired
|
||||
sawRD.Store(r.RecursionDesired)
|
||||
aHandler("5.6.7.8")(w, r)
|
||||
})
|
||||
|
||||
@@ -127,7 +130,7 @@ func TestClientAgainstLocalServer(t *testing.T) {
|
||||
if len(resp.Answer) == 0 {
|
||||
t.Fatal("expected answers")
|
||||
}
|
||||
if sawRD {
|
||||
if sawRD.Load() {
|
||||
t.Error("wire query must have RD=0")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user