fuzz_test.go 633 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package tailfile
  2. import (
  3. "os"
  4. "path/filepath"
  5. "testing"
  6. fuzz "github.com/AdaLogics/go-fuzz-headers"
  7. )
  8. func FuzzTailfile(f *testing.F) {
  9. f.Fuzz(func(t *testing.T, data []byte) {
  10. if len(data) < 5 {
  11. return
  12. }
  13. ff := fuzz.NewConsumer(data)
  14. n, err := ff.GetUint64()
  15. if err != nil {
  16. return
  17. }
  18. fileBytes, err := ff.GetBytes()
  19. if err != nil {
  20. return
  21. }
  22. tempDir := t.TempDir()
  23. fil, err := os.Create(filepath.Join(tempDir, "tailFile"))
  24. if err != nil {
  25. return
  26. }
  27. defer fil.Close()
  28. _, err = fil.Write(fileBytes)
  29. if err != nil {
  30. return
  31. }
  32. fil.Seek(0, 0)
  33. _, _ = TailFile(fil, int(n))
  34. })
  35. }