diff options
Diffstat (limited to 'src/internal/runtime/maps/map_test.go')
| -rw-r--r-- | src/internal/runtime/maps/map_test.go | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/src/internal/runtime/maps/map_test.go b/src/internal/runtime/maps/map_test.go index 4b39bf5ec7..cd40db8712 100644 --- a/src/internal/runtime/maps/map_test.go +++ b/src/internal/runtime/maps/map_test.go @@ -21,7 +21,7 @@ func TestCtrlSize(t *testing.T) { } func TestMapPut(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](8) + m, typ := maps.NewTestMap[uint32, uint64](8) key := uint32(0) elem := uint64(256 + 0) @@ -29,7 +29,7 @@ func TestMapPut(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -46,7 +46,7 @@ func TestMapPut(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - got, ok := m.Get(unsafe.Pointer(&key)) + got, ok := m.Get(typ, unsafe.Pointer(&key)) if !ok { t.Errorf("Get(%d) got ok false want true", key) } @@ -59,7 +59,7 @@ func TestMapPut(t *testing.T) { // Grow enough to cause a table split. func TestMapSplit(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](0) + m, typ := maps.NewTestMap[uint32, uint64](0) key := uint32(0) elem := uint64(256 + 0) @@ -67,7 +67,7 @@ func TestMapSplit(t *testing.T) { for i := 0; i < 2*maps.MaxTableCapacity; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -84,7 +84,7 @@ func TestMapSplit(t *testing.T) { for i := 0; i < 2*maps.MaxTableCapacity; i++ { key += 1 elem += 1 - got, ok := m.Get(unsafe.Pointer(&key)) + got, ok := m.Get(typ, unsafe.Pointer(&key)) if !ok { t.Errorf("Get(%d) got ok false want true", key) } @@ -96,7 +96,7 @@ func TestMapSplit(t *testing.T) { } func TestMapDelete(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](32) + m, typ := maps.NewTestMap[uint32, uint64](32) key := uint32(0) elem := uint64(256 + 0) @@ -104,7 +104,7 @@ func TestMapDelete(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -116,7 +116,7 @@ func TestMapDelete(t *testing.T) { for i := 0; i < 31; i++ { key += 1 - m.Delete(unsafe.Pointer(&key)) + m.Delete(typ, unsafe.Pointer(&key)) } if m.Used() != 0 { @@ -129,7 +129,7 @@ func TestMapDelete(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - _, ok := m.Get(unsafe.Pointer(&key)) + _, ok := m.Get(typ, unsafe.Pointer(&key)) if ok { t.Errorf("Get(%d) got ok true want false", key) } @@ -137,7 +137,7 @@ func TestMapDelete(t *testing.T) { } func TestTableClear(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](32) + m, typ := maps.NewTestMap[uint32, uint64](32) key := uint32(0) elem := uint64(256 + 0) @@ -145,14 +145,14 @@ func TestTableClear(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) } } - m.Clear() + m.Clear(typ) if m.Used() != 0 { t.Errorf("Clear() used got %d want 0", m.Used()) @@ -164,7 +164,7 @@ func TestTableClear(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - _, ok := m.Get(unsafe.Pointer(&key)) + _, ok := m.Get(typ, unsafe.Pointer(&key)) if ok { t.Errorf("Get(%d) got ok true want false", key) } @@ -174,19 +174,19 @@ func TestTableClear(t *testing.T) { // +0.0 and -0.0 compare equal, but we must still must update the key slot when // overwriting. func TestTableKeyUpdate(t *testing.T) { - m, _ := maps.NewTestMap[float64, uint64](8) + m, typ := maps.NewTestMap[float64, uint64](8) zero := float64(0.0) negZero := math.Copysign(zero, -1.0) elem := uint64(0) - m.Put(unsafe.Pointer(&zero), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&zero), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %f: %v\n", zero, m) } elem = 1 - m.Put(unsafe.Pointer(&negZero), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&negZero), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %f: %v\n", negZero, m) } @@ -196,7 +196,7 @@ func TestTableKeyUpdate(t *testing.T) { } it := new(maps.Iter) - it.Init(m.Type(), m) + it.Init(typ, m) it.Next() keyPtr, elemPtr := it.Key(), it.Elem() if keyPtr == nil { @@ -224,7 +224,7 @@ func TestTablePutDelete(t *testing.T) { // fill a group. // Avoid small maps, they have no tables. - m, _ := maps.NewTestMap[uint32, uint32](16) + m, typ := maps.NewTestMap[uint32, uint32](16) key := uint32(0) elem := uint32(256 + 0) @@ -233,7 +233,7 @@ func TestTablePutDelete(t *testing.T) { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) // Normally a Put that fills a group would fill it with the // inserted key, so why search the whole map for a potentially @@ -242,7 +242,7 @@ func TestTablePutDelete(t *testing.T) { // Put may grow/split a table. Initial construction of the new // table(s) could result in a full group consisting of // arbitrary keys. - fullKeyPtr := m.KeyFromFullGroup() + fullKeyPtr := m.KeyFromFullGroup(typ) if fullKeyPtr != nil { // Found a full group. key = *(*uint32)(fullKeyPtr) @@ -253,16 +253,16 @@ func TestTablePutDelete(t *testing.T) { // Key is in a full group. Deleting it will result in a ctrlDeleted // slot. - m.Delete(unsafe.Pointer(&key)) + m.Delete(typ, unsafe.Pointer(&key)) // Re-insert key. This should reuse the deleted slot rather than // consuming space. - tabWant := m.TableFor(unsafe.Pointer(&key)) + tabWant := m.TableFor(typ, unsafe.Pointer(&key)) growthLeftWant := tabWant.GrowthLeft() - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) - tabGot := m.TableFor(unsafe.Pointer(&key)) + tabGot := m.TableFor(typ, unsafe.Pointer(&key)) growthLeftGot := tabGot.GrowthLeft() if tabGot != tabWant { @@ -277,7 +277,7 @@ func TestTablePutDelete(t *testing.T) { } func TestTableIteration(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](8) + m, typ := maps.NewTestMap[uint32, uint64](8) key := uint32(0) elem := uint64(256 + 0) @@ -285,7 +285,7 @@ func TestTableIteration(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -295,7 +295,7 @@ func TestTableIteration(t *testing.T) { got := make(map[uint32]uint64) it := new(maps.Iter) - it.Init(m.Type(), m) + it.Init(typ, m) for { it.Next() keyPtr, elemPtr := it.Key(), it.Elem() @@ -331,7 +331,7 @@ func TestTableIteration(t *testing.T) { // Deleted keys shouldn't be visible in iteration. func TestTableIterationDelete(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](8) + m, typ := maps.NewTestMap[uint32, uint64](8) key := uint32(0) elem := uint64(256 + 0) @@ -339,7 +339,7 @@ func TestTableIterationDelete(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -350,7 +350,7 @@ func TestTableIterationDelete(t *testing.T) { first := true deletedKey := uint32(1) it := new(maps.Iter) - it.Init(m.Type(), m) + it.Init(typ, m) for { it.Next() keyPtr, elemPtr := it.Key(), it.Elem() @@ -370,7 +370,7 @@ func TestTableIterationDelete(t *testing.T) { if key == deletedKey { deletedKey++ } - m.Delete(unsafe.Pointer(&deletedKey)) + m.Delete(typ, unsafe.Pointer(&deletedKey)) } } @@ -403,7 +403,7 @@ func TestTableIterationDelete(t *testing.T) { // Deleted keys shouldn't be visible in iteration even after a grow. func TestTableIterationGrowDelete(t *testing.T) { - m, _ := maps.NewTestMap[uint32, uint64](8) + m, typ := maps.NewTestMap[uint32, uint64](8) key := uint32(0) elem := uint64(256 + 0) @@ -411,7 +411,7 @@ func TestTableIterationGrowDelete(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -422,7 +422,7 @@ func TestTableIterationGrowDelete(t *testing.T) { first := true deletedKey := uint32(1) it := new(maps.Iter) - it.Init(m.Type(), m) + it.Init(typ, m) for { it.Next() keyPtr, elemPtr := it.Key(), it.Elem() @@ -450,7 +450,7 @@ func TestTableIterationGrowDelete(t *testing.T) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -458,7 +458,7 @@ func TestTableIterationGrowDelete(t *testing.T) { } // Then delete from the grown map. - m.Delete(unsafe.Pointer(&deletedKey)) + m.Delete(typ, unsafe.Pointer(&deletedKey)) } } @@ -490,7 +490,7 @@ func TestTableIterationGrowDelete(t *testing.T) { } func testTableIterationGrowDuplicate(t *testing.T, grow int) { - m, _ := maps.NewTestMap[uint32, uint64](8) + m, typ := maps.NewTestMap[uint32, uint64](8) key := uint32(0) elem := uint64(256 + 0) @@ -498,7 +498,7 @@ func testTableIterationGrowDuplicate(t *testing.T, grow int) { for i := 0; i < 31; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -507,7 +507,7 @@ func testTableIterationGrowDuplicate(t *testing.T, grow int) { got := make(map[uint32]uint64) it := new(maps.Iter) - it.Init(m.Type(), m) + it.Init(typ, m) for i := 0; ; i++ { it.Next() keyPtr, elemPtr := it.Key(), it.Elem() @@ -533,7 +533,7 @@ func testTableIterationGrowDuplicate(t *testing.T, grow int) { for i := 0; i < grow; i++ { key += 1 elem += 1 - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) @@ -605,13 +605,13 @@ func TestMapZeroSizeSlot(t *testing.T) { key := struct{}{} elem := struct{}{} - m.Put(unsafe.Pointer(&key), unsafe.Pointer(&elem)) + m.Put(typ, unsafe.Pointer(&key), unsafe.Pointer(&elem)) if maps.DebugLog { fmt.Printf("After put %d: %v\n", key, m) } - got, ok := m.Get(unsafe.Pointer(&key)) + got, ok := m.Get(typ, unsafe.Pointer(&key)) if !ok { t.Errorf("Get(%d) got ok false want true", key) } @@ -620,7 +620,7 @@ func TestMapZeroSizeSlot(t *testing.T) { t.Errorf("Get(%d) got elem %d want %d", key, gotElem, elem) } - tab := m.TableFor(unsafe.Pointer(&key)) + tab := m.TableFor(typ, unsafe.Pointer(&key)) start := tab.GroupsStart() length := tab.GroupsLength() end := unsafe.Pointer(uintptr(start) + length*typ.Group.Size() - 1) // inclusive to ensure we have a valid pointer |
