1// +build gofuzz,compress
2
3package huff0
4
5import "bytes"
6
7func Fuzz(data []byte) int {
8	comp, _, err := Compress1X(data, nil)
9	if err == ErrIncompressible || err == ErrUseRLE || err == ErrTooBig {
10		return 0
11	}
12	if err != nil {
13		panic(err)
14	}
15	s, remain, err := ReadTable(comp, nil)
16	if err != nil {
17		panic(err)
18	}
19	out, err := s.Decompress1X(remain)
20	if err != nil {
21		panic(err)
22	}
23	if !bytes.Equal(out, data) {
24		panic("decompression mismatch")
25	}
26	return 1
27}
28