mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-25 13:54:05 -06:00
51 lines
812 B
Go
51 lines
812 B
Go
// +build gofuzzbeta
|
|
|
|
package toml
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func FuzzDecode(f *testing.F) {
|
|
buf := make([]byte, 0, 2048)
|
|
|
|
f.Add(`
|
|
# This is a TOML document
|
|
|
|
title = "TOML Example"
|
|
|
|
[owner]
|
|
name = "Tom Preston-Werner"
|
|
dob = 1979-05-27T07:32:00-08:00
|
|
|
|
[database]
|
|
enabled = true
|
|
ports = [ 8000, 8001, 8002 ]
|
|
data = [ ["delta", "phi"], [3.14] ]
|
|
temp_targets = { cpu = 79.5, case = 72.0 }
|
|
|
|
[servers]
|
|
|
|
[servers.alpha]
|
|
ip = "10.0.0.1"
|
|
role = "frontend"
|
|
|
|
[servers.beta]
|
|
ip = "10.0.0.2"
|
|
role = "backend"
|
|
`)
|
|
f.Fuzz(func(t *testing.T, file string) {
|
|
var m map[string]interface{}
|
|
_, err := Decode(file, &m)
|
|
if err != nil {
|
|
t.Skip()
|
|
}
|
|
|
|
NewEncoder(bytes.NewBuffer(buf)).Encode(m)
|
|
|
|
// TODO: should check if the output is equal to the input, too, but some
|
|
// information is lost when encoding.
|
|
})
|
|
}
|