aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/map_test.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2014-09-09 14:22:58 -0700
committerKeith Randall <khr@golang.org>2014-09-09 14:22:58 -0700
commit251daf8650218ee2fce297280016e696d859f780 (patch)
treeb6fe87b922094e4a57429cd6d0dc39b3fe5dacac /src/runtime/map_test.go
parentf9829e92e196cdae33e256dd82c690c7beba76ed (diff)
downloadgo-251daf8650218ee2fce297280016e696d859f780.tar.gz
go-251daf8650218ee2fce297280016e696d859f780.zip
runtime: map iterators: always use intrabucket randomess
Fixes #8688 LGTM=rsc R=golang-codereviews, bradfitz, rsc, khr CC=golang-codereviews https://golang.org/cl/135660043
Diffstat (limited to 'src/runtime/map_test.go')
-rw-r--r--src/runtime/map_test.go43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/runtime/map_test.go b/src/runtime/map_test.go
index 2e87a94a03..e2f1481ad5 100644
--- a/src/runtime/map_test.go
+++ b/src/runtime/map_test.go
@@ -412,30 +412,33 @@ func TestMapNanGrowIterator(t *testing.T) {
func TestMapIterOrder(t *testing.T) {
for _, n := range [...]int{3, 7, 9, 15} {
- // Make m be {0: true, 1: true, ..., n-1: true}.
- m := make(map[int]bool)
- for i := 0; i < n; i++ {
- m[i] = true
- }
- // Check that iterating over the map produces at least two different orderings.
- ord := func() []int {
- var s []int
- for key := range m {
- s = append(s, key)
+ for i := 0; i < 1000; i++ {
+ // Make m be {0: true, 1: true, ..., n-1: true}.
+ m := make(map[int]bool)
+ for i := 0; i < n; i++ {
+ m[i] = true
}
- return s
- }
- first := ord()
- ok := false
- for try := 0; try < 100; try++ {
- if !reflect.DeepEqual(first, ord()) {
- ok = true
+ // Check that iterating over the map produces at least two different orderings.
+ ord := func() []int {
+ var s []int
+ for key := range m {
+ s = append(s, key)
+ }
+ return s
+ }
+ first := ord()
+ ok := false
+ for try := 0; try < 100; try++ {
+ if !reflect.DeepEqual(first, ord()) {
+ ok = true
+ break
+ }
+ }
+ if !ok {
+ t.Errorf("Map with n=%d elements had consistent iteration order: %v", n, first)
break
}
}
- if !ok {
- t.Errorf("Map with n=%d elements had consistent iteration order: %v", n, first)
- }
}
}