summaryrefslogtreecommitdiff
path: root/test/lit/wasm-emscripten-finalize/em_asm.wat
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/wasm-emscripten-finalize/em_asm.wat')
-rw-r--r--test/lit/wasm-emscripten-finalize/em_asm.wat29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/lit/wasm-emscripten-finalize/em_asm.wat b/test/lit/wasm-emscripten-finalize/em_asm.wat
new file mode 100644
index 000000000..43dbfb9ae
--- /dev/null
+++ b/test/lit/wasm-emscripten-finalize/em_asm.wat
@@ -0,0 +1,29 @@
+;; Test that em_asm string are extracted correctly when the __start_em_asm
+;; and __stop_em_asm globals are exported.
+
+;; RUN: wasm-emscripten-finalize %s -S | filecheck %s
+
+;; Check that the data segment that contains only EM_ASM strings resized to
+;; zero, and that the string are extracted into the metadata.
+
+;; CHECK: (data (i32.const 100) "normal data")
+;; CHECK-NEXT: (data (i32.const 512) "")
+;; CHECK-NEXT: (data (i32.const 1024) "more data")
+
+;; CHECK: "asmConsts": {
+;; CHECK-NEXT: "512": "{ console.log('JS hello'); }",
+;; CHECK-NEXT: "541": "{ console.log('hello again'); }"
+;; CHECK-NEXT: },
+
+;; Check that the exports are removed
+;; CHECK-NOT: export
+
+(module
+ (memory 1 1)
+ (global (export "__start_em_asm") i32 (i32.const 512))
+ (global (export "__stop_em_asm") i32 (i32.const 573))
+
+ (data (i32.const 100) "normal data")
+ (data (i32.const 512) "{ console.log('JS hello'); }\00{ console.log('hello again'); }\00")
+ (data (i32.const 1024) "more data")
+)