/** Follow this convention #program_export LLVMFuzzerTestOneInput :: (data: *u8, size: s64) -> s32 #c_call { provide_context_and_string(); // Important! Macro! ok := test__http_handle_request(src); // `src` stems from the above macro! if ok != true { report_to_llvm("ERROR", src); assert(false); } return 0; } */ report_to_llvm :: (prefix: string, msg: string) { write_string("---------------------\n"); write_string(prefix); write_string(": »"); write_string(msg); write_string("«\n"); } provide_context_and_string :: () #expand { ctx: #Context; `push_context,defer_pop ctx; `src: string = ---; `src.data = `data; `src.count = `size; }