github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/encoder/compiler_test.go (about) 1 /* 2 * Copyright 2021 ByteDance Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package encoder 18 19 import ( 20 "reflect" 21 "testing" 22 "unsafe" 23 24 "github.com/bytedance/sonic/internal/rt" 25 "github.com/stretchr/testify/assert" 26 ) 27 28 func TestCompiler_Compile(t *testing.T) { 29 p, err := newCompiler().compile(reflect.TypeOf(_BindingValue), false) 30 assert.Nil(t, err) 31 p.disassemble() 32 } 33 34 func TestReflectDirect(t *testing.T) { 35 type A struct { 36 A int 37 B int 38 } 39 var a A 40 var b = &a 41 println("b:", unsafe.Pointer(b)) 42 v := rt.UnpackEface(a) 43 vv := reflect.ValueOf(a) 44 _ = vv 45 println("v:", v.Type.KindFlags, v.Value) 46 pv := rt.UnpackEface(&a) 47 pvv := reflect.ValueOf(&a) 48 _ = pvv 49 println("pv:", pv.Type.KindFlags, pv.Value) 50 }