fix flaky dns test, make sure dns server has started before sending requests

Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
This commit is contained in:
Tim Ramlot 2024-04-22 14:54:17 +02:00
parent a9166a8af4
commit 0f69abd561
No known key found for this signature in database
GPG Key ID: 47428728E0C2878D

View File

@ -107,12 +107,15 @@ func TestReachabilityCustomDnsServers(t *testing.T) {
t.Fatalf("Failed to resolve %s: %v", u.Host, err)
}
dnsServerStarted := make(chan struct{})
dnsServerCalled := int32(0)
server := &dns.Server{Addr: "127.0.0.1:15353", Net: "udp"}
server := &dns.Server{Addr: "127.0.0.1:15353", Net: "udp", NotifyStartedFunc: func() { close(dnsServerStarted) }}
defer server.Shutdown()
dns.HandleFunc(".", func(w dns.ResponseWriter, r *dns.Msg) {
mux := &dns.ServeMux{}
server.Handler = mux
mux.HandleFunc(".", func(w dns.ResponseWriter, r *dns.Msg) {
m := new(dns.Msg)
m.SetReply(r)
@ -154,7 +157,15 @@ func TestReachabilityCustomDnsServers(t *testing.T) {
t.Errorf("failed to write DNS response: %v", err)
}
})
go server.ListenAndServe()
go func() {
if err := server.ListenAndServe(); err != nil {
t.Error(err)
}
}()
// Wait for server to have started
<-dnsServerStarted
key := "there is no key"