From 40013b4f5c86151028291824012fc9040ad6cefa Mon Sep 17 00:00:00 2001 From: xermicus Date: Wed, 17 Apr 2024 12:13:34 +0200 Subject: [PATCH] split up PVM instantiation Signed-off-by: xermicus --- crates/integration/src/mock_runtime.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/crates/integration/src/mock_runtime.rs b/crates/integration/src/mock_runtime.rs index 51d42e9..d9e680d 100644 --- a/crates/integration/src/mock_runtime.rs +++ b/crates/integration/src/mock_runtime.rs @@ -192,6 +192,27 @@ fn link_host_functions(engine: &Engine) -> Linker { linker } +pub fn setup(config: Option) -> Engine { + Engine::new(&config.unwrap_or_default()).unwrap() +} + +pub fn recompile_code(code: &[u8], engine: &Engine) -> Module { + let mut module_config = ModuleConfig::new(); + module_config.set_gas_metering(Some(GasMeteringKind::Sync)); + + Module::new(&engine, &module_config, code).unwrap() +} + +pub fn instantiate_module(module: &Module, engine: &Engine) -> (Instance, ExportIndex) { + let export = module.lookup_export("call").unwrap(); + let func = link_host_functions(&engine) + .instantiate_pre(module) + .unwrap(); + let instance = func.instantiate().unwrap(); + + (instance, export) +} + pub fn prepare(code: &[u8], config: Option) -> (Instance, ExportIndex) { let blob = ProgramBlob::parse(code).unwrap();