Files
age/internal/format/format_gofuzz.go
2019-10-06 21:19:04 -04:00

36 lines
588 B
Go

// +build gofuzz
package format
import (
"bytes"
"fmt"
"io"
"os"
)
func Fuzz(data []byte) int {
h, payload, err := Parse(bytes.NewReader(data))
if err != nil {
if h != nil {
panic("h != nil on error")
}
if payload != nil {
panic("payload != nil on error")
}
return 0
}
w := &bytes.Buffer{}
if err := h.Marshal(w); err != nil {
panic(err)
}
if _, err := io.Copy(w, payload); err != nil {
panic(err)
}
if !bytes.Equal(w.Bytes(), data) {
fmt.Fprintf(os.Stderr, "%s\n%q\n%q\n\n", w, data, w)
panic("Marshal output different from input")
}
return 1
}