Что такое fuzzing в Go (с Go 1.18)?

Ответ

Fuzzing - автоматическая подача случайных входов в функцию. Функция вида func FuzzXxx(f *testing.F), добавление seed-кейсов через f.Add, в цикле f.Fuzz(func(t *testing.T, a, b []byte) { ... }). Запуск: go test -fuzz=FuzzName -fuzztime=30s. Находит краевые случаи и паники.

func FuzzParse(f *testing.F) {
    f.Add([]byte("key=value"))
    f.Fuzz(func(t *testing.T, data []byte) {
        if _, err := Parse(data); err != nil { return }
    })
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.