github.com/neatlab/neatio@v1.7.3-0.20220425043230-d903e92fcc75/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 }