diff --git a/internal/smallwebwaf/healthcheck_test.go b/internal/smallwebwaf/healthcheck_test.go index 3089f22..a5ffd60 100644 --- a/internal/smallwebwaf/healthcheck_test.go +++ b/internal/smallwebwaf/healthcheck_test.go @@ -60,8 +60,19 @@ func TestHealthCheck(t *testing.T) { }, 0, "") } - app.Close() - wantHealthCheck(t, env, 1, "unhealthy: connect to the app: ") + // Another test can take a closed server's port at once, so the app's + // address here is a multicast address, to which TCP cannot connect. + wantHealthCheck(t, map[string]string{ + listenAddr: ":" + port, + upstreamURL: "http://224.0.0.1", + }, 1, "unhealthy: connect to the app: ") + + // Listening on port 0 takes any free port, so nothing listens on port 0 + // itself. + wantHealthCheck(t, map[string]string{listenAddr: ":0"}, 1, + "unhealthy: ask smallwebwaf: ") + wantHealthCheck(t, map[string]string{listenAddr: "8080"}, 1, + "unhealthy: invalid setting: SWWAF_LISTEN_ADDR: ") stop() @@ -70,10 +81,6 @@ func TestHealthCheck(t *testing.T) { case <-time.After(waitLimit): t.Fatal("still running after being told to stop") } - - wantHealthCheck(t, env, 1, "unhealthy: ask smallwebwaf: ") - wantHealthCheck(t, map[string]string{listenAddr: "8080"}, 1, - "unhealthy: invalid setting: SWWAF_LISTEN_ADDR: ") } func TestHealthCheckRefusesAnArgument(t *testing.T) {