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