github.com/vipernet-xyz/tm@v0.34.24/consensus/wal_fuzz.go (about)

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