]> Sergey Matveev's repositories - btrtrc.git/blob - bencode/fuzz.go
bencode: get type of `big.Int` without creating instance (#651)
[btrtrc.git] / bencode / fuzz.go
1 //go:build gofuzz
2 // +build gofuzz
3
4 package bencode
5
6 import (
7         "fmt"
8         "reflect"
9 )
10
11 func Fuzz(b []byte) int {
12         var d interface{}
13         err := Unmarshal(b, &d)
14         if err != nil {
15                 return 0
16         }
17         b0, err := Marshal(d)
18         if err != nil {
19                 panic(err)
20         }
21         var d0 interface{}
22         err = Unmarshal(b0, &d0)
23         if err != nil {
24                 panic(err)
25         }
26         if !reflect.DeepEqual(d, d0) {
27                 panic(fmt.Sprintf("%s != %s", d, d0))
28         }
29         return 1
30 }