github.com/decred/dcrlnd@v0.7.6/buffer/buffer_test.go (about) 1 package buffer_test 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/decred/dcrlnd/buffer" 8 ) 9 10 // TestRecycleSlice asserts that RecycleSlice always zeros a byte slice. 11 func TestRecycleSlice(t *testing.T) { 12 tests := []struct { 13 name string 14 slice []byte 15 }{ 16 { 17 name: "length zero", 18 }, 19 { 20 name: "length one", 21 slice: []byte("a"), 22 }, 23 { 24 name: "length power of two length", 25 slice: bytes.Repeat([]byte("b"), 16), 26 }, 27 { 28 name: "length non power of two", 29 slice: bytes.Repeat([]byte("c"), 27), 30 }, 31 } 32 33 for _, test := range tests { 34 t.Run(test.name, func(t *testing.T) { 35 buffer.RecycleSlice(test.slice) 36 37 expSlice := make([]byte, len(test.slice)) 38 if !bytes.Equal(expSlice, test.slice) { 39 t.Fatalf("slice not recycled, want: %v, got: %v", 40 expSlice, test.slice) 41 } 42 }) 43 } 44 }