github.com/traefik/yaegi@v0.15.1/internal/unsafe2/unsafe_test.go (about)

     1  package unsafe2_test
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  
     7  	"github.com/traefik/yaegi/internal/unsafe2"
     8  )
     9  
    10  func TestSwapFieldType(t *testing.T) {
    11  	f := []reflect.StructField{
    12  		{
    13  			Name: "A",
    14  			Type: reflect.TypeOf(int(0)),
    15  		},
    16  		{
    17  			Name: "B",
    18  			Type: reflect.PtrTo(unsafe2.DummyType),
    19  		},
    20  		{
    21  			Name: "C",
    22  			Type: reflect.TypeOf(int64(0)),
    23  		},
    24  	}
    25  	typ := reflect.StructOf(f)
    26  	ntyp := reflect.PtrTo(typ)
    27  
    28  	unsafe2.SetFieldType(typ, 1, ntyp)
    29  
    30  	if typ.Field(1).Type != ntyp {
    31  		t.Fatalf("unexpected field type: want %s; got %s", ntyp, typ.Field(1).Type)
    32  	}
    33  }