From 4fbbc0dd41ed5d999b07ca410d7c10cf9aa874f0 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Sun, 23 Aug 2015 15:59:49 +1000 Subject: [PATCH] bencode: Fuzz --- bencode/fuzz.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 bencode/fuzz.go 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 +} -- 2.48.1