github.com/devwanda/aphelion-staking@v0.33.9/consensus/wal_fuzz.go (about)

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