github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/utils/inject/inject_fuzz_test.go (about) 1 //go:build go1.18 2 // +build go1.18 3 4 package inject_test 5 6 import ( 7 "testing" 8 9 "github.com/lmorg/murex/test/count" 10 "github.com/lmorg/murex/utils/inject" 11 ) 12 13 func FuzzInjectString(f *testing.F) { 14 pos := []int{-100, -5, -2, -1, 0, 1, 2, 5, 10, 20, 100} 15 16 for _, i := range pos { 17 f.Add("", "", i) 18 f.Add("", ".", i) 19 f.Add(".", "", i) 20 f.Add(`!"£$%^&*(`, `!"£$%^&*()`, i) 21 f.Add("12345!", "12345!", i) 22 f.Add("foobar", "foobar", i) 23 f.Add("世", "界", i) 24 f.Add("世界", "世界", i) 25 } 26 27 f.Fuzz(func(t *testing.T, old, insert string, pos int) { 28 count.Tests(t, 1) 29 inject.String(old, insert, pos) 30 // we are just testing we can't cause an unhandled panic 31 }) 32 } 33 34 func FuzzInjectRune(f *testing.F) { 35 pos := []int{-100, -5, -2, -1, 0, 1, 2, 5, 10, 20, 100} 36 37 for _, i := range pos { 38 f.Add("", "", i) 39 f.Add("", ".", i) 40 f.Add(".", "", i) 41 f.Add(`!"£$%^&*(`, `!"£$%^&*()`, i) 42 f.Add("12345!", "12345!", i) 43 f.Add("foobar", "foobar", i) 44 f.Add("世", "界", i) 45 f.Add("世界", "世界", i) 46 } 47 48 f.Fuzz(func(t *testing.T, old, insert string, pos int) { 49 count.Tests(t, 1) 50 inject.Rune([]rune(old), []rune(insert), pos) 51 // we are just testing we can't cause an unhandled panic 52 }) 53 }