Merge cranelift/wasmtime fuzzing
This commit is contained in:
@@ -10,9 +10,13 @@ cargo-fuzz = true
|
||||
|
||||
[dependencies]
|
||||
arbitrary = "0.2.0"
|
||||
wasmtime-fuzzing = { path = "../crates/fuzzing" }
|
||||
wasmtime = { path = "../crates/api" }
|
||||
cranelift-codegen = { path = "../cranelift/codegen" }
|
||||
cranelift-reader = { path = "../cranelift/reader" }
|
||||
cranelift-wasm = { path = "../cranelift/wasm" }
|
||||
libfuzzer-sys = "0.2.1"
|
||||
target-lexicon = "0.10"
|
||||
wasmtime = { path = "../crates/api" }
|
||||
wasmtime-fuzzing = { path = "../crates/fuzzing" }
|
||||
|
||||
[[bin]]
|
||||
name = "compile"
|
||||
@@ -43,3 +47,15 @@ name = "differential"
|
||||
path = "fuzz_targets/differential.rs"
|
||||
test = false
|
||||
doc = false
|
||||
|
||||
[[bin]]
|
||||
name = "translate_module"
|
||||
path = "fuzz_targets/translate_module.rs"
|
||||
test = false
|
||||
doc = false
|
||||
|
||||
[[bin]]
|
||||
name = "reader_parse_test"
|
||||
path = "fuzz_targets/reader_parse_test.rs"
|
||||
test = false
|
||||
doc = false
|
||||
|
||||
12
fuzz/fuzz_targets/reader_parse_test.rs
Normal file
12
fuzz/fuzz_targets/reader_parse_test.rs
Normal file
@@ -0,0 +1,12 @@
|
||||
#![no_main]
|
||||
|
||||
use libfuzzer_sys::fuzz_target;
|
||||
|
||||
use std::str;
|
||||
|
||||
fuzz_target!(|data: &[u8]| {
|
||||
if let Ok(s) = str::from_utf8(data) {
|
||||
let options = cranelift_reader::ParseOptions::default();
|
||||
let _ = cranelift_reader::parse_test(s, options);
|
||||
}
|
||||
});
|
||||
17
fuzz/fuzz_targets/translate_module.rs
Normal file
17
fuzz/fuzz_targets/translate_module.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
#![no_main]
|
||||
|
||||
use cranelift_codegen::{isa, settings};
|
||||
use cranelift_wasm::{translate_module, DummyEnvironment, ReturnMode};
|
||||
use libfuzzer_sys::fuzz_target;
|
||||
use std::str::FromStr;
|
||||
use target_lexicon::triple;
|
||||
use wasmtime_fuzzing::generators;
|
||||
|
||||
fuzz_target!(|data: generators::WasmOptTtf| {
|
||||
let flags = settings::Flags::new(settings::builder());
|
||||
let triple = triple!("x86_64");
|
||||
let isa = isa::lookup(triple).unwrap().finish(flags);
|
||||
let mut dummy_environ =
|
||||
DummyEnvironment::new(isa.frontend_config(), ReturnMode::NormalReturns, false);
|
||||
translate_module(&data.wasm, &mut dummy_environ).unwrap();
|
||||
});
|
||||
Reference in New Issue
Block a user