fuzz.go 1.8 KB

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