github.com/neatio-net/neatio@v1.7.3-0.20231114194659-f4d7a2226baa/utilities/common/bitutil/compress_fuzz.go (about)

     1  package bitutil
     2  
     3  import "bytes"
     4  
     5  func Fuzz(data []byte) int {
     6  	if len(data) == 0 {
     7  		return -1
     8  	}
     9  	if data[0]%2 == 0 {
    10  		return fuzzEncode(data[1:])
    11  	}
    12  	return fuzzDecode(data[1:])
    13  }
    14  
    15  func fuzzEncode(data []byte) int {
    16  	proc, _ := bitsetDecodeBytes(bitsetEncodeBytes(data), len(data))
    17  	if !bytes.Equal(data, proc) {
    18  		panic("content mismatch")
    19  	}
    20  	return 0
    21  }
    22  
    23  func fuzzDecode(data []byte) int {
    24  	blob, err := bitsetDecodeBytes(data, 1024)
    25  	if err != nil {
    26  		return 0
    27  	}
    28  	if comp := bitsetEncodeBytes(blob); !bytes.Equal(comp, data) {
    29  		panic("content mismatch")
    30  	}
    31  	return 0
    32  }