rclone/fs/fspath/fuzz.go

48 lines
772 B
Go
Raw Normal View History

2021-09-09 20:25:25 +08:00
//go:build gofuzz
// +build gofuzz
/*
Fuzz test the Parse function
Generate corpus
go test -v -make-corpus
Install go fuzz
go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build
Compile and fuzz
go-fuzz-build
go-fuzz
Tidy up
rm -rf corpus/ crashers/ suppressions/
git co ../../go.mod ../../go.sum
*/
package fspath
func Fuzz(data []byte) int {
path := string(data)
parsed, err := Parse(path)
if err != nil {
return 0
}
if parsed.Name == "" {
if parsed.ConfigString != "" {
panic("bad ConfigString")
}
if parsed.Path != path {
panic("local path not preserved")
}
} else {
if parsed.ConfigString+":"+parsed.Path != path {
panic("didn't split properly")
}
}
return 0
}