Метод testing.F.Skip
Метод F.Skip позволяет пропустить выполнение fuzz-теста,
если выполняются определенные условия. В первый параметр передается
сообщение о причине пропуска, которое будет выведено в лог.
Если тест пропущен, он считается успешным, но отмечается как
пропущенный в отчете.
Синтаксис
func (f *F) Skip(args ...interface{})
Пример
Давайте пропустим fuzz-тест, если функция Short возвращает
true (тесты запущены в коротком режиме):
package main
import (
"testing"
)
func FuzzExample(f *testing.F) {
if testing.Short() {
f.Skip("Skipping fuzz test in short mode")
}
f.Add("hello")
f.Fuzz(func(t *testing.T, a string) {
// fuzz logic here
})
}
Пример
Пропустим fuzz-тест при отсутствии необходимого флага окружения:
package main
import (
"os"
"testing"
)
func FuzzIntegration(f *testing.F) {
if os.Getenv("INTEGRATION_TEST") == "" {
f.Skip("Skipping integration fuzz test: INTEGRATION_TEST not set")
}
f.Add(12345)
f.Fuzz(func(t *testing.T, n int) {
// integration fuzz logic
})
}
Пример
Пропустим fuzz-тест на основе версии Go:
package main
import (
"runtime"
"testing"
)
func FuzzVersion(f *testing.F) {
if runtime.Version() < "go1.20" {
f.Skip("Skipping fuzz test: requires Go 1.20 or later")
}
f.Add("go1.20")
f.Fuzz(func(t *testing.T, version string) {
// version-specific fuzz logic
})
}