mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-19 20:01:20 +00:00
Fix emtest compilation issues
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -1129,6 +1129,7 @@ dependencies = [
|
|||||||
"libc 0.2.44 (git+https://github.com/rust-lang/libc)",
|
"libc 0.2.44 (git+https://github.com/rust-lang/libc)",
|
||||||
"time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"wasmer 0.1.4",
|
||||||
"wasmer-clif-backend 0.1.4",
|
"wasmer-clif-backend 0.1.4",
|
||||||
"wasmer-runtime 0.1.4",
|
"wasmer-runtime 0.1.4",
|
||||||
]
|
]
|
||||||
|
@ -143,13 +143,19 @@ pub unsafe fn copy_stat_into_wasm(instance: &mut Instance, buf: u32, stat: &stat
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::is_emscripten_module;
|
use super::is_emscripten_module;
|
||||||
use wasmer_clif_backend::CraneliftCompiler;
|
use wasmer_clif_backend::CraneliftCompiler;
|
||||||
|
use wasmer_runtime::{
|
||||||
|
compile,
|
||||||
|
module::Module,
|
||||||
|
};
|
||||||
use wabt::wat2wasm;
|
use wabt::wat2wasm;
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn should_detect_emscripten_files() {
|
fn should_detect_emscripten_files() {
|
||||||
const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_true.wast");
|
const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_true.wast");
|
||||||
let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm");
|
let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm");
|
||||||
let module = wasmer_runtime::compile(&wasm_binary[..], &CraneliftCompiler::new()).expect("WASM can't be compiled");
|
let module = compile(&wasm_binary[..], &CraneliftCompiler::new()).expect("WASM can't be compiled");
|
||||||
|
let module = Arc::new(module);
|
||||||
assert!(is_emscripten_module(&module));
|
assert!(is_emscripten_module(&module));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,7 +163,8 @@ mod tests {
|
|||||||
fn should_detect_non_emscripten_files() {
|
fn should_detect_non_emscripten_files() {
|
||||||
const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_false.wast");
|
const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_false.wast");
|
||||||
let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm");
|
let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm");
|
||||||
let module = wasmer_runtime::compile(&wasm_binary[..], &CraneliftCompiler::new()).expect("WASM can't be compiled");
|
let module = compile(&wasm_binary[..], &CraneliftCompiler::new()).expect("WASM can't be compiled");
|
||||||
|
let module = Arc::new(module);
|
||||||
assert!(!is_emscripten_module(&module));
|
assert!(!is_emscripten_module(&module));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,29 +1,47 @@
|
|||||||
macro_rules! assert_emscripten_output {
|
macro_rules! assert_emscripten_output {
|
||||||
($file:expr, $name:expr, $args:expr, $expected:expr) => {{
|
($file:expr, $name:expr, $args:expr, $expected:expr) => {{
|
||||||
use wasmer_emscripten::generate_emscripten_env;
|
// TODO: Cyclic Dep!
|
||||||
// use wasmer::common::stdio::StdioCapturer;
|
use wasmer::{
|
||||||
use wasmer_runtime::{Import, Imports, FuncRef};
|
webassembly::{
|
||||||
use wasmer_runtime::table::TableBacking;
|
compile,
|
||||||
use wasmer_runtime::{Instance, module::Module};
|
start_instance,
|
||||||
|
},
|
||||||
|
common::stdio::StdioCapturer,
|
||||||
|
};
|
||||||
|
|
||||||
|
use wasmer_runtime::{
|
||||||
|
instance::Instance,
|
||||||
|
module::Module,
|
||||||
|
table::TableBacking
|
||||||
|
};
|
||||||
|
|
||||||
use wasmer_clif_backend::CraneliftCompiler;
|
use wasmer_clif_backend::CraneliftCompiler;
|
||||||
|
use wasmer_emscripten::{
|
||||||
|
EmscriptenGlobals,
|
||||||
|
generate_emscripten_env,
|
||||||
|
};
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
let wasm_bytes = include_bytes!($file);
|
let wasm_bytes = include_bytes!($file);
|
||||||
let import_object = generate_emscripten_env();
|
|
||||||
// let options = Some(InstanceOptions {
|
|
||||||
// mock_missing_imports: true,
|
|
||||||
// mock_missing_globals: true,
|
|
||||||
// mock_missing_tables: true,
|
|
||||||
// abi: InstanceABI::Emscripten,
|
|
||||||
// show_progressbar: false,
|
|
||||||
// // isa: get_isa(),
|
|
||||||
// });
|
|
||||||
// let mut result_object = instantiate(&wasm_bytes.to_vec(), &import_object, options)
|
|
||||||
// .expect("Not compiled properly");
|
|
||||||
|
|
||||||
let module = wasmer_runtime::compile(&wasm_bytes[..], &CraneliftCompiler::new()).expect("WASM can't be compiled");
|
let module = compile(&wasm_bytes[..])
|
||||||
let instance = module.instantiate(&import_object).expect("WASM can't be instantiated");
|
.map_err(|err| format!("Can't create the WebAssembly module: {}", err)).unwrap(); // NOTE: Need to figure what the unwrap is for ??
|
||||||
|
|
||||||
|
let emscripten_globals = EmscriptenGlobals::new();
|
||||||
|
let mut import_object = generate_emscripten_env(&emscripten_globals);
|
||||||
|
|
||||||
|
let mut instance = module.instantiate(import_object)
|
||||||
|
.map_err(|err| format!("Can't instantiate the WebAssembly module: {}", err)).unwrap(); // NOTE: Need to figure what the unwrap is for ??
|
||||||
|
|
||||||
|
start_instance(
|
||||||
|
Arc::clone(&module),
|
||||||
|
&mut instance,
|
||||||
|
$name,
|
||||||
|
$args,
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(false, "Emscripten tests are mocked");
|
||||||
|
|
||||||
// let capturer = StdioCapturer::new();
|
// let capturer = StdioCapturer::new();
|
||||||
// start_instance(
|
// start_instance(
|
||||||
@ -35,7 +53,7 @@ macro_rules! assert_emscripten_output {
|
|||||||
// .unwrap();
|
// .unwrap();
|
||||||
// let output = capturer.end().unwrap().0;
|
// let output = capturer.end().unwrap().0;
|
||||||
// let expected_output = include_str!($expected);
|
// let expected_output = include_str!($expected);
|
||||||
assert!(false, "Emscripten tests are mocked");
|
// assert!(false, "Emscripten tests are mocked");
|
||||||
// assert!(
|
// assert!(
|
||||||
// output.contains(expected_output),
|
// output.contains(expected_output),
|
||||||
// "Output: `{}` does not contain expected output: `{}`",
|
// "Output: `{}` does not contain expected output: `{}`",
|
||||||
|
@ -2,5 +2,5 @@ pub mod mmap;
|
|||||||
pub mod slice;
|
pub mod slice;
|
||||||
|
|
||||||
mod file_descriptor;
|
mod file_descriptor;
|
||||||
#[cfg(test)]
|
//#[cfg(test)]
|
||||||
pub mod stdio;
|
pub mod stdio;
|
Reference in New Issue
Block a user