tests: rename internal/livedns to livednstest and deny it outside tests (closes #164)
check / check (push) Successful in 1m38s

The live-DNS retry and concurrency limit is only for tests, but nothing
stopped program code from importing it and compiling it into the
binary. Its directory name now ends in test, and its import path is on
the test-support deny list in .golangci.yml, so make lint fails when
program code imports it. Every import and mention is updated to the new
name.

Model: opus-5-5
This commit is contained in:
2026-09-29 10:44:22 +00:00
parent 93c1fe15e3
commit a75d4d51fd
9 changed files with 40 additions and 33 deletions
+14 -14
View File
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
"sneak.berlin/go/dnswatcher/internal/livedns"
"sneak.berlin/go/dnswatcher/internal/livednstest"
"sneak.berlin/go/dnswatcher/internal/resolver"
)
@@ -20,9 +20,9 @@ import (
// Tests that look something up in DNS query live DNS servers, never a
// stand-in; logic that works on record data may be tested on that
// data with no lookup (see TESTING.md). Each live operation below goes
// through livedns.Retry, which bounds how many resolutions are in
// through livednstest.Retry, which bounds how many resolutions are in
// flight at once and retries an operation that got no answer (see
// package livedns).
// package livednstest).
//
// Where an assertion spans several independent nameservers, a quorum
// is enough: a strict majority answering as expected. A server that
@@ -162,7 +162,7 @@ func liveFindAuthoritative(
var out []string
livedns.Retry(
livednstest.Retry(
t,
"FindAuthoritativeNameservers("+domain+")",
func(ctx context.Context) error {
@@ -174,7 +174,7 @@ func liveFindAuthoritative(
if len(ns) == 0 {
return fmt.Errorf(
"%w: %s has no nameservers",
livedns.ErrNoAnswer, domain,
livednstest.ErrNoAnswer, domain,
)
}
@@ -198,7 +198,7 @@ func liveLookupNS(
var out []string
livedns.Retry(
livednstest.Retry(
t,
"LookupNS("+domain+")",
func(ctx context.Context) error {
@@ -210,7 +210,7 @@ func liveLookupNS(
if len(ns) == 0 {
return fmt.Errorf(
"%w: %s has no nameservers",
livedns.ErrNoAnswer, domain,
livednstest.ErrNoAnswer, domain,
)
}
@@ -240,7 +240,7 @@ func liveQueryNameserver(
var out *resolver.NameserverResponse
livedns.Retry(
livednstest.Retry(
t,
what,
func(ctx context.Context) error {
@@ -255,7 +255,7 @@ func liveQueryNameserver(
resp.Status == resolver.StatusError {
return fmt.Errorf(
"%w: %s returned %s: %s",
livedns.ErrNoAnswer, nameserver,
livednstest.ErrNoAnswer, nameserver,
resp.Status, resp.Error,
)
}
@@ -282,7 +282,7 @@ func liveQueryAllNameservers(
var out map[string]*resolver.NameserverResponse
livedns.Retry(
livednstest.Retry(
t,
"QueryAllNameservers("+hostname+")",
func(ctx context.Context) error {
@@ -294,7 +294,7 @@ func liveQueryAllNameservers(
if len(results) == 0 {
return fmt.Errorf(
"%w: no nameservers queried for %s",
livedns.ErrNoAnswer, hostname,
livednstest.ErrNoAnswer, hostname,
)
}
@@ -327,7 +327,7 @@ func liveResolveIPs(
var out []string
livedns.Retry(
livednstest.Retry(
t,
"ResolveIPAddresses("+hostname+")",
func(ctx context.Context) error {
@@ -339,7 +339,7 @@ func liveResolveIPs(
if len(ips) == 0 {
return fmt.Errorf(
"%w: no addresses for %s",
livedns.ErrNoAnswer, hostname,
livednstest.ErrNoAnswer, hostname,
)
}
@@ -366,7 +366,7 @@ func liveResolveIPsAllowingEmpty(
var out []string
livedns.Retry(
livednstest.Retry(
t,
"ResolveIPAddresses("+hostname+")",
func(ctx context.Context) error {
+1 -1
View File
@@ -33,7 +33,7 @@ func newTestResolver(t *testing.T) *resolver.Resolver {
// findOneNSForDomain picks one authoritative nameserver to aim a
// test at. Quorum handling lives in livedns_test.go, and the live-DNS
// retry and concurrency limit in package livedns.
// retry and concurrency limit in package livednstest.
func findOneNSForDomain(
t *testing.T,
r *resolver.Resolver,