File: unsafe_test.go

package info (click to toggle)
golang-github-traefik-yaegi 0.16.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 24,608 kB
  • sloc: sh: 457; makefile: 39
file content (33 lines) | stat: -rw-r--r-- 562 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package unsafe2_test

import (
	"reflect"
	"testing"

	"github.com/traefik/yaegi/internal/unsafe2"
)

func TestSwapFieldType(t *testing.T) {
	f := []reflect.StructField{
		{
			Name: "A",
			Type: reflect.TypeOf(int(0)),
		},
		{
			Name: "B",
			Type: reflect.PtrTo(unsafe2.DummyType),
		},
		{
			Name: "C",
			Type: reflect.TypeOf(int64(0)),
		},
	}
	typ := reflect.StructOf(f)
	ntyp := reflect.PtrTo(typ)

	unsafe2.SetFieldType(typ, 1, ntyp)

	if typ.Field(1).Type != ntyp {
		t.Fatalf("unexpected field type: want %s; got %s", ntyp, typ.Field(1).Type)
	}
}