6 "github.com/stretchr/testify/assert"
11 type random_encode_test struct {
16 type random_struct struct {
17 ABC int `bencode:"abc"`
18 SkipThisOne string `bencode:"-"`
26 func (d *dummy) MarshalBencode() ([]byte, error) {
28 _, err := fmt.Fprintf(&b, "i%dei%dei%de", d.a+1, d.b+1, d.c+1)
35 var random_encode_tests = []random_encode_test{
38 {"hello, world", "12:hello, world"},
42 {int16(-16), "i-16e"},
44 {int64(-64), "i-64e"},
49 {random_struct{123, "nono", "hello"}, "d3:CDE5:hello3:abci123ee"},
50 {map[string]string{"a": "b", "c": "d"}, "d1:a1:b1:c1:de"},
51 {[]byte{1, 2, 3, 4}, "4:\x01\x02\x03\x04"},
52 {[4]byte{1, 2, 3, 4}, "li1ei2ei3ei4ee"},
57 {map[string]int{}, "de"},
58 {&dummy{1, 2, 3}, "i2ei3ei4e"},
64 }{new(string)}, "d1:A0:e"},
66 A *string `bencode:",omitempty"`
69 A *string `bencode:",omitempty"`
70 }{new(string)}, "d1:A0:e"},
73 func TestRandomEncode(t *testing.T) {
74 for _, test := range random_encode_tests {
75 data, err := Marshal(test.value)
76 assert.NoError(t, err)
77 assert.EqualValues(t, test.expected, string(data))