
Rationale: github.com/pelletier/go-toml is the only package that currently prevents the future vendoring of github.com/golang/dep as it depends on functions introduced in 1.1.0. The only consumers of this package are github.com/spf13/viper (used to run e2e tests) and github.com/bazelbuild/bazel-gazelle (bazel helper), so that's a pretty low-risk change.
32 lines
472 B
Go
32 lines
472 B
Go
// +build gofuzz
|
|
|
|
package toml
|
|
|
|
func Fuzz(data []byte) int {
|
|
tree, err := LoadBytes(data)
|
|
if err != nil {
|
|
if tree != nil {
|
|
panic("tree must be nil if there is an error")
|
|
}
|
|
return 0
|
|
}
|
|
|
|
str, err := tree.ToTomlString()
|
|
if err != nil {
|
|
if str != "" {
|
|
panic(`str must be "" if there is an error`)
|
|
}
|
|
panic(err)
|
|
}
|
|
|
|
tree, err = Load(str)
|
|
if err != nil {
|
|
if tree != nil {
|
|
panic("tree must be nil if there is an error")
|
|
}
|
|
return 0
|
|
}
|
|
|
|
return 1
|
|
}
|