]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add MarshalBencode test.
authornsf <no.smile.face@gmail.com>
Sun, 24 Jun 2012 11:10:27 +0000 (17:10 +0600)
committernsf <no.smile.face@gmail.com>
Sun, 24 Jun 2012 11:10:27 +0000 (17:10 +0600)
bencode/encode_test.go

index de89542b3352d38adf6894b74b303b77dd36fbfc..c9b73ad6a84d89baaab1022179a246d978619fbb 100644 (file)
@@ -2,6 +2,7 @@ package bencode
 
 import "testing"
 import "bytes"
+import "fmt"
 
 type random_encode_test struct {
        value    interface{}
@@ -14,6 +15,19 @@ type random_struct struct {
        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{
        {int(10), "i10e"},
        {uint(10), "i10e"},
@@ -37,6 +51,7 @@ var random_encode_tests = []random_encode_test{
        {"", "0:"},
        {[]int{}, "le"},
        {map[string]int{}, "de"},
+       {&dummy{1, 2, 3}, "i2ei3ei4e"},
 }
 
 func TestRandomEncode(t *testing.T) {