FedP2P/bencode/fuzz.go

31 lines
406 B
Go
Raw Normal View History

2021-07-14 12:35:52 +08:00
//go:build gofuzz
2015-08-23 13:59:49 +08:00
// +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
}