caddy/dynamicupstreams
tannevaled bd03a35ca2 test(dynamicupstreams): cover ResetAllSRV, filtered records, cache bound, concurrent refresh
Brings the package to 96.8% statement coverage. Adds:
- TestResetAllSRV: full-cache drop
- TestSRVFilteredRecords: LookupSRV partial-error semantics (usable
  records returned, error downgraded to a warning)
- TestSRVCacheBound / TestACacheBound: eviction keeps the cache bounded
  at maxCacheEntries
- TestSRVConcurrentRefreshDeduplicates / TestAConcurrentRefreshDeduplicates:
  two goroutines missing the read-lock fast path trigger only one lookup
  (verified under -race)

The grace-period and filtered-records logs now use a level-enabled logger
so the log-write branches execute. The only uncovered statements are the
two double-checked-locking re-check returns, which are reachable solely in
a narrow race window (the same untested idiom as reverseproxy's SRV/A).
2026-06-03 16:34:24 +02:00
..
dynamicupstreams.go reverseproxy: extract DNS SRV+A discovery into a reusable package 2026-06-02 15:53:29 +02:00
dynamicupstreams_test.go test(dynamicupstreams): cover ResetAllSRV, filtered records, cache bound, concurrent refresh 2026-06-03 16:34:24 +02:00