You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
420 B

  1. // +build gofuzz
  2. package consensus
  3. import (
  4. "bytes"
  5. "io"
  6. )
  7. func Fuzz(data []byte) int {
  8. dec := NewWALDecoder(bytes.NewReader(data))
  9. for {
  10. msg, err := dec.Decode()
  11. if err == io.EOF {
  12. break
  13. }
  14. if err != nil {
  15. if msg != nil {
  16. panic("msg != nil on error")
  17. }
  18. return 0
  19. }
  20. var w bytes.Buffer
  21. enc := NewWALEncoder(&w)
  22. err = enc.Encode(msg)
  23. if err != nil {
  24. panic(err)
  25. }
  26. }
  27. return 1
  28. }