From: Josh Bleecher Snyder Date: Mon, 15 Sep 2014 17:56:37 +0000 (-0700) Subject: test: make maplinear iterdelete test less flaky X-Git-Tag: go1.4beta1~407 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f197988ca596e87f1e971d5873bc3cee5c650b98;p=gostls13.git test: make maplinear iterdelete test less flaky iterdelete's run time varies; occasionally we get unlucky. To reduce spurious failures, average away some of the variation. On my machine, 8 of 5000 runs (0.15%) failed before this CL. After this CL, there were no failures after 35,000 runs. I confirmed that this adjusted test still fails before CL 141270043. LGTM=khr R=khr CC=bradfitz, golang-codereviews https://golang.org/cl/140610043 --- diff --git a/test/maplinear.go b/test/maplinear.go index 8cc198b8fe..06da968ef0 100644 --- a/test/maplinear.go +++ b/test/maplinear.go @@ -146,15 +146,19 @@ func main() { // O(n lg n) time. Fortunately, the checkLinear test // leaves enough wiggle room to include n lg n time // (it actually tests for O(n^log_2(3)). - checkLinear("iterdelete", 10000, func(n int) { - m := map[int]int{} - for i := 0; i < n; i++ { - m[i] = i - } - for i := 0; i < n; i++ { - for k := range m { - delete(m, k) - break + // To prevent false positives, average away variation + // by doing multiple rounds within a single run. + checkLinear("iterdelete", 2500, func(n int) { + for round := 0; round < 4; round++ { + m := map[int]int{} + for i := 0; i < n; i++ { + m[i] = i + } + for i := 0; i < n; i++ { + for k := range m { + delete(m, k) + break + } } } })