...
1 package asm
2
3 import (
4 "testing"
5
6 "github.com/tetratelabs/wazero/internal/testing/require"
7 )
8
9 func TestNewStaticConstPool(t *testing.T) {
10 p := NewStaticConstPool()
11 require.NotNil(t, p.addedConsts)
12 }
13
14 func TestStaticConst_AddOffsetFinalizedCallback(t *testing.T) {
15 p := NewStaticConstPool()
16 const firstUseOffset uint64 = 100
17
18
19 c := NewStaticConst([]byte{1})
20 p.AddConst(c, firstUseOffset)
21 require.Equal(t, firstUseOffset, p.FirstUseOffsetInBinary)
22 require.Equal(t, 1, len(p.Consts))
23 require.Equal(t, 1, len(p.addedConsts))
24
25
26 p.AddConst(c, firstUseOffset+10000)
27 require.Equal(t, firstUseOffset, p.FirstUseOffsetInBinary)
28 require.Equal(t, 1, len(p.Consts))
29 require.Equal(t, 1, len(p.addedConsts))
30
31
32 c2 := NewStaticConst([]byte{1, 2})
33 p.AddConst(c2, firstUseOffset+100)
34 require.Equal(t, firstUseOffset, p.FirstUseOffsetInBinary)
35 require.Equal(t, 2, len(p.Consts))
36 require.Equal(t, 2, len(p.addedConsts))
37 }
38
39 func TestStaticConst_SetOffsetInBinary(t *testing.T) {
40 sc := NewStaticConst([]byte{1})
41 const offset uint64 = 100
42 sc.AddOffsetFinalizedCallback(func(offsetOfConstInBinary uint64) {
43 require.Equal(t, offset, offsetOfConstInBinary)
44 })
45 sc.SetOffsetInBinary(offset)
46 }
47
View as plain text