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.

32 lines
438 B

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