diff options
Diffstat (limited to 'src/runtime/map_test.go')
| -rw-r--r-- | src/runtime/map_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/runtime/map_test.go b/src/runtime/map_test.go index 7e911b9fc9..2c51236f16 100644 --- a/src/runtime/map_test.go +++ b/src/runtime/map_test.go @@ -1434,3 +1434,33 @@ func TestLoadFactor(t *testing.T) { } } } + +func TestMapKeys(t *testing.T) { + type key struct { + s string + pad [128]byte // sizeof(key) > abi.MapMaxKeyBytes + } + m := map[key]int{{s: "a"}: 1, {s: "b"}: 2} + keys := make([]key, 0, len(m)) + runtime.MapKeys(m, unsafe.Pointer(&keys)) + for _, k := range keys { + if len(k.s) != 1 { + t.Errorf("len(k.s) == %d, want 1", len(k.s)) + } + } +} + +func TestMapValues(t *testing.T) { + type val struct { + s string + pad [128]byte // sizeof(val) > abi.MapMaxElemBytes + } + m := map[int]val{1: {s: "a"}, 2: {s: "b"}} + vals := make([]val, 0, len(m)) + runtime.MapValues(m, unsafe.Pointer(&vals)) + for _, v := range vals { + if len(v.s) != 1 { + t.Errorf("len(v.s) == %d, want 1", len(v.s)) + } + } +} |
