Tests that wait for a lookup answer give it an hour (closes #119)
check / check (push) Waiting to run

Ten tests in internal/proxy set a country list, a biased threshold or
SWWAF_ADD_LOOKUP_HEADERS, and expected the GeoJS stand-in's answer within
the default SWWAF_LOOKUP_TIMEOUT of one second on the real clock. A
hold-up of the test process past it left the client unknown. Each now
sets SWWAF_LOOKUP_TIMEOUT to an hour, and the comment on startGeoJS asks
the same of later tests.

Judgement call: set in each test, not as a default in newProxy, where it
would change two tests that rely on the default second.

Model: opus-5-5
This commit is contained in:
2026-10-08 05:25:49 +00:00
parent 54779f08de
commit 1e32727390
7 changed files with 15 additions and 2 deletions
+7 -2
View File
@@ -52,7 +52,7 @@ func TestCountryLists(t *testing.T) {
calls.Add(1)
})
geojsURL, _ := startGeoJS(t)
env := map[string]string{trustedProxies: trustLocalhost}
env := map[string]string{trustedProxies: trustLocalhost, lookupTimeout: "1h"}
maps.Copy(env, tc.env)
addr, out := startProxyWithGeoJS(t, app.URL, geojsURL, env)
@@ -101,6 +101,7 @@ func TestCountryRefusalComesBeforeTheBody(t *testing.T) {
geojsURL, _ := startGeoJS(t)
addr, out := startProxyWithGeoJS(t, app.URL, geojsURL, map[string]string{
trustedProxies: trustLocalhost,
lookupTimeout: "1h",
deniedCountries: "kp",
})
@@ -280,7 +281,11 @@ func TestExclusiveListRefusesAPrivateAddressUnlessAllowed(t *testing.T) {
// startGeoJS starts a stand-in for GeoJS, which places fromDE and fromKP,
// each in an AS of its own, and no other address. It returns its URL, and
// what returns the addresses it has been asked about.
// what returns the addresses it has been asked about. A test in which a
// request waits for the stand-in's answer, as it does while a country
// list, a biased threshold or SWWAF_ADD_LOOKUP_HEADERS is set, sets
// SWWAF_LOOKUP_TIMEOUT to an hour: on the default second, a hold-up of
// the test process can leave the client unknown.
func startGeoJS(t *testing.T) (string, func() []string) {
t.Helper()