Refactor the codebase and organize files

This commit is contained in:
Rerumu
2021-11-30 03:27:17 -05:00
parent 82e97ad643
commit 96a27c9626
29 changed files with 2370 additions and 1771 deletions
+6 -17
View File
@@ -1,30 +1,19 @@
#![no_main]
use std::io::Result;
use wasm_smith::Module;
use parity_wasm::elements::Module as WasmModule;
use wasm_smith::Module as SmModule;
use wasm::backend::{
edition::{data::Edition, luajit::LuaJIT},
translator::data::Module,
};
fn fuzz_translate(wasm: &WasmModule, ed: &dyn Edition) -> Result<()> {
let mut sink = std::io::sink();
let module = Module::new(wasm);
module.translate(ed, &mut sink)
}
use wasm::writer::{luajit::LuaJIT, visit::Transpiler};
// We are not interested in parity_wasm errors.
// Only 1 edition should need to be tested too.
libfuzzer_sys::fuzz_target!(|module: SmModule| {
libfuzzer_sys::fuzz_target!(|module: Module| {
let data = module.to_bytes();
let wasm = match parity_wasm::deserialize_buffer(&data) {
Ok(v) => v,
Err(_) => return,
};
fuzz_translate(&wasm, &LuaJIT).expect("LuaJIT should succeed");
LuaJIT::new(&wasm)
.transpile(&mut std::io::sink())
.expect("LuaJIT should succeed");
});
+3 -6
View File
@@ -3,14 +3,11 @@
use parity_wasm::elements::Module as WasmModule;
use wasm_smith::Module as SmModule;
use wasm::backend::{ast::transformer::Transformer, translator::arity::List};
use wasm::writer::{luajit::LuaJIT, visit::Transpiler};
fn fuzz_transformer(wasm: &WasmModule) {
let arity = List::new(wasm);
for i in 0..arity.in_arity.len() {
let _ = Transformer::new(wasm, &arity).consume(i);
}
let trans = LuaJIT::new(wasm);
let _func = trans.build_func_list();
}
libfuzzer_sys::fuzz_target!(|module: SmModule| {
+6 -16
View File
@@ -5,23 +5,13 @@ use std::io::Result;
use parity_wasm::elements::Module as WasmModule;
use wasm_smith::Module as SmModule;
use wasm::backend::{
ast::transformer::Transformer,
edition::{data::Edition, luajit::LuaJIT},
translator::{arity::List, writer::Data},
};
use wasm::writer::{luajit::LuaJIT, visit::Transpiler};
fn fuzz_writer(wasm: &WasmModule, ed: &dyn Edition) -> Result<()> {
let mut sink = std::io::sink();
let arity = List::new(wasm);
fn fuzz_writer(wasm: &WasmModule) -> Result<()> {
let trans = LuaJIT::new(wasm);
let list = trans.build_func_list();
for i in 0..arity.in_arity.len() {
let func = Transformer::new(wasm, &arity).consume(i);
func.output(&mut Data::new(ed), &mut sink)?;
}
Ok(())
trans.gen_func_list(&list, &mut std::io::sink())
}
libfuzzer_sys::fuzz_target!(|module: SmModule| {
@@ -31,5 +21,5 @@ libfuzzer_sys::fuzz_target!(|module: SmModule| {
Err(_) => return,
};
fuzz_writer(&wasm, &LuaJIT).expect("LuaJIT should succeed");
fuzz_writer(&wasm).expect("LuaJIT should succeed");
});