/
githubmirror
/
rclone
Обзор
Документация
Войти
/
githubmirror
/
rclone
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lib/encoder/filename/fuzz.go
35 строк
826 B
albertony
build: remove build constraint syntax for go 1.16 and older
18 апр 2024, 17:53
18 апр 2024, 17:53
68bf6aa
Код
Авторство
О чём код?
//go:build gofuzz package filename import ( "bytes" "fmt" ) // Run like: // go-fuzz-build -o=fuzz-build.zip -func=Fuzz . && go-fuzz -minimize=5s -bin=fuzz-build.zip -workdir=testdata/corpus -procs=24 // Fuzz test the provided input. func Fuzz(data []byte) int { // First try to decode as is. // We don't care about the result, it just shouldn't crash. Decode(string(data)) // Now encode enc := Encode(string(data)) // And decoded must match decoded, err := Decode(enc) if err != nil { panic(fmt.Sprintf("error decoding %q, input %q: %v", enc, string(data), err)) } if !bytes.Equal(data, []byte(decoded)) { table := decodeMap[enc[0]] table-- panic(fmt.Sprintf("decode mismatch, encoded: %q, org: %q, got: %q, table %d", enc, string(data), decoded, int(table))) } // Everything is good. return 1 }