34 lines
795 B
Python
34 lines
795 B
Python
import io
|
|
|
|
import pytest
|
|
|
|
from pywasm import binary
|
|
from pywasm import Runtime
|
|
|
|
from .helpers import wat2wasm
|
|
|
|
@pytest.mark.parametrize('size,offset,output', [
|
|
('32', 0, 0x3020100),
|
|
('32', 1, 0x4030201),
|
|
('64', 0, 0x706050403020100),
|
|
('64', 2, 0x908070605040302),
|
|
])
|
|
def test_i32_64_load(size, offset, output):
|
|
code_wat = f"""
|
|
(module
|
|
(memory 1)
|
|
(data (memory 0) (i32.const 0) "\\00\\01\\02\\03\\04\\05\\06\\07\\08\\09\\10")
|
|
|
|
(func (export "testEntry") (result i{size})
|
|
i32.const {offset}
|
|
i{size}.load
|
|
return ))
|
|
"""
|
|
code_wasm = wat2wasm(code_wat)
|
|
module = binary.Module.from_reader(io.BytesIO(code_wasm))
|
|
|
|
runtime = Runtime(module, {}, {})
|
|
|
|
out_put = runtime.exec('testEntry', [])
|
|
assert output == out_put
|