Refactor
This commit is contained in:
parent
7100f6c31b
commit
213bc160bf
|
@ -9,17 +9,12 @@ use std::fs::File;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::process::{Command, Stdio};
|
use std::process::{Command, Stdio};
|
||||||
|
|
||||||
fuzz_target!(|data: &[u8]| {
|
fn run_spec(data: &[u8]) -> Result<(), ()> {
|
||||||
let wasmi_result = wasmi::Module::from_buffer(data);
|
const TEST_FILE: &'static str = "test.wasm";
|
||||||
|
|
||||||
let temp_dir = tempdir::TempDir::new("spec").unwrap();
|
|
||||||
|
|
||||||
let mut seed_path = temp_dir.path().to_path_buf();
|
|
||||||
seed_path.push("test.wasm");
|
|
||||||
|
|
||||||
{
|
{
|
||||||
let mut seedfile =
|
let mut seedfile =
|
||||||
File::create(&seed_path).expect("open temporary file for writing to store fuzzer input");
|
File::create(TEST_FILE).expect("open temporary file for writing to store fuzzer input");
|
||||||
seedfile.write_all(data).expect(
|
seedfile.write_all(data).expect(
|
||||||
"write fuzzer input to temporary file",
|
"write fuzzer input to temporary file",
|
||||||
);
|
);
|
||||||
|
@ -28,12 +23,29 @@ fuzz_target!(|data: &[u8]| {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let wasm_result = Command::new("wasm")
|
let exit_status = Command::new("wasm")
|
||||||
.arg(seed_path)
|
.arg("-d")
|
||||||
|
.arg(TEST_FILE)
|
||||||
.stdout(Stdio::null())
|
.stdout(Stdio::null())
|
||||||
.stderr(Stdio::null())
|
.stderr(Stdio::null())
|
||||||
.status()
|
.status()
|
||||||
.expect("failed to execute `wasm`");
|
.expect("failed to execute `wasm`");
|
||||||
|
|
||||||
assert_eq!(wasmi_result.is_ok(), wasm_result.success());
|
if exit_status.success() {
|
||||||
|
Ok(())
|
||||||
|
} else {
|
||||||
|
Err(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run_wasmi(data: &[u8]) -> Result<(), ()> {
|
||||||
|
let _ = wasmi::Module::from_buffer(data).map_err(|_| ())?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fuzz_target!(|data: &[u8]| {
|
||||||
|
let wasmi_result = run_wasmi(data);
|
||||||
|
let wasm_result = run_spec(data);
|
||||||
|
|
||||||
|
assert_eq!(wasmi_result.is_ok(), wasm_result.is_ok());
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue