Fix cache test intermittent failure when ctx is cancelled
This fixes intermittently failing test TestResolve/when_retrieval_failed_because_of_resolution_context_being_canceled
found in #436 (closed).
Problem
The problem is the call to go e.setResponse(e.retriever.Retrieve(e.domain)
sometimes finishes (in tests only) before ctx.Done()
closing the e.setResponse
channel first.
Test output
Running without fix, it eventually fails
go test ./internal/source/gitlab/cache -run TestResolve/when_retrieval_failed_because_of_resolution_context_being_canceled -count 1000 -race -failfast -timeout 10s
--- FAIL: TestResolve (0.00s)
--- FAIL: TestResolve/when_retrieval_failed_because_of_resolution_context_being_canceled (0.00s)
cache_test.go:264:
Error Trace: cache_test.go:264
cache_test.go:113
cache_test.go:253
cache_test.go:93
cache_test.go:252
Error: An error is expected but got nil.
Test: TestResolve/when_retrieval_failed_because_of_resolution_context_being_canceled
FAIL
FAIL gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/cache 0.317s
FAIL
Running test with fix
go test ./internal/source/gitlab/cache -run TestResolve/when_retrieval_failed_because_of_resolution_context_being_canceled -count 1000 -race -failfast -timeout 10s
ok gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/cache 1.954s
Edited by Jaime Martinez