]> Sergey Matveev's repositories - btrtrc.git/blobdiff - bencode/encode_test.go
Drop support for go 1.20
[btrtrc.git] / bencode / encode_test.go
index 86ecc06cfcfbfc23f6a08ffb9fc4fc298affd841..b0fabc45b4947a2ea4524b5be94950acf20e2eae 100644 (file)
@@ -1,12 +1,13 @@
 package bencode
 
 import (
+       "bytes"
+       "fmt"
+       "math/big"
        "testing"
 
        "github.com/stretchr/testify/assert"
 )
-import "bytes"
-import "fmt"
 
 type random_encode_test struct {
        value    interface{}
@@ -49,9 +50,10 @@ var random_encode_tests = []random_encode_test{
        {random_struct{123, "nono", "hello"}, "d3:CDE5:hello3:abci123ee"},
        {map[string]string{"a": "b", "c": "d"}, "d1:a1:b1:c1:de"},
        {[]byte{1, 2, 3, 4}, "4:\x01\x02\x03\x04"},
-       {[4]byte{1, 2, 3, 4}, "li1ei2ei3ei4ee"},
+       {&[4]byte{1, 2, 3, 4}, "4:\x01\x02\x03\x04"},
        {nil, ""},
        {[]byte{}, "0:"},
+       {[]byte(nil), "0:"},
        {"", "0:"},
        {[]int{}, "le"},
        {map[string]int{}, "de"},
@@ -68,6 +70,16 @@ var random_encode_tests = []random_encode_test{
        {struct {
                A *string `bencode:",omitempty"`
        }{new(string)}, "d1:A0:e"},
+       {bigIntFromString("62208002200000000000"), "i62208002200000000000e"},
+       {*bigIntFromString("62208002200000000000"), "i62208002200000000000e"},
+}
+
+func bigIntFromString(s string) *big.Int {
+       bi, ok := new(big.Int).SetString(s, 10)
+       if !ok {
+               panic(s)
+       }
+       return bi
 }
 
 func TestRandomEncode(t *testing.T) {