summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ctor-eval/memory-init.wast22
-rw-r--r--test/ctor-eval/memory-init.wast.ctors1
-rw-r--r--test/ctor-eval/memory-init.wast.out18
3 files changed, 41 insertions, 0 deletions
diff --git a/test/ctor-eval/memory-init.wast b/test/ctor-eval/memory-init.wast
new file mode 100644
index 000000000..b910aa2f3
--- /dev/null
+++ b/test/ctor-eval/memory-init.wast
@@ -0,0 +1,22 @@
+(module
+ (memory $0 1)
+ (data (i32.const 0) "__________")
+ (data (i32.const 20) "__________")
+ (func "test1"
+ ;; A store that can be evalled.
+ (i32.store8
+ (i32.const 4)
+ (i32.const 100)
+ )
+
+ ;; A memory init cannot be evalled since ctor-eval flattens memory segments
+ ;; atm. We lose the identity of them as a result as they are all merged
+ ;; into a single big segment. We could fix that eventually.
+ (memory.init 1
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ )
+)
+
diff --git a/test/ctor-eval/memory-init.wast.ctors b/test/ctor-eval/memory-init.wast.ctors
new file mode 100644
index 000000000..a5bce3fd2
--- /dev/null
+++ b/test/ctor-eval/memory-init.wast.ctors
@@ -0,0 +1 @@
+test1
diff --git a/test/ctor-eval/memory-init.wast.out b/test/ctor-eval/memory-init.wast.out
new file mode 100644
index 000000000..6019ea277
--- /dev/null
+++ b/test/ctor-eval/memory-init.wast.out
@@ -0,0 +1,18 @@
+(module
+ (type $none_=>_none (func))
+ (memory $0 1)
+ (data (i32.const 0) "__________")
+ (data (i32.const 20) "__________")
+ (export "test1" (func $0))
+ (func $0
+ (i32.store8
+ (i32.const 4)
+ (i32.const 100)
+ )
+ (memory.init 1
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ )
+)