Add addition em functions to run tests

This commit is contained in:
Brandon Fish
2019-01-27 00:33:58 -06:00
parent 12def9da25
commit 6bbdaa1c53
4 changed files with 38 additions and 3 deletions

View File

@ -191,5 +191,5 @@ pub extern "C" fn _sysconf(name: c_int, _ctx: &mut Ctx) -> c_long {
pub extern "C" fn ___assert_fail(a: c_int, b: c_int, c: c_int, d: c_int, _ctx: &mut Ctx) {
debug!("emscripten::___assert_fail {} {} {} {}", a, b, c, d);
// TODO: Implement like emscripten expects regarding memory/page size
unimplemented!()
// TODO raise an error
}

View File

@ -2344,6 +2344,30 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
},
);
env_namespace.insert(
"_emscripten_random",
Export::Function {
func: func!(math, _emscripten_random),
ctx: Context::Internal,
signature: FuncSig {
params: vec![],
returns: vec![F64],
},
},
);
env_namespace.insert(
"_gmtime",
Export::Function {
func: func!(time, _gmtime),
ctx: Context::Internal,
signature: FuncSig {
params: vec![I32],
returns: vec![I32],
},
},
);
// mock_external!(env_namespace, _time);
// mock_external!(env_namespace, _sysconf);
// mock_external!(env_namespace, _strftime);
@ -2383,6 +2407,7 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
// mock_external!(env_namespace, ___syscall102);
// mock_external!(env_namespace, ___syscall20);
mock_external!(env_namespace, _dlerror);
mock_external!(env_namespace, _gmtime);
imports.register("env", env_namespace);
imports.register("asm2wasm", asm_namespace);

View File

@ -14,12 +14,17 @@ pub extern "C" fn _llvm_log2_f64(value: f64, _ctx: &mut Ctx) -> f64 {
pub extern "C" fn _llvm_log10_f32(value: f64, _ctx: &mut Ctx) -> f64 {
debug!("emscripten::_llvm_log10_f32");
unimplemented!()
-1.0
}
pub extern "C" fn _llvm_log2_f32(value: f64, _ctx: &mut Ctx) -> f64 {
debug!("emscripten::_llvm_log10_f32");
unimplemented!()
-1.0
}
pub extern "C" fn _emscripten_random(_ctx: &mut Ctx) -> f64 {
debug!("emscripten::_emscripten_random");
-1.0
}
// emscripten: f64-rem

View File

@ -109,6 +109,11 @@ pub extern "C" fn _mktime(one: i32, ctx: &mut Ctx) -> i32 {
-1
}
pub extern "C" fn _gmtime(one: i32, ctx: &mut Ctx) -> i32 {
debug!("emscripten::_gmtime");
-1
}
#[repr(C)]
struct guest_tm {
pub tm_sec: c_int, // 0