github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/libnetwork/etchosts/fuzz_test.go (about) 1 package etchosts 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 fuzz "github.com/AdaLogics/go-fuzz-headers" 9 ) 10 11 func FuzzAdd(f *testing.F) { 12 f.Fuzz(func(t *testing.T, data []byte) { 13 ff := fuzz.NewConsumer(data) 14 fileBytes, err := ff.GetBytes() 15 if err != nil { 16 return 17 } 18 noOfRecords, err := ff.GetInt() 19 if err != nil { 20 return 21 } 22 23 recs := make([]Record, 0) 24 for i := 0; i < noOfRecords%40; i++ { 25 r := Record{} 26 err = ff.GenerateStruct(&r) 27 if err != nil { 28 return 29 } 30 recs = append(recs, r) 31 } 32 tmpDir := t.TempDir() 33 testFile := filepath.Join(tmpDir, "testFile") 34 err = os.WriteFile(testFile, fileBytes, 0o644) 35 if err != nil { 36 return 37 } 38 _ = Add(testFile, recs) 39 }) 40 }