aboutsummaryrefslogtreecommitdiff
path: root/test/map.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2012-02-02 11:49:28 -0800
committerBrad Fitzpatrick <bradfitz@golang.org>2012-02-02 11:49:28 -0800
commit69a5b23dc58a589f491e5524d3e32019a5de69b5 (patch)
treececd6b92815859474eb6d85d1132e413db62a6fc /test/map.go
parente10150f96d9d7dd8f3ab45a04288a75dc1f3c218 (diff)
downloadgo-69a5b23dc58a589f491e5524d3e32019a5de69b5.tar.gz
go-69a5b23dc58a589f491e5524d3e32019a5de69b5.zip
test: make map nan timing test more robust
take 2 R=rsc CC=golang-dev https://golang.org/cl/5617045
Diffstat (limited to 'test/map.go')
-rw-r--r--test/map.go25
1 files changed, 20 insertions, 5 deletions
diff --git a/test/map.go b/test/map.go
index a92586ff4a..215e56c7f6 100644
--- a/test/map.go
+++ b/test/map.go
@@ -667,10 +667,25 @@ func testnan() {
return time.Since(t0)
}
- n := 60000 // 0.04 seconds on a MacBook Air
- t1 := t(n)
- t2 := t(2 * n)
- if t2 > 3*t1 { // should be 2x (linear); allow up to 3x
- fmt.Printf("too slow: %d inserts: %v; %d inserts: %v\n", n, t1, 2*n, t2)
+ // Depending on the machine and OS, this test might be too fast
+ // to measure with accurate enough granularity. On failure,
+ // make it run longer, hoping that the timing granularity
+ // is eventually sufficient.
+
+ n := 30000 // 0.02 seconds on a MacBook Air
+ fails := 0
+ for {
+ t1 := t(n)
+ t2 := t(2 * n)
+ // should be 2x (linear); allow up to 3x
+ if t2 < 3*t1 {
+ return
+ }
+ fails++
+ if fails == 4 {
+ fmt.Printf("too slow: %d inserts: %v; %d inserts: %v\n", n, t1, 2*n, t2)
+ return
+ }
+ n *= 2
}
}