...
1 package values
2
3 import (
4 "testing"
5
6 "github.com/tetratelabs/wazero/internal/gojs/goos"
7 "github.com/tetratelabs/wazero/internal/testing/require"
8 )
9
10 func Test_Values(t *testing.T) {
11 t.Parallel()
12
13 vs := NewValues()
14
15 err := require.CapturePanic(func() {
16 _ = vs.Get(goos.NextID)
17 })
18 require.Contains(t, err.Error(), "is out of range 0")
19
20 v1 := "foo"
21 id1 := vs.Increment(v1)
22 v2 := "bar"
23 id2 := vs.Increment(v2)
24
25 require.Equal(t, goos.NextID, id1)
26 require.Equal(t, v1, vs.Get(id1))
27
28
29 require.Equal(t, id1+1, id2)
30 require.Equal(t, v2, vs.Get(id2))
31
32
33 require.Equal(t, id1, vs.Increment(v1))
34 require.Equal(t, v1, vs.Get(id1))
35
36
37 vs.Decrement(id1)
38 require.Equal(t, v1, vs.Get(id1))
39
40
41
42 vs.Decrement(id1)
43 err = require.CapturePanic(func() {
44 _ = vs.Get(id1)
45 })
46 require.Contains(t, err.Error(), "was nil")
47
48
49 require.Equal(t, id1, vs.Increment(v1))
50 require.Equal(t, v1, vs.Get(id1))
51 }
52
View as plain text