Skip to content

Commit 142c3e1

Browse files
committed
Add some leak tests
1 parent d234f30 commit 142c3e1

File tree

1 file changed

+45
-17
lines changed

1 file changed

+45
-17
lines changed

list/listTest.go

+45-17
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"testing"
55

66
. "github.com/zimmski/container/test/assert"
7+
"github.com/zimmski/go-leak"
78
)
89

910
// V holds the value for basic list tests
@@ -19,23 +20,27 @@ type ListTest struct {
1920

2021
// Run executes all basic list tests
2122
func (lt *ListTest) Run(t *testing.T) {
22-
lt.NewFilledList(t)
23-
24-
lt.TestBasic(t)
25-
lt.TestIterator(t)
26-
lt.TestChannels(t)
27-
lt.TestSlice(t)
28-
lt.TestInserts(t)
29-
lt.TestRemove(t)
30-
lt.TestRemoveOccurrence(t)
31-
lt.TestClear(t)
32-
lt.TestCopy(t)
33-
lt.TestIndexOf(t)
34-
lt.TestGetSet(t)
35-
lt.TestAddLists(t)
36-
lt.TestFuncs(t)
37-
lt.TestSwap(t)
38-
lt.TestMoves(t)
23+
Equal(t, 0, leak.GoRoutineLeaks(func() {
24+
lt.NewFilledList(t)
25+
26+
lt.TestBasic(t)
27+
lt.TestIterator(t)
28+
lt.TestChannels(t)
29+
lt.TestSlice(t)
30+
lt.TestInserts(t)
31+
lt.TestRemove(t)
32+
lt.TestRemoveOccurrence(t)
33+
lt.TestClear(t)
34+
lt.TestCopy(t)
35+
lt.TestIndexOf(t)
36+
lt.TestGetSet(t)
37+
lt.TestAddLists(t)
38+
lt.TestFuncs(t)
39+
lt.TestSwap(t)
40+
lt.TestMoves(t)
41+
42+
lt.TestLeaks(t)
43+
}))
3944
}
4045

4146
// FillList fills up a given list with V
@@ -790,3 +795,26 @@ func (lt *ListTest) TestMoves(t *testing.T) {
790795
Equal(t, l.Slice(), []interface{}{1, 4, 0, 2, 3, 0})
791796
Equal(t, l.Len(), ll+1)
792797
}
798+
799+
// TestLeaks test for leaks
800+
func (lt *ListTest) TestLeaks(t *testing.T) {
801+
l := lt.New(t)
802+
803+
Equal(t, 0, leak.MemoryLeaks(func() {
804+
l.Push(1)
805+
l.Push(2)
806+
l.Push(3)
807+
808+
l.Pop()
809+
l.Pop()
810+
l.Pop()
811+
}))
812+
813+
Equal(t, 0, leak.MemoryLeaks(func() {
814+
l.Push(1)
815+
l.Push(2)
816+
l.Push(3)
817+
818+
l.Clear()
819+
}))
820+
}

0 commit comments

Comments
 (0)