mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-27 15:41:33 +00:00
add lua integration test (#109)
This commit is contained in:
@ -42,6 +42,7 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
sudo apt-get install -y cmake
|
sudo apt-get install -y cmake
|
||||||
- run: make test
|
- run: make test
|
||||||
|
- run: make integration-tests
|
||||||
- save_cache:
|
- save_cache:
|
||||||
paths:
|
paths:
|
||||||
- /usr/local/cargo/registry
|
- /usr/local/cargo/registry
|
||||||
|
2
Makefile
2
Makefile
@ -23,7 +23,7 @@ install:
|
|||||||
|
|
||||||
integration-tests: release
|
integration-tests: release
|
||||||
echo "Running Integration Tests"
|
echo "Running Integration Tests"
|
||||||
# Commented for now until we fix emscripten
|
./integration_tests/lua/test.sh
|
||||||
./integration_tests/nginx/test.sh
|
./integration_tests/nginx/test.sh
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
|
9
integration_tests/lua/README.md
Normal file
9
integration_tests/lua/README.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# `lua` integration test
|
||||||
|
|
||||||
|
|
||||||
|
This starts wasmer with the lua wasm file. The test asserts on
|
||||||
|
the output of wasmer. Run test with:
|
||||||
|
|
||||||
|
```
|
||||||
|
> ./integration_tests/lua/test.sh
|
||||||
|
```
|
15
integration_tests/lua/test.sh
Executable file
15
integration_tests/lua/test.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
nohup ./target/release/wasmer run examples/lua.wasm &
|
||||||
|
sleep 3s
|
||||||
|
|
||||||
|
if grep "Lua 5.4.0 Copyright (C) 1994-2018 Lua.org, PUC-Rio" ./nohup.out
|
||||||
|
then
|
||||||
|
echo "lua integration test succeeded"
|
||||||
|
rm ./nohup.out
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "lua integration test failed"
|
||||||
|
rm ./nohup.out
|
||||||
|
exit -1
|
||||||
|
fi
|
@ -7,20 +7,19 @@ use wasmer_runtime_core::vm::Ctx;
|
|||||||
pub fn __setjmp(env_addr: u32, ctx: &mut Ctx) -> c_int {
|
pub fn __setjmp(env_addr: u32, ctx: &mut Ctx) -> c_int {
|
||||||
debug!("emscripten::__setjmp (setjmp)");
|
debug!("emscripten::__setjmp (setjmp)");
|
||||||
unsafe {
|
unsafe {
|
||||||
unimplemented!()
|
// Rather than using the env as the holder of the jump buffer pointer,
|
||||||
// // Rather than using the env as the holder of the jump buffer pointer,
|
// we use the environment address to store the index relative to jumps
|
||||||
// // we use the environment address to store the index relative to jumps
|
// so the address of the jump it's outside the wasm memory itself.
|
||||||
// // so the address of the jump it's outside the wasm memory itself.
|
let jump_index = emscripten_memory_pointer!(ctx.memory(0), env_addr) as *mut i8;
|
||||||
// let jump_index = ctx.memory(0).as_ptr().add(env_addr as usize) as *mut i8;
|
// We create the jump buffer outside of the wasm memory
|
||||||
// // We create the jump buffer outside of the wasm memory
|
let jump_buf: UnsafeCell<[u32; 27]> = UnsafeCell::new([0; 27]);
|
||||||
// let jump_buf: UnsafeCell<[c_int; 27]> = UnsafeCell::new([0; 27]);
|
let jumps = &mut get_emscripten_data(ctx).jumps;
|
||||||
// let jumps = &mut get_emscripten_data(ctx).jumps;
|
let result = setjmp(jump_buf.get() as _);
|
||||||
// let result = setjmp(jump_buf.get() as _);
|
// We set the jump index to be the last value of jumps
|
||||||
// // We set the jump index to be the last value of jumps
|
*jump_index = jumps.len() as _;
|
||||||
// *jump_index = jumps.len() as _;
|
// We hold the reference of the jump buffer
|
||||||
// // We hold the reference of the jump buffer
|
jumps.push(jump_buf);
|
||||||
// jumps.push(jump_buf);
|
result
|
||||||
// result
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user