blob: ee71a6df3a3a02d0afc3cc9b3c6bb2b0f4fd615c [file] [log] [blame]
#![no_main]
#[macro_use]
extern crate libfuzzer_sys;
extern crate wasmi;
extern crate wasmparser;
use wasmparser::WasmDecoder;
fn run_wasmparser(data: &[u8]) -> bool {
let mut parser = wasmparser::ValidatingParser::new(data, None);
let result = loop {
match *parser.read() {
wasmparser::ParserState::Error(..) => break false,
wasmparser::ParserState::EndWasm => break true,
_ => (),
}
};
result
}
fn run_wasmi(data: &[u8]) -> bool {
wasmi::Module::from_buffer(data).is_ok()
}
fuzz_target!(|data: &[u8]| {
let wasmparser_success = run_wasmparser(data);
let wasmi_success = run_wasmi(data);
assert_eq!(wasmparser_success, wasmi_success);
});