summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/unit/input/em_asm_mangled_string.wast11
-rw-r--r--test/unit/test_finalize.py14
2 files changed, 25 insertions, 0 deletions
diff --git a/test/unit/input/em_asm_mangled_string.wast b/test/unit/input/em_asm_mangled_string.wast
new file mode 100644
index 000000000..aa856270d
--- /dev/null
+++ b/test/unit/input/em_asm_mangled_string.wast
@@ -0,0 +1,11 @@
+(module
+ (import "env" "emscripten_asm_const_int" (func $emscripten_asm_const_int (param i32 i32 i32) (result i32)))
+ (global $global$0 (mut i32) (i32.const 66192))
+ (global $global$1 i32 (i32.const 652))
+ (export "__data_end" (global $global$1))
+ (export "main" (func $main))
+ (func $main (param $0 i32) (param $1 i32) (result i32)
+ (drop (call $emscripten_asm_const_int (local.get $0) (i32.const 0) (i32.const 0)))
+ (i32.const 0)
+ )
+)
diff --git a/test/unit/test_finalize.py b/test/unit/test_finalize.py
new file mode 100644
index 000000000..cdcfe27e8
--- /dev/null
+++ b/test/unit/test_finalize.py
@@ -0,0 +1,14 @@
+from scripts.test.shared import WASM_EMSCRIPTEN_FINALIZE, run_process
+from .utils import BinaryenTestCase
+import os
+
+
+class EmscriptenFinalizeTest(BinaryenTestCase):
+ def test_em_asm_mangled_string(self):
+ input_dir = os.path.dirname(__file__)
+ p = run_process(WASM_EMSCRIPTEN_FINALIZE + [
+ os.path.join(input_dir, 'input', 'em_asm_mangled_string.wast'), '-o', os.devnull, '--global-base=1024'
+ ], check=False, capture_output=True)
+ self.assertNotEqual(p.returncode, 0)
+ self.assertIn('Fatal: local.get of unknown in arg0 of call to $emscripten_asm_const_int (used by EM_ASM* macros) in function $main.', p.stderr)
+ self.assertIn('This might be caused by aggressive compiler transformations. Consider using EM_JS instead.', p.stderr)