rework/dnstraverse-parity #27

Merged
gary merged 6 commits from rework/dnstraverse-parity into main 2026-07-07 12:14:13 +00:00
Showing only changes of commit ccf0e6b0dc - Show all commits
+6 -3
View File
@@ -3,6 +3,7 @@ package dns
import ( import (
"context" "context"
"net" "net"
"sync/atomic"
"testing" "testing"
"time" "time"
@@ -107,9 +108,11 @@ func TestRealExchangeUnreachable(t *testing.T) {
} }
func TestClientAgainstLocalServer(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) { 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) aHandler("5.6.7.8")(w, r)
}) })
@@ -127,7 +130,7 @@ func TestClientAgainstLocalServer(t *testing.T) {
if len(resp.Answer) == 0 { if len(resp.Answer) == 0 {
t.Fatal("expected answers") t.Fatal("expected answers")
} }
if sawRD { if sawRD.Load() {
t.Error("wire query must have RD=0") t.Error("wire query must have RD=0")
} }
} }