mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-17 17:52:12 +00:00
Bulk move from k8s.io/kubectl
This commit is contained in:
58
vendor/github.com/modern-go/reflect2/tests/slice_ptr_test.go
generated
vendored
Normal file
58
vendor/github.com/modern-go/reflect2/tests/slice_ptr_test.go
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"github.com/modern-go/reflect2"
|
||||
"github.com/modern-go/test"
|
||||
|
||||
"unsafe"
|
||||
"github.com/modern-go/test/must"
|
||||
"context"
|
||||
)
|
||||
|
||||
func Test_slice_ptr(t *testing.T) {
|
||||
var pInt = func(val int) *int {
|
||||
return &val
|
||||
}
|
||||
t.Run("MakeSlice", testOp(func(api reflect2.API) interface{} {
|
||||
valType := api.TypeOf([]*int{}).(reflect2.SliceType)
|
||||
obj := valType.MakeSlice(5, 10)
|
||||
obj.([]*int)[0] = pInt(1)
|
||||
obj.([]*int)[4] = pInt(5)
|
||||
return obj
|
||||
}))
|
||||
t.Run("SetIndex", testOp(func(api reflect2.API) interface{} {
|
||||
obj := []*int{pInt(1), nil}
|
||||
valType := api.TypeOf(obj).(reflect2.SliceType)
|
||||
valType.SetIndex(obj, 0, pInt(2))
|
||||
valType.SetIndex(obj, 1, pInt(3))
|
||||
return obj
|
||||
}))
|
||||
t.Run("UnsafeSetIndex", test.Case(func(ctx context.Context) {
|
||||
obj := []*int{pInt(1), nil}
|
||||
valType := reflect2.TypeOf(obj).(reflect2.SliceType)
|
||||
valType.UnsafeSetIndex(reflect2.PtrOf(obj), 0, unsafe.Pointer(pInt(2)))
|
||||
valType.UnsafeSetIndex(reflect2.PtrOf(obj), 1, unsafe.Pointer(pInt(1)))
|
||||
must.Equal([]*int{pInt(2), pInt(1)}, obj)
|
||||
}))
|
||||
t.Run("GetIndex", testOp(func(api reflect2.API) interface{} {
|
||||
obj := []*int{pInt(1), nil}
|
||||
valType := api.TypeOf(obj).(reflect2.SliceType)
|
||||
return []interface{}{
|
||||
valType.GetIndex(&obj, 0),
|
||||
valType.GetIndex(&obj, 1),
|
||||
valType.GetIndex(obj, 0),
|
||||
valType.GetIndex(obj, 1),
|
||||
}
|
||||
}))
|
||||
t.Run("Append", testOp(func(api reflect2.API) interface{} {
|
||||
obj := make([]*int, 2, 3)
|
||||
obj[0] = pInt(1)
|
||||
obj[1] = pInt(2)
|
||||
valType := api.TypeOf(obj).(reflect2.SliceType)
|
||||
valType.Append(obj, pInt(3))
|
||||
// will trigger grow
|
||||
valType.Append(obj, pInt(4))
|
||||
return obj
|
||||
}))
|
||||
}
|
||||
Reference in New Issue
Block a user