From 0f69abd561b0809640b9d6e4fa0899cd845753d9 Mon Sep 17 00:00:00 2001 From: Tim Ramlot <42113979+inteon@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:54:17 +0200 Subject: [PATCH] fix flaky dns test, make sure dns server has started before sending requests Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com> --- pkg/issuer/acme/http/http_test.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pkg/issuer/acme/http/http_test.go b/pkg/issuer/acme/http/http_test.go index 9d77697c4..8dac34561 100644 --- a/pkg/issuer/acme/http/http_test.go +++ b/pkg/issuer/acme/http/http_test.go @@ -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"