lz4.go 676 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package lz4
  2. import (
  3. "bytes"
  4. "github.com/pierrec/lz4"
  5. "io"
  6. )
  7. // Fuzz function for the Reader and Writer.
  8. func Fuzz(data []byte) int {
  9. var (
  10. r = bytes.NewReader(data)
  11. w = new(bytes.Buffer)
  12. pr, pw = io.Pipe()
  13. zr = lz4.NewReader(pr)
  14. zw = lz4.NewWriter(pw)
  15. )
  16. // Compress.
  17. go func() {
  18. _, err := io.Copy(zw, r)
  19. if err != nil {
  20. panic(err)
  21. }
  22. err = zw.Close()
  23. if err != nil {
  24. panic(err)
  25. }
  26. err = pw.Close()
  27. if err != nil {
  28. panic(err)
  29. }
  30. }()
  31. // Decompress.
  32. _, err := io.Copy(w, zr)
  33. if err != nil {
  34. panic(err)
  35. }
  36. // Check that the data is valid.
  37. if !bytes.Equal(data, w.Bytes()) {
  38. panic("not equal")
  39. }
  40. return 1
  41. }