Source file
src/runtime/sizeof_test.go
1
2
3
4
5 package runtime_test
6
7 import (
8 "reflect"
9 "runtime"
10 "testing"
11 "unsafe"
12 )
13
14
15
16 func TestSizeof(t *testing.T) {
17 const _64bit = unsafe.Sizeof(uintptr(0)) == 8
18 const xreg = unsafe.Sizeof(runtime.XRegPerG{})
19 var tests = []struct {
20 val any
21 _32bit uintptr
22 _64bit uintptr
23 }{
24 {runtime.G{}, 280 + xreg, 440 + xreg},
25 {runtime.Sudog{}, 56, 88},
26 }
27
28 if xreg > runtime.PtrSize {
29 t.Errorf("unsafe.Sizeof(xRegPerG) = %d, want <= %d", xreg, runtime.PtrSize)
30 }
31
32 for _, tt := range tests {
33 want := tt._32bit
34 if _64bit {
35 want = tt._64bit
36 }
37 got := reflect.TypeOf(tt.val).Size()
38 if want != got {
39 t.Errorf("unsafe.Sizeof(%T) = %d, want %d", tt.val, got, want)
40 }
41 }
42 }
43
View as plain text