Skip to content

Commit dfcddff

Browse files
committed
reflect: Skip memory allocation test in TestMapIterSet.
1 parent c3fd450 commit dfcddff

File tree

1 file changed

+41
-10
lines changed

1 file changed

+41
-10
lines changed

compiler/natives/src/reflect/reflect_test.go

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package reflect_test
55

66
import (
77
"math"
8-
"reflect"
8+
. "reflect"
99
"testing"
1010
)
1111

@@ -46,16 +46,16 @@ func TestOffsetLock(t *testing.T) {
4646
}
4747

4848
func TestSelectOnInvalid(t *testing.T) {
49-
reflect.Select([]reflect.SelectCase{
49+
Select([]SelectCase{
5050
{
51-
Dir: reflect.SelectRecv,
52-
Chan: reflect.Value{},
51+
Dir: SelectRecv,
52+
Chan: Value{},
5353
}, {
54-
Dir: reflect.SelectSend,
55-
Chan: reflect.Value{},
56-
Send: reflect.ValueOf(1),
54+
Dir: SelectSend,
55+
Chan: Value{},
56+
Send: ValueOf(1),
5757
}, {
58-
Dir: reflect.SelectDefault,
58+
Dir: SelectDefault,
5959
},
6060
})
6161
}
@@ -144,7 +144,7 @@ var deepEqualTests = []DeepEqualTest{
144144

145145
// TODO: Fix this. See https://github.com/gopherjs/gopherjs/issues/763.
146146
func TestIssue22073(t *testing.T) {
147-
m := reflect.ValueOf(NonExportedFirst(0)).Method(0)
147+
m := ValueOf(NonExportedFirst(0)).Method(0)
148148

149149
if got := m.Type().NumOut(); got != 0 {
150150
t.Errorf("NumOut: got %v, want 0", got)
@@ -177,9 +177,40 @@ func TestConvertNaNs(t *testing.T) {
177177
const qnan uint32 = 0x7fc00001 // Originally: 0x7f800001.
178178
type myFloat32 float32
179179
x := V(myFloat32(math.Float32frombits(qnan)))
180-
y := x.Convert(reflect.TypeOf(float32(0)))
180+
y := x.Convert(TypeOf(float32(0)))
181181
z := y.Interface().(float32)
182182
if got := math.Float32bits(z); got != qnan {
183183
t.Errorf("quiet nan conversion got %x, want %x", got, qnan)
184184
}
185185
}
186+
187+
func TestMapIterSet(t *testing.T) {
188+
m := make(map[string]any, len(valueTests))
189+
for _, tt := range valueTests {
190+
m[tt.s] = tt.i
191+
}
192+
v := ValueOf(m)
193+
194+
k := New(v.Type().Key()).Elem()
195+
e := New(v.Type().Elem()).Elem()
196+
197+
iter := v.MapRange()
198+
for iter.Next() {
199+
k.SetIterKey(iter)
200+
e.SetIterValue(iter)
201+
want := m[k.String()]
202+
got := e.Interface()
203+
if got != want {
204+
t.Errorf("%q: want (%T) %v, got (%T) %v", k.String(), want, want, got, got)
205+
}
206+
if setkey, key := valueToString(k), valueToString(iter.Key()); setkey != key {
207+
t.Errorf("MapIter.Key() = %q, MapIter.SetKey() = %q", key, setkey)
208+
}
209+
if setval, val := valueToString(e), valueToString(iter.Value()); setval != val {
210+
t.Errorf("MapIter.Value() = %q, MapIter.SetValue() = %q", val, setval)
211+
}
212+
}
213+
214+
// Upstream test also tests allocations made by the iterator. GopherJS doesn't
215+
// support runtime.ReadMemStats(), so we leave that part out.
216+
}

0 commit comments

Comments
 (0)