bencode/encode_test.go | 15 +++++++++++++++ diff --git a/bencode/encode_test.go b/bencode/encode_test.go index de89542b3352d38adf6894b74b303b77dd36fbfc..c9b73ad6a84d89baaab1022179a246d978619fbb 100644 --- a/bencode/encode_test.go +++ b/bencode/encode_test.go @@ -2,6 +2,7 @@ package bencode import "testing" import "bytes" +import "fmt" type random_encode_test struct { value interface{} @@ -12,6 +13,19 @@ type random_struct struct { ABC int `bencode:"abc"` SkipThisOne string `bencode:"-"` CDE string +} + +type dummy struct { + a, b, c int +} + +func (d *dummy) MarshalBencode() ([]byte, error) { + var b bytes.Buffer + _, err := fmt.Fprintf(&b, "i%dei%dei%de", d.a + 1, d.b + 1, d.c + 1) + if err != nil { + return nil, err + } + return b.Bytes(), nil } var random_encode_tests = []random_encode_test{ @@ -37,6 +51,7 @@ {[]byte{}, "0:"}, {"", "0:"}, {[]int{}, "le"}, {map[string]int{}, "de"}, + {&dummy{1, 2, 3}, "i2ei3ei4e"}, } func TestRandomEncode(t *testing.T) {