fuzz.go

  1package jsonparser
  2
  3func FuzzParseString(data []byte) int {
  4	r, err := ParseString(data)
  5	if err != nil || r == "" {
  6		return 0
  7	}
  8	return 1
  9}
 10
 11func FuzzEachKey(data []byte) int {
 12	paths := [][]string{
 13		{"name"},
 14		{"order"},
 15		{"nested", "a"},
 16		{"nested", "b"},
 17		{"nested2", "a"},
 18		{"nested", "nested3", "b"},
 19		{"arr", "[1]", "b"},
 20		{"arrInt", "[3]"},
 21		{"arrInt", "[5]"},
 22		{"nested"},
 23		{"arr", "["},
 24		{"a\n", "b\n"},
 25	}
 26	EachKey(data, func(idx int, value []byte, vt ValueType, err error) {}, paths...)
 27	return 1
 28}
 29
 30func FuzzDelete(data []byte) int {
 31	Delete(data, "test")
 32	return 1
 33}
 34
 35func FuzzSet(data []byte) int {
 36	_, err := Set(data, []byte(`"new value"`), "test")
 37	if err != nil {
 38		return 0
 39	}
 40	return 1
 41}
 42
 43func FuzzObjectEach(data []byte) int {
 44	_ = ObjectEach(data, func(key, value []byte, valueType ValueType, off int) error {
 45		return nil
 46	})
 47	return 1
 48}
 49
 50func FuzzParseFloat(data []byte) int {
 51	_, err := ParseFloat(data)
 52	if err != nil {
 53		return 0
 54	}
 55	return 1
 56}
 57
 58func FuzzParseInt(data []byte) int {
 59	_, err := ParseInt(data)
 60	if err != nil {
 61		return 0
 62	}
 63	return 1
 64}
 65
 66func FuzzParseBool(data []byte) int {
 67	_, err := ParseBoolean(data)
 68	if err != nil {
 69		return 0
 70	}
 71	return 1
 72}
 73
 74func FuzzTokenStart(data []byte) int {
 75	_ = tokenStart(data)
 76	return 1
 77}
 78
 79func FuzzGetString(data []byte) int {
 80	_, err := GetString(data, "test")
 81	if err != nil {
 82		return 0
 83	}
 84	return 1
 85}
 86
 87func FuzzGetFloat(data []byte) int {
 88	_, err := GetFloat(data, "test")
 89	if err != nil {
 90		return 0
 91	}
 92	return 1
 93}
 94
 95func FuzzGetInt(data []byte) int {
 96	_, err := GetInt(data, "test")
 97	if err != nil {
 98		return 0
 99	}
100	return 1
101}
102
103func FuzzGetBoolean(data []byte) int {
104	_, err := GetBoolean(data, "test")
105	if err != nil {
106		return 0
107	}
108	return 1
109}
110
111func FuzzGetUnsafeString(data []byte) int {
112	_, err := GetUnsafeString(data, "test")
113	if err != nil {
114		return 0
115	}
116	return 1
117}