github.com/rish1988/moby@v25.0.2+incompatible/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  }