From: Shawn Smith Date: Sat, 4 Jan 2014 20:48:32 +0000 (+1100) Subject: container/list: improve test coverage X-Git-Tag: go1.3beta1~1059 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=48334e3e916b04f2754a3bdd704049e4eec19756;p=gostls13.git container/list: improve test coverage R=golang-codereviews, dave, gobot, bradfitz, gri CC=golang-codereviews https://golang.org/cl/46640043 --- diff --git a/src/pkg/container/list/list_test.go b/src/pkg/container/list/list_test.go index ee52afe82b..df06c423fe 100644 --- a/src/pkg/container/list/list_test.go +++ b/src/pkg/container/list/list_test.go @@ -285,3 +285,42 @@ func TestMove(t *testing.T) { checkListPointers(t, l, []*Element{e1, e3, e2, e4}) e1, e2, e3, e4 = e1, e3, e2, e4 } + +// Test PushFront, PushBack, PushFrontList, PushBackList with uninitialized List +func TestZeroList(t *testing.T) { + var l1 = new(List) + l1.PushFront(1) + checkList(t, l1, []interface{}{1}) + + var l2 = new(List) + l2.PushBack(1) + checkList(t, l2, []interface{}{1}) + + var l3 = new(List) + l3.PushFrontList(l1) + checkList(t, l3, []interface{}{1}) + + var l4 = new(List) + l4.PushBackList(l2) + checkList(t, l4, []interface{}{1}) +} + +// Test that a list l is not modified when calling InsertBefore with a mark that is not an element of l. +func TestInsertBeforeUnknownMark(t *testing.T) { + var l List + l.PushBack(1) + l.PushBack(2) + l.PushBack(3) + l.InsertBefore(1, new(Element)) + checkList(t, &l, []interface{}{1, 2, 3}) +} + +// Test that a list l is not modified when calling InsertAfter with a mark that is not an element of l. +func TestInsertAfterUnknownMark(t *testing.T) { + var l List + l.PushBack(1) + l.PushBack(2) + l.PushBack(3) + l.InsertAfter(1, new(Element)) + checkList(t, &l, []interface{}{1, 2, 3}) +}