torrent/bencode/fuzz.go

31 lines
406 B
Go

//go:build gofuzz
// +build gofuzz
package bencode
import (
"fmt"
"reflect"
)
func Fuzz(b []byte) int {
var d interface{}
err := Unmarshal(b, &d)
if err != nil {
return 0
}
b0, err := Marshal(d)
if err != nil {
panic(err)
}
var d0 interface{}
err = Unmarshal(b0, &d0)
if err != nil {
panic(err)
}
if !reflect.DeepEqual(d, d0) {
panic(fmt.Sprintf("%s != %s", d, d0))
}
return 1
}