test: Fix rare race condition in TestZoneReload (#4617)

The following test failure for `TestZoneReload` can be observed
periodically:

`file_reload_test.go:58: Expected two RR in answer section got 2`

This failure can be consistently reproduced using the following command
(on my machine, at least):

`( cd test ; go test -v -race -run "TestZoneReload" ./... -count=500)`

test/file_reload_test.go:

Address a typo in a test failure message.

Sleep for double the file reload interval to avoid a rare
race condition between test code and the file plugin's reload code,
which is presumably a result of the time it takes to actually reload.

Signed-off-by: Stephen Greene <sgreene@redhat.com>
This commit is contained in:
Steve Greene 2021-05-11 03:11:20 -04:00 committed by GitHub
parent 0a3375e76b
commit fdfc9bcdd2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -47,7 +47,7 @@ func TestZoneReload(t *testing.T) {
// Remove RR from the Apex // Remove RR from the Apex
ioutil.WriteFile(name, []byte(exampleOrgUpdated), 0644) ioutil.WriteFile(name, []byte(exampleOrgUpdated), 0644)
time.Sleep(10 * time.Millisecond) // reload time time.Sleep(20 * time.Millisecond) // reload time, with some race insurance
resp, err = dns.Exchange(m, udp) resp, err = dns.Exchange(m, udp)
if err != nil { if err != nil {
@ -55,7 +55,7 @@ func TestZoneReload(t *testing.T) {
} }
if len(resp.Answer) != 1 { if len(resp.Answer) != 1 {
t.Fatalf("Expected two RR in answer section got %d", len(resp.Answer)) t.Fatalf("Expected one RR in answer section got %d", len(resp.Answer))
} }
} }