Как работает fuzzing в Go?

Middle+
271 просмотров
AFK Offer AI

С Go 1.18 fuzzing встроен в стандартный тулчейн. Пишешь func FuzzXxx(f *testing.F), добавляешь seed corpus через f.Add(), потом f.Fuzz(func(t *testing.T, data []byte){...}). Go автоматически генерирует входные данные и ищет crashes. Запускаешь go test -fuzz=FuzzXxx. Найденные баги сохраняются в testdata/fuzz/.

Следующий вопрос

Что делать при panic в production?