summaryrefslogtreecommitdiff
path: root/benches/util
diff options
context:
space:
mode:
Diffstat (limited to 'benches/util')
-rw-r--r--benches/util/mod.rs30
1 files changed, 28 insertions, 2 deletions
diff --git a/benches/util/mod.rs b/benches/util/mod.rs
index 7baddb7..69510a5 100644
--- a/benches/util/mod.rs
+++ b/benches/util/mod.rs
@@ -1,6 +1,32 @@
+#![allow(dead_code)]
+
use tinywasm::{self, parser::Parser, types::TinyWasmModule};
-pub fn tinywasm_module(wasm: &[u8]) -> TinyWasmModule {
+pub fn wasm_to_twasm(wasm: &[u8]) -> Vec<u8> {
let parser = Parser::new();
- parser.parse_module_bytes(wasm).expect("parse_module_bytes")
+ let res = parser.parse_module_bytes(wasm).expect("parse_module_bytes");
+ res.serialize_twasm().to_vec()
+}
+
+#[inline]
+pub fn twasm_to_module(twasm: &[u8]) -> tinywasm::Module {
+ unsafe { TinyWasmModule::from_twasm_unchecked(&twasm) }.into()
+}
+
+pub fn tinywasm(twasm: &[u8]) -> (tinywasm::Store, tinywasm::ModuleInstance) {
+ use tinywasm::*;
+ let module = twasm_to_module(twasm);
+ let mut store = Store::default();
+ let imports = Imports::default();
+ let instance = ModuleInstance::instantiate(&mut store, module, Some(imports)).expect("instantiate");
+ (store, instance)
+}
+
+pub fn wasmi(wasm: &[u8]) -> (wasmi::Module, wasmi::Store<()>, wasmi::Linker<()>) {
+ use wasmi::*;
+ let engine = Engine::default();
+ let module = wasmi::Module::new(&engine, wasm).expect("wasmi::Module::new");
+ let store = Store::new(&engine, ());
+ let linker = <Linker<()>>::new(&engine);
+ (module, store, linker)
}