mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-22 13:11:32 +00:00
Run emscripten tests with both compilers
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -1326,6 +1326,7 @@ dependencies = [
|
|||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"wasmer-clif-backend 0.2.0",
|
"wasmer-clif-backend 0.2.0",
|
||||||
|
"wasmer-llvm-backend 0.1.0",
|
||||||
"wasmer-runtime-core 0.2.1",
|
"wasmer-runtime-core 0.2.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
3
Makefile
3
Makefile
@ -45,7 +45,8 @@ test:
|
|||||||
cargo test -p wasmer-runtime-c-api -- --nocapture
|
cargo test -p wasmer-runtime-c-api -- --nocapture
|
||||||
|
|
||||||
test-emscripten:
|
test-emscripten:
|
||||||
cargo test -p wasmer-emscripten -- --test-threads=1 $(runargs)
|
cargo test --manifest-path lib/spectests/Cargo.toml --features clif -- --test-threads=1 $(runargs)
|
||||||
|
cargo test --manifest-path lib/spectests/Cargo.toml --features llvm -- --test-threads=1 $(runargs)
|
||||||
|
|
||||||
release:
|
release:
|
||||||
# If you are in OS-X, you will need mingw-w64 for cross compiling to windows
|
# If you are in OS-X, you will need mingw-w64 for cross compiling to windows
|
||||||
|
@ -20,7 +20,12 @@ rand = "0.6"
|
|||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
wasmer-clif-backend = { path = "../clif-backend", version = "0.2.0" }
|
wasmer-clif-backend = { path = "../clif-backend", version = "0.2.0" }
|
||||||
|
wasmer-llvm-backend = { path = "../llvm-backend", version = "0.1.0" }
|
||||||
wabt = "0.7.2"
|
wabt = "0.7.2"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
glob = "0.2.11"
|
glob = "0.2.11"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
clif = []
|
||||||
|
llvm = []
|
@ -169,15 +169,34 @@ mod tests {
|
|||||||
use super::is_emscripten_module;
|
use super::is_emscripten_module;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use wabt::wat2wasm;
|
use wabt::wat2wasm;
|
||||||
use wasmer_clif_backend::CraneliftCompiler;
|
use wasmer_runtime_core::backend::Compiler;
|
||||||
use wasmer_runtime_core::compile_with;
|
use wasmer_runtime_core::compile_with;
|
||||||
|
|
||||||
|
#[cfg(feature = "clif")]
|
||||||
|
fn get_compiler() -> impl Compiler {
|
||||||
|
use wasmer_clif_backend::CraneliftCompiler;
|
||||||
|
CraneliftCompiler::new()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "llvm")]
|
||||||
|
fn get_compiler() -> impl Compiler {
|
||||||
|
use wasmer_llvm_backend::LLVMCompiler;
|
||||||
|
LLVMCompiler::new()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(any(feature = "llvm", feature = "clif")))]
|
||||||
|
fn get_compiler() -> impl Compiler {
|
||||||
|
panic!("compiler not specified, activate a compiler via features");
|
||||||
|
use wasmer_clif_backend::CraneliftCompiler;
|
||||||
|
CraneliftCompiler::new()
|
||||||
|
}
|
||||||
|
|
||||||
#[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 = compile_with(&wasm_binary[..], &CraneliftCompiler::new())
|
let module =
|
||||||
.expect("WASM can't be compiled");
|
compile_with(&wasm_binary[..], &get_compiler()).expect("WASM can't be compiled");
|
||||||
let module = Arc::new(module);
|
let module = Arc::new(module);
|
||||||
assert!(is_emscripten_module(&module));
|
assert!(is_emscripten_module(&module));
|
||||||
}
|
}
|
||||||
@ -186,8 +205,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 = compile_with(&wasm_binary[..], &CraneliftCompiler::new())
|
let module =
|
||||||
.expect("WASM can't be compiled");
|
compile_with(&wasm_binary[..], &get_compiler()).expect("WASM can't be compiled");
|
||||||
let module = Arc::new(module);
|
let module = Arc::new(module);
|
||||||
assert!(!is_emscripten_module(&module));
|
assert!(!is_emscripten_module(&module));
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,35 @@
|
|||||||
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_clif_backend::CraneliftCompiler;
|
|
||||||
use wasmer_emscripten::{
|
use wasmer_emscripten::{
|
||||||
EmscriptenGlobals,
|
EmscriptenGlobals,
|
||||||
generate_emscripten_env,
|
generate_emscripten_env,
|
||||||
stdio::StdioCapturer
|
stdio::StdioCapturer
|
||||||
};
|
};
|
||||||
|
use wasmer_runtime_core::backend::Compiler;
|
||||||
|
|
||||||
|
#[cfg(feature = "clif")]
|
||||||
|
fn get_compiler() -> impl Compiler {
|
||||||
|
use wasmer_clif_backend::CraneliftCompiler;
|
||||||
|
CraneliftCompiler::new()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "llvm")]
|
||||||
|
fn get_compiler() -> impl Compiler {
|
||||||
|
use wasmer_llvm_backend::LLVMCompiler;
|
||||||
|
LLVMCompiler::new()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(any(feature = "llvm", feature = "clif")))]
|
||||||
|
fn get_compiler() -> impl Compiler {
|
||||||
|
panic!("compiler not specified, activate a compiler via features");
|
||||||
|
use wasmer_clif_backend::CraneliftCompiler;
|
||||||
|
CraneliftCompiler::new()
|
||||||
|
}
|
||||||
|
|
||||||
let wasm_bytes = include_bytes!($file);
|
let wasm_bytes = include_bytes!($file);
|
||||||
|
|
||||||
let module = wasmer_runtime_core::compile_with(&wasm_bytes[..], &CraneliftCompiler::new())
|
let module = wasmer_runtime_core::compile_with(&wasm_bytes[..], &get_compiler())
|
||||||
.expect("WASM can't be compiled");
|
.expect("WASM can't be compiled");
|
||||||
|
|
||||||
// let module = compile(&wasm_bytes[..])
|
// let module = compile(&wasm_bytes[..])
|
||||||
|
Reference in New Issue
Block a user