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  }