cubefs
1package metanode
2
3import (
4"testing"
5
6"github.com/stretchr/testify/require"
7)
8
9func TestFreeList(t *testing.T) {
10fl := newFreeList()
11
12require.Equal(t, 0, fl.Len())
13
14// Test Push
15fl.Push(1)
16require.Equal(t, 1, fl.Len())
17
18fl.Push(2)
19require.Equal(t, 2, fl.Len())
20
21// Test Pop
22require.Equal(t, uint64(1), fl.Pop())
23require.Equal(t, 1, fl.Len())
24
25require.Equal(t, uint64(2), fl.Pop())
26require.Equal(t, 0, fl.Len())
27
28// Test Remove
29fl.Push(3)
30fl.Push(4)
31require.Equal(t, 2, fl.Len())
32
33fl.Remove(3)
34require.Equal(t, 1, fl.Len())
35
36require.Equal(t, uint64(4), fl.Pop())
37require.Equal(t, 0, fl.Len())
38}
39