main.swift 640 B

1234567891011121314151617181920
  1. import Foundation
  2. import FuzzCommon
  3. @_cdecl("LLVMFuzzerTestOneInput")
  4. public func FuzzJSON(_ start: UnsafeRawPointer, _ count: Int) -> CInt {
  5. let bytes = UnsafeRawBufferPointer(start: start, count: count)
  6. var msg: Fuzz_Testing_Message?
  7. do {
  8. msg = try Fuzz_Testing_Message(
  9. jsonUTF8Data: Data(bytes),
  10. extensions: Fuzz_Testing_FuzzTesting_Extensions)
  11. } catch {
  12. // Error parsing are to be expected since not all input will be well formed.
  13. }
  14. // Test serialization for completeness.
  15. // If a message was parsed, it should not fail to serialize, so assert as such.
  16. let _ = try! msg?.jsonString()
  17. return 0
  18. }