github.com/insolar/vanilla@v0.0.0-20201023172447-248fdf805322/unsafekit/mmap_type_test.go (about) 1 // Copyright 2020 Insolar Network Ltd. 2 // All rights reserved. 3 // This material is licensed under the Insolar License version 1.0, 4 // available at https://github.com/insolar/assured-ledger/blob/master/LICENSE.md. 5 6 package unsafekit 7 8 import ( 9 "reflect" 10 "testing" 11 12 "github.com/stretchr/testify/require" 13 ) 14 15 func mModelOf(v interface{}) MemoryMapModel { 16 return MemoryModelDependencyOf(reflect.TypeOf(v)) 17 } 18 19 func TestMemoryModelDependencyOf(t *testing.T) { 20 require.Equal(t, MemoryModelIndependent, mModelOf(byte(0))) 21 require.Equal(t, MemoryModelIndependent, mModelOf(struct { 22 }{})) 23 24 require.Equal(t, MemoryModelIndependent, mModelOf(struct { 25 b byte 26 f bool 27 }{})) 28 29 require.Equal(t, MemoryModelDepended, mModelOf(int(0))) 30 require.Equal(t, MemoryModelDepended, mModelOf(struct { 31 b byte 32 f int 33 }{})) 34 35 require.Equal(t, MemoryMapIncompatible, mModelOf(&struct{}{})) 36 require.Equal(t, MemoryMapIncompatible, mModelOf(struct { 37 b byte 38 f int 39 p *struct{} 40 }{})) 41 require.Equal(t, MemoryMapIncompatible, mModelOf("")) 42 }