fix broken test

This commit is contained in:
Lachlan Sneff 2019-01-21 10:07:57 -08:00
parent 8484199d29
commit a3821a90c1

View File

@ -500,6 +500,7 @@ mod vm_offset_tests {
#[cfg(test)] #[cfg(test)]
mod vm_ctx_tests { mod vm_ctx_tests {
use super::{Ctx, ImportBacking, LocalBacking}; use super::{Ctx, ImportBacking, LocalBacking};
use crate::module::ModuleInner;
use crate::structures::Map; use crate::structures::Map;
use std::ffi::c_void; use std::ffi::c_void;
@ -538,11 +539,13 @@ mod vm_ctx_tests {
tables: Map::new().into_boxed_map(), tables: Map::new().into_boxed_map(),
globals: Map::new().into_boxed_map(), globals: Map::new().into_boxed_map(),
}; };
let module = generate_module();
let data = &mut data as *mut _ as *mut c_void; let data = &mut data as *mut _ as *mut c_void;
let ctx = unsafe { let ctx = unsafe {
Ctx::new_with_data( Ctx::new_with_data(
&mut local_backing, &mut local_backing,
&mut import_backing, &mut import_backing,
&module,
data, data,
test_data_finalizer, test_data_finalizer,
) )
@ -558,4 +561,45 @@ mod vm_ctx_tests {
let test_data: &mut TestData = unsafe { &mut *(data as *mut TestData) }; let test_data: &mut TestData = unsafe { &mut *(data as *mut TestData) };
test_data test_data
} }
fn generate_module() -> ModuleInner {
use super::Func;
use crate::backend::{FuncResolver, SigRegistry};
use crate::types::LocalFuncIndex;
use hashbrown::HashMap;
use std::ptr::NonNull;
struct Placeholder;
impl FuncResolver for Placeholder {
fn get(
&self,
module: &ModuleInner,
local_func_index: LocalFuncIndex,
) -> Option<NonNull<Func>> {
None
}
}
ModuleInner {
func_resolver: Box::new(Placeholder),
memories: Map::new(),
globals: Map::new(),
tables: Map::new(),
// These are strictly imported and the typesystem ensures that.
imported_functions: Map::new(),
imported_memories: Map::new(),
imported_tables: Map::new(),
imported_globals: Map::new(),
exports: HashMap::new(),
data_initializers: Vec::new(),
elem_initializers: Vec::new(),
start_func: None,
func_assoc: Map::new(),
sig_registry: SigRegistry::new(),
}
}
} }