55 lines
783 B
Go
55 lines
783 B
Go
|
// +build gofuzz
|
||
|
|
||
|
package psql
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"github.com/dosco/super-graph/qcode"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
qcompileTest, _ = qcode.NewCompiler(qcode.Config{})
|
||
|
|
||
|
schema = getTestSchema()
|
||
|
|
||
|
vars = NewVariables(map[string]string{
|
||
|
"admin_account_id": "5",
|
||
|
})
|
||
|
|
||
|
pcompileTest = NewCompiler(Config{
|
||
|
Schema: schema,
|
||
|
Vars: vars,
|
||
|
})
|
||
|
)
|
||
|
|
||
|
// FuzzerEntrypoint for Fuzzbuzz
|
||
|
func Fuzz(data []byte) int {
|
||
|
gql := `mutation {
|
||
|
product(insert: $data) {
|
||
|
id
|
||
|
name
|
||
|
user {
|
||
|
id
|
||
|
full_name
|
||
|
email
|
||
|
}
|
||
|
}
|
||
|
}`
|
||
|
|
||
|
qc, err := qcompileTest.Compile([]byte(gql), "user")
|
||
|
if err != nil {
|
||
|
panic("qcompile can't fail")
|
||
|
}
|
||
|
|
||
|
vars := map[string]json.RawMessage{
|
||
|
"data": json.RawMessage(data),
|
||
|
}
|
||
|
|
||
|
_, _, err = pcompileTest.CompileEx(qc, vars)
|
||
|
if err != nil {
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
return 1
|
||
|
}
|