bencode/fuzz.go | 29 +++++++++++++++++++++++++++++ diff --git a/bencode/fuzz.go b/bencode/fuzz.go new file mode 100644 index 0000000000000000000000000000000000000000..d075b13e200cc6bb20619b6c05aedd73e1330ef0 --- /dev/null +++ b/bencode/fuzz.go @@ -0,0 +1,29 @@ +// +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 +}