You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
822 B
44 lines
822 B
package buffer_test |
|
|
|
import ( |
|
"bytes" |
|
"testing" |
|
|
|
"github.com/lightningnetwork/lnd/buffer" |
|
) |
|
|
|
// TestRecycleSlice asserts that RecycleSlice always zeros a byte slice. |
|
func TestRecycleSlice(t *testing.T) { |
|
tests := []struct { |
|
name string |
|
slice []byte |
|
}{ |
|
{ |
|
name: "length zero", |
|
}, |
|
{ |
|
name: "length one", |
|
slice: []byte("a"), |
|
}, |
|
{ |
|
name: "length power of two length", |
|
slice: bytes.Repeat([]byte("b"), 16), |
|
}, |
|
{ |
|
name: "length non power of two", |
|
slice: bytes.Repeat([]byte("c"), 27), |
|
}, |
|
} |
|
|
|
for _, test := range tests { |
|
t.Run(test.name, func(t *testing.T) { |
|
buffer.RecycleSlice(test.slice) |
|
|
|
expSlice := make([]byte, len(test.slice)) |
|
if !bytes.Equal(expSlice, test.slice) { |
|
t.Fatalf("slice not recycled, want: %v, got: %v", |
|
expSlice, test.slice) |
|
} |
|
}) |
|
} |
|
}
|
|
|