From: Matt Joiner Date: Sun, 23 Aug 2015 05:59:49 +0000 (+1000) Subject: bencode: Fuzz X-Git-Tag: v1.0.0~1055 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=4fbbc0dd41ed5d999b07ca410d7c10cf9aa874f0;p=btrtrc.git bencode: Fuzz --- diff --git a/bencode/fuzz.go b/bencode/fuzz.go new file mode 100644 index 00000000..d075b13e --- /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 +}