summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKeith Winstein <keithw@cs.stanford.edu>2023-03-13 15:07:41 -0700
committerGitHub <noreply@github.com>2023-03-13 22:07:41 +0000
commit1d0a6334cb1e9536c60df46840bc90dd6ad19a30 (patch)
tree39c3d6aee39b494e84258f59112bfdbf783f24fc /test
parentc1de8eb9b0e4c37acd1b5ef4c55ac53ba31eae02 (diff)
downloadwabt-1d0a6334cb1e9536c60df46840bc90dd6ad19a30.tar.gz
wabt-1d0a6334cb1e9536c60df46840bc90dd6ad19a30.tar.bz2
wabt-1d0a6334cb1e9536c60df46840bc90dd6ad19a30.zip
Add new tests (#2168)
Fixes a wasm2c bug where instantiation was initializing memories before tables. The spec requires tables to be initialized before memories (newly tested in the multi-memory linking0 test). Remaining missing tests are: - multi-memory/memory_copy1.txt (currently blank) - relaxed-simd/relaxed_dot_product.txt (we don't support the i16x8.relaxed_dot_i8x16_i7x16_s instruction) And for wasm2c only: - five SIMD tests (https://github.com/WebAssembly/wabt/pull/2021#issuecomment-1396386135) - all relaxed-simd and tail-call tests
Diffstat (limited to 'test')
-rw-r--r--test/spec/multi-memory/address0.txt23
-rw-r--r--test/spec/multi-memory/address1.txt28
-rw-r--r--test/spec/multi-memory/align0.txt6
-rw-r--r--test/spec/multi-memory/binary0.txt10
-rw-r--r--test/spec/multi-memory/data0.txt6
-rw-r--r--test/spec/multi-memory/data1.txt6
-rw-r--r--test/spec/multi-memory/data_drop0.txt14
-rw-r--r--test/spec/multi-memory/exports0.txt6
-rw-r--r--test/spec/multi-memory/float_exprs0.txt11
-rw-r--r--test/spec/multi-memory/float_exprs1.txt6
-rw-r--r--test/spec/multi-memory/float_memory0.txt14
-rw-r--r--test/spec/multi-memory/imports0.txt18
-rw-r--r--test/spec/multi-memory/imports1.txt7
-rw-r--r--test/spec/multi-memory/imports2.txt20
-rw-r--r--test/spec/multi-memory/imports3.txt22
-rw-r--r--test/spec/multi-memory/imports4.txt6
-rw-r--r--test/spec/multi-memory/linking0.txt9
-rw-r--r--test/spec/multi-memory/linking1.txt6
-rw-r--r--test/spec/multi-memory/linking2.txt6
-rw-r--r--test/spec/multi-memory/linking3.txt8
-rw-r--r--test/spec/multi-memory/load0.txt6
-rw-r--r--test/spec/multi-memory/load1.txt6
-rw-r--r--test/spec/multi-memory/load2.txt6
-rw-r--r--test/spec/multi-memory/memory_copy0.txt15
-rw-r--r--test/spec/multi-memory/memory_fill0.txt12
-rw-r--r--test/spec/multi-memory/memory_init0.txt13
-rw-r--r--test/spec/multi-memory/memory_size0.txt6
-rw-r--r--test/spec/multi-memory/memory_size1.txt6
-rw-r--r--test/spec/multi-memory/memory_size2.txt6
-rw-r--r--test/spec/multi-memory/memory_size3.txt12
-rw-r--r--test/spec/multi-memory/memory_trap0.txt16
-rw-r--r--test/spec/multi-memory/memory_trap1.txt166
-rw-r--r--test/spec/multi-memory/simd_memory-multi.txt6
-rw-r--r--test/spec/multi-memory/start0.txt8
-rw-r--r--test/spec/multi-memory/store0.txt8
-rw-r--r--test/spec/multi-memory/store1.txt10
-rw-r--r--test/spec/multi-memory/traps0.txt20
-rw-r--r--test/spec/simd_linking.txt5
-rw-r--r--test/wasm2c/hello.txt4
-rw-r--r--test/wasm2c/spec/multi-memory/address0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/address1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/align0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/binary0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/data0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/data1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/data_drop0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/exports0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/float_exprs0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/float_exprs1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/float_memory0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/imports0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/imports1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/imports2.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/imports3.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/imports4.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/linking0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/linking1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/linking2.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/linking3.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/load0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/load1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/load2.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_copy0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_fill0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_init0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_size0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_size1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_size2.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_size3.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_trap0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/memory_trap1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/simd_memory-multi.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/start0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/store0.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/store1.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/traps0.txt6
-rw-r--r--test/wasm2c/spec/simd_linking.txt5
77 files changed, 788 insertions, 2 deletions
diff --git a/test/spec/multi-memory/address0.txt b/test/spec/multi-memory/address0.txt
new file mode 100644
index 00000000..633bacb5
--- /dev/null
+++ b/test/spec/multi-memory/address0.txt
@@ -0,0 +1,23 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/address0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/address0.wast:193: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/address0.wast:195: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address0.wast:196: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address0.wast:197: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address0.wast:198: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address0.wast:199: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536
+out/test/spec/multi-memory/address0.wast:200: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536
+out/test/spec/multi-memory/address0.wast:202: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/address0.wast:203: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/address0.wast:204: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/address0.wast:205: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/address0.wast:206: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/address0.wast:208: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address0.wast:209: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address0.wast:210: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address0.wast:211: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address0.wast:212: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536
+92/92 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/address1.txt b/test/spec/multi-memory/address1.txt
new file mode 100644
index 00000000..28484a66
--- /dev/null
+++ b/test/spec/multi-memory/address1.txt
@@ -0,0 +1,28 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/address1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/address1.wast:270: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+out/test/spec/multi-memory/address1.wast:272: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address1.wast:273: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address1.wast:274: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address1.wast:275: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address1.wast:276: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536
+out/test/spec/multi-memory/address1.wast:277: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536
+out/test/spec/multi-memory/address1.wast:278: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536
+out/test/spec/multi-memory/address1.wast:280: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/address1.wast:281: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/address1.wast:282: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/address1.wast:283: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/address1.wast:284: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/address1.wast:285: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/address1.wast:286: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536
+out/test/spec/multi-memory/address1.wast:288: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address1.wast:289: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536
+out/test/spec/multi-memory/address1.wast:290: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address1.wast:291: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536
+out/test/spec/multi-memory/address1.wast:292: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/address1.wast:293: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/address1.wast:294: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536
+127/127 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/align0.txt b/test/spec/multi-memory/align0.txt
new file mode 100644
index 00000000..e0bed446
--- /dev/null
+++ b/test/spec/multi-memory/align0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/align0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+5/5 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/binary0.txt b/test/spec/multi-memory/binary0.txt
new file mode 100644
index 00000000..4c6b712a
--- /dev/null
+++ b/test/spec/multi-memory/binary0.txt
@@ -0,0 +1,10 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/binary0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/binary0.wast:48: assert_malformed passed:
+ 000000e: error: unable to read u32 leb128: memory initial page count
+out/test/spec/multi-memory/binary0.wast:59: assert_malformed passed:
+ 000000d: error: unable to read uint8_t: memory flags
+7/7 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/data0.txt b/test/spec/multi-memory/data0.txt
new file mode 100644
index 00000000..2c1bfcb0
--- /dev/null
+++ b/test/spec/multi-memory/data0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/data0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+7/7 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/data1.txt b/test/spec/multi-memory/data1.txt
new file mode 100644
index 00000000..dbde47d6
--- /dev/null
+++ b/test/spec/multi-memory/data1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/data1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+14/14 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/data_drop0.txt b/test/spec/multi-memory/data_drop0.txt
new file mode 100644
index 00000000..315e5c0a
--- /dev/null
+++ b/test/spec/multi-memory/data_drop0.txt
@@ -0,0 +1,14 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/data_drop0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+init_passive(i32:1) =>
+drop_passive() =>
+drop_passive() =>
+out/test/spec/multi-memory/data_drop0.wast:22: assert_trap passed: out of bounds memory access: memory.init out of bounds
+init_passive(i32:0) =>
+drop_active() =>
+out/test/spec/multi-memory/data_drop0.wast:26: assert_trap passed: out of bounds memory access: memory.init out of bounds
+init_active(i32:0) =>
+11/11 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/exports0.txt b/test/spec/multi-memory/exports0.txt
new file mode 100644
index 00000000..36c69915
--- /dev/null
+++ b/test/spec/multi-memory/exports0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/exports0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/float_exprs0.txt b/test/spec/multi-memory/float_exprs0.txt
new file mode 100644
index 00000000..3bb933cf
--- /dev/null
+++ b/test/spec/multi-memory/float_exprs0.txt
@@ -0,0 +1,11 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/float_exprs0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+init(i32:0, f64:15.100000) =>
+init(i32:8, f64:15.200000) =>
+init(i32:16, f64:15.300000) =>
+init(i32:24, f64:15.400000) =>
+run(i32:32, f64:3.000000) =>
+14/14 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/float_exprs1.txt b/test/spec/multi-memory/float_exprs1.txt
new file mode 100644
index 00000000..70ddfaae
--- /dev/null
+++ b/test/spec/multi-memory/float_exprs1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/float_exprs1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+3/3 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/float_memory0.txt b/test/spec/multi-memory/float_memory0.txt
new file mode 100644
index 00000000..fbd0541f
--- /dev/null
+++ b/test/spec/multi-memory/float_memory0.txt
@@ -0,0 +1,14 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/float_memory0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+reset() =>
+f32.store() =>
+reset() =>
+i32.store() =>
+reset() =>
+f64.store() =>
+reset() =>
+i64.store() =>
+30/30 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/imports0.txt b/test/spec/multi-memory/imports0.txt
new file mode 100644
index 00000000..a22cb035
--- /dev/null
+++ b/test/spec/multi-memory/imports0.txt
@@ -0,0 +1,18 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/imports0.wast:21: assert_unlinkable passed:
+ error: expected import "test.memory-2-inf" to have kind func, not memory
+out/test/spec/multi-memory/imports0.wast:25: assert_unlinkable passed:
+ error: expected import "test.memory-2-4" to have kind func, not memory
+out/test/spec/multi-memory/imports0.wast:30: assert_unlinkable passed:
+ error: expected import "test.memory-2-inf" to have kind global, not memory
+out/test/spec/multi-memory/imports0.wast:34: assert_unlinkable passed:
+ error: expected import "test.memory-2-4" to have kind global, not memory
+out/test/spec/multi-memory/imports0.wast:39: assert_unlinkable passed:
+ error: expected import "test.memory-2-inf" to have kind table, not memory
+out/test/spec/multi-memory/imports0.wast:43: assert_unlinkable passed:
+ error: expected import "test.memory-2-4" to have kind table, not memory
+7/7 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/imports1.txt b/test/spec/multi-memory/imports1.txt
new file mode 100644
index 00000000..4adacb78
--- /dev/null
+++ b/test/spec/multi-memory/imports1.txt
@@ -0,0 +1,7 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/imports1.wast:15: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+5/5 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/imports2.txt b/test/spec/multi-memory/imports2.txt
new file mode 100644
index 00000000..0925b65d
--- /dev/null
+++ b/test/spec/multi-memory/imports2.txt
@@ -0,0 +1,20 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/imports2.wast:20: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/multi-memory/imports2.wast:31: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/multi-memory/imports2.wast:49: assert_unlinkable passed:
+ error: invalid import "test.unknown"
+out/test/spec/multi-memory/imports2.wast:53: assert_unlinkable passed:
+ error: invalid import "spectest.unknown"
+out/test/spec/multi-memory/imports2.wast:58: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/multi-memory/imports2.wast:62: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (3)
+out/test/spec/multi-memory/imports2.wast:66: assert_unlinkable passed:
+ error: actual size (1) smaller than declared (2)
+out/test/spec/multi-memory/imports2.wast:70: assert_unlinkable passed:
+ error: max size (2) larger than declared (1)
+19/19 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/imports3.txt b/test/spec/multi-memory/imports3.txt
new file mode 100644
index 00000000..da8df8a7
--- /dev/null
+++ b/test/spec/multi-memory/imports3.txt
@@ -0,0 +1,22 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports3.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/imports3.wast:20: assert_unlinkable passed:
+ error: expected import "test.func-i32" to have kind memory, not func
+out/test/spec/multi-memory/imports3.wast:27: assert_unlinkable passed:
+ error: expected import "test.global-i32" to have kind memory, not global
+out/test/spec/multi-memory/imports3.wast:34: assert_unlinkable passed:
+ error: expected import "test.table-10-inf" to have kind memory, not table
+out/test/spec/multi-memory/imports3.wast:41: assert_unlinkable passed:
+ error: expected import "spectest.print_i32" to have kind memory, not func
+out/test/spec/multi-memory/imports3.wast:48: assert_unlinkable passed:
+ error: expected import "spectest.global_i32" to have kind memory, not global
+out/test/spec/multi-memory/imports3.wast:55: assert_unlinkable passed:
+ error: expected import "spectest.table" to have kind memory, not table
+out/test/spec/multi-memory/imports3.wast:63: assert_unlinkable passed:
+ error: actual size (1) smaller than declared (2)
+out/test/spec/multi-memory/imports3.wast:70: assert_unlinkable passed:
+ error: max size (2) larger than declared (1)
+9/9 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/imports4.txt b/test/spec/multi-memory/imports4.txt
new file mode 100644
index 00000000..4462104d
--- /dev/null
+++ b/test/spec/multi-memory/imports4.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports4.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+13/13 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/linking0.txt b/test/spec/multi-memory/linking0.txt
new file mode 100644
index 00000000..dc631fcc
--- /dev/null
+++ b/test/spec/multi-memory/linking0.txt
@@ -0,0 +1,9 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/linking0.wast:17: assert_unlinkable passed:
+ error: invalid import "Mt.mem"
+out/test/spec/multi-memory/linking0.wast:27: assert_trap passed: uninitialized table element
+5/5 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/linking1.txt b/test/spec/multi-memory/linking1.txt
new file mode 100644
index 00000000..14e12fde
--- /dev/null
+++ b/test/spec/multi-memory/linking1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+13/13 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/linking2.txt b/test/spec/multi-memory/linking2.txt
new file mode 100644
index 00000000..64734fd7
--- /dev/null
+++ b/test/spec/multi-memory/linking2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+10/10 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/linking3.txt b/test/spec/multi-memory/linking3.txt
new file mode 100644
index 00000000..56249597
--- /dev/null
+++ b/test/spec/multi-memory/linking3.txt
@@ -0,0 +1,8 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking3.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/linking3.wast:15: assert_unlinkable passed:
+ error: invalid import "Mm.tab"
+12/12 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/load0.txt b/test/spec/multi-memory/load0.txt
new file mode 100644
index 00000000..32209c01
--- /dev/null
+++ b/test/spec/multi-memory/load0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/load0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+3/3 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/load1.txt b/test/spec/multi-memory/load1.txt
new file mode 100644
index 00000000..03afbc73
--- /dev/null
+++ b/test/spec/multi-memory/load1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/load1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+17/17 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/load2.txt b/test/spec/multi-memory/load2.txt
new file mode 100644
index 00000000..279e6d09
--- /dev/null
+++ b/test/spec/multi-memory/load2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/load2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+38/38 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_copy0.txt b/test/spec/multi-memory/memory_copy0.txt
new file mode 100644
index 00000000..d54e6c2a
--- /dev/null
+++ b/test/spec/multi-memory/memory_copy0.txt
@@ -0,0 +1,15 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_copy0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+copy(i32:10, i32:0, i32:4) =>
+copy(i32:8, i32:10, i32:4) =>
+copy(i32:10, i32:7, i32:6) =>
+copy(i32:65280, i32:0, i32:256) =>
+copy(i32:65024, i32:65280, i32:256) =>
+copy(i32:65536, i32:0, i32:0) =>
+copy(i32:0, i32:65536, i32:0) =>
+out/test/spec/multi-memory/memory_copy0.wast:56: assert_trap passed: out of bounds memory access: memory.copy out of bound
+out/test/spec/multi-memory/memory_copy0.wast:58: assert_trap passed: out of bounds memory access: memory.copy out of bound
+29/29 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_fill0.txt b/test/spec/multi-memory/memory_fill0.txt
new file mode 100644
index 00000000..df8d9d71
--- /dev/null
+++ b/test/spec/multi-memory/memory_fill0.txt
@@ -0,0 +1,12 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_fill0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+fill(i32:1, i32:255, i32:3) =>
+fill(i32:0, i32:48042, i32:2) =>
+fill(i32:0, i32:0, i32:65536) =>
+out/test/spec/multi-memory/memory_fill0.wast:34: assert_trap passed: out of bounds memory access: memory.fill out of bounds
+fill(i32:65536, i32:0, i32:0) =>
+out/test/spec/multi-memory/memory_fill0.wast:43: assert_trap passed: out of bounds memory access: memory.fill out of bounds
+16/16 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_init0.txt b/test/spec/multi-memory/memory_init0.txt
new file mode 100644
index 00000000..3e1bccff
--- /dev/null
+++ b/test/spec/multi-memory/memory_init0.txt
@@ -0,0 +1,13 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_init0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+init(i32:0, i32:1, i32:2) =>
+init(i32:65532, i32:0, i32:4) =>
+out/test/spec/multi-memory/memory_init0.wast:28: assert_trap passed: out of bounds memory access: memory.init out of bounds
+init(i32:65536, i32:0, i32:0) =>
+init(i32:0, i32:4, i32:0) =>
+out/test/spec/multi-memory/memory_init0.wast:38: assert_trap passed: out of bounds memory access: memory.init out of bounds
+out/test/spec/multi-memory/memory_init0.wast:40: assert_trap passed: out of bounds memory access: memory.init out of bounds
+13/13 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_size0.txt b/test/spec/multi-memory/memory_size0.txt
new file mode 100644
index 00000000..7a5205b2
--- /dev/null
+++ b/test/spec/multi-memory/memory_size0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_size1.txt b/test/spec/multi-memory/memory_size1.txt
new file mode 100644
index 00000000..3edaf2d5
--- /dev/null
+++ b/test/spec/multi-memory/memory_size1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+15/15 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_size2.txt b/test/spec/multi-memory/memory_size2.txt
new file mode 100644
index 00000000..519cea9c
--- /dev/null
+++ b/test/spec/multi-memory/memory_size2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+21/21 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_size3.txt b/test/spec/multi-memory/memory_size3.txt
new file mode 100644
index 00000000..c99a6115
--- /dev/null
+++ b/test/spec/multi-memory/memory_size3.txt
@@ -0,0 +1,12 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size3.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/memory_size3.wast:4: assert_invalid passed:
+ out/test/spec/multi-memory/memory_size3/memory_size3.0.wasm:0000023: error: type mismatch at end of function, expected [] but got [i32]
+ 0000023: error: EndFunctionBody callback failed
+out/test/spec/multi-memory/memory_size3.wast:15: assert_invalid passed:
+ out/test/spec/multi-memory/memory_size3/memory_size3.1.wasm:0000026: error: type mismatch in implicit return, expected [f32] but got [i32]
+ 0000026: error: EndFunctionBody callback failed
+2/2 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_trap0.txt b/test/spec/multi-memory/memory_trap0.txt
new file mode 100644
index 00000000..3232370d
--- /dev/null
+++ b/test/spec/multi-memory/memory_trap0.txt
@@ -0,0 +1,16 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_trap0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/memory_trap0.wast:25: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:26: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:27: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:28: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:29: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:30: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:31: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:32: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:33: assert_trap passed: out of bounds memory access: access at 2147549184+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap0.wast:34: assert_trap passed: out of bounds memory access: access at 2147549184+4 >= max value 65536
+14/14 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_trap1.txt b/test/spec/multi-memory/memory_trap1.txt
new file mode 100644
index 00000000..e09f3392
--- /dev/null
+++ b/test/spec/multi-memory/memory_trap1.txt
@@ -0,0 +1,166 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_trap1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/memory_trap1.wast:79: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:80: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:81: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:82: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:83: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:84: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:85: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:86: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:87: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:88: assert_trap passed: out of bounds memory access: access at 65535+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:89: assert_trap passed: out of bounds memory access: access at 65534+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:90: assert_trap passed: out of bounds memory access: access at 65533+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:91: assert_trap passed: out of bounds memory access: access at 65532+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:92: assert_trap passed: out of bounds memory access: access at 65531+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:93: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:94: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:95: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:96: assert_trap passed: out of bounds memory access: access at 4294967294+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:97: assert_trap passed: out of bounds memory access: access at 4294967293+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:98: assert_trap passed: out of bounds memory access: access at 4294967292+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:99: assert_trap passed: out of bounds memory access: access at 4294967291+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:100: assert_trap passed: out of bounds memory access: access at 4294967290+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:101: assert_trap passed: out of bounds memory access: access at 4294967289+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:102: assert_trap passed: out of bounds memory access: access at 4294967288+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:103: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:104: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:105: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:106: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:107: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:108: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:109: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:110: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:111: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:112: assert_trap passed: out of bounds memory access: access at 65535+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:113: assert_trap passed: out of bounds memory access: access at 65534+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:114: assert_trap passed: out of bounds memory access: access at 65533+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:115: assert_trap passed: out of bounds memory access: access at 65532+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:116: assert_trap passed: out of bounds memory access: access at 65531+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:117: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:118: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:119: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:120: assert_trap passed: out of bounds memory access: access at 4294967294+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:121: assert_trap passed: out of bounds memory access: access at 4294967293+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:122: assert_trap passed: out of bounds memory access: access at 4294967292+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:123: assert_trap passed: out of bounds memory access: access at 4294967291+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:124: assert_trap passed: out of bounds memory access: access at 4294967290+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:125: assert_trap passed: out of bounds memory access: access at 4294967289+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:126: assert_trap passed: out of bounds memory access: access at 4294967288+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:127: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:128: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:129: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:130: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:131: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:132: assert_trap passed: out of bounds memory access: access at 4294967294+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:133: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:134: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:135: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:136: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:137: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:138: assert_trap passed: out of bounds memory access: access at 4294967294+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:139: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:140: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:141: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:142: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:143: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:144: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:145: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:146: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:147: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:148: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:149: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:150: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:151: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:152: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:153: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:154: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:155: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:156: assert_trap passed: out of bounds memory access: access at 65535+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:157: assert_trap passed: out of bounds memory access: access at 65534+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:158: assert_trap passed: out of bounds memory access: access at 65533+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:159: assert_trap passed: out of bounds memory access: access at 65532+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:160: assert_trap passed: out of bounds memory access: access at 65531+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:161: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:162: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:163: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:164: assert_trap passed: out of bounds memory access: access at 4294967294+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:165: assert_trap passed: out of bounds memory access: access at 4294967293+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:166: assert_trap passed: out of bounds memory access: access at 4294967292+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:167: assert_trap passed: out of bounds memory access: access at 4294967291+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:168: assert_trap passed: out of bounds memory access: access at 4294967290+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:169: assert_trap passed: out of bounds memory access: access at 4294967289+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:170: assert_trap passed: out of bounds memory access: access at 4294967288+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:171: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:172: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:173: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:174: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:175: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:176: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:177: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:178: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:179: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:180: assert_trap passed: out of bounds memory access: access at 65535+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:181: assert_trap passed: out of bounds memory access: access at 65534+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:182: assert_trap passed: out of bounds memory access: access at 65533+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:183: assert_trap passed: out of bounds memory access: access at 65532+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:184: assert_trap passed: out of bounds memory access: access at 65531+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:185: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:186: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:187: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:188: assert_trap passed: out of bounds memory access: access at 4294967294+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:189: assert_trap passed: out of bounds memory access: access at 4294967293+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:190: assert_trap passed: out of bounds memory access: access at 4294967292+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:191: assert_trap passed: out of bounds memory access: access at 4294967291+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:192: assert_trap passed: out of bounds memory access: access at 4294967290+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:193: assert_trap passed: out of bounds memory access: access at 4294967289+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:194: assert_trap passed: out of bounds memory access: access at 4294967288+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:195: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:196: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:197: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:198: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:199: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:200: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:201: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:202: assert_trap passed: out of bounds memory access: access at 4294967294+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:203: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:204: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:205: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:206: assert_trap passed: out of bounds memory access: access at 4294967294+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:207: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:208: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:209: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:210: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:211: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:212: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:213: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:214: assert_trap passed: out of bounds memory access: access at 4294967294+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:215: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:216: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:217: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:218: assert_trap passed: out of bounds memory access: access at 4294967294+2 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:219: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:220: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:221: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:222: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:223: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:224: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:225: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:226: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:227: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:228: assert_trap passed: out of bounds memory access: access at 65535+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:229: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:230: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:231: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:232: assert_trap passed: out of bounds memory access: access at 4294967294+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:233: assert_trap passed: out of bounds memory access: access at 4294967293+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:234: assert_trap passed: out of bounds memory access: access at 4294967292+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:243: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:245: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:247: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536
+out/test/spec/multi-memory/memory_trap1.wast:249: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536
+168/168 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/simd_memory-multi.txt b/test/spec/multi-memory/simd_memory-multi.txt
new file mode 100644
index 00000000..558059a4
--- /dev/null
+++ b/test/spec/multi-memory/simd_memory-multi.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/simd_memory-multi.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+1/1 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/start0.txt b/test/spec/multi-memory/start0.txt
new file mode 100644
index 00000000..1da8db0a
--- /dev/null
+++ b/test/spec/multi-memory/start0.txt
@@ -0,0 +1,8 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/start0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+inc() =>
+inc() =>
+9/9 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/store0.txt b/test/spec/multi-memory/store0.txt
new file mode 100644
index 00000000..231c0f65
--- /dev/null
+++ b/test/spec/multi-memory/store0.txt
@@ -0,0 +1,8 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/store0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+store1(i32:0, i64:1) =>
+store2(i32:0, i64:2) =>
+5/5 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/store1.txt b/test/spec/multi-memory/store1.txt
new file mode 100644
index 00000000..1ebf6033
--- /dev/null
+++ b/test/spec/multi-memory/store1.txt
@@ -0,0 +1,10 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/store1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+store(i32:0, i64:1) =>
+store(i32:0, i64:2) =>
+store1(i32:0, i64:1) =>
+store2(i32:0, i64:2) =>
+11/11 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/traps0.txt b/test/spec/multi-memory/traps0.txt
new file mode 100644
index 00000000..2e83159a
--- /dev/null
+++ b/test/spec/multi-memory/traps0.txt
@@ -0,0 +1,20 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/traps0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/traps0.wast:22: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:23: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:24: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:25: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:26: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:27: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:28: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:29: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:30: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:31: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:32: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:33: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:34: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
+out/test/spec/multi-memory/traps0.wast:35: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536
+15/15 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/simd_linking.txt b/test/spec/simd_linking.txt
new file mode 100644
index 00000000..686dbd43
--- /dev/null
+++ b/test/spec/simd_linking.txt
@@ -0,0 +1,5 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/simd_linking.wast
+(;; STDOUT ;;;
+2/2 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/hello.txt b/test/wasm2c/hello.txt
index c8b9ecf8..4eb1cdc6 100644
--- a/test/wasm2c/hello.txt
+++ b/test/wasm2c/hello.txt
@@ -880,10 +880,10 @@ static void init_instance_import(w2c_test* instance, struct w2c_wasi__snapshot__
void wasm2c_test_instantiate(w2c_test* instance, struct w2c_wasi__snapshot__preview1* w2c_wasi__snapshot__preview1_instance) {
assert(wasm_rt_is_initialized());
init_instance_import(instance, w2c_wasi__snapshot__preview1_instance);
- init_memories(instance);
init_tables(instance);
- init_data_instances(instance);
+ init_memories(instance);
init_elem_instances(instance);
+ init_data_instances(instance);
}
void wasm2c_test_free(w2c_test* instance) {
diff --git a/test/wasm2c/spec/multi-memory/address0.txt b/test/wasm2c/spec/multi-memory/address0.txt
new file mode 100644
index 00000000..26e9a2f0
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/address0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/address0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+91/91 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/address1.txt b/test/wasm2c/spec/multi-memory/address1.txt
new file mode 100644
index 00000000..8418081c
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/address1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/address1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+126/126 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/align0.txt b/test/wasm2c/spec/multi-memory/align0.txt
new file mode 100644
index 00000000..6625a37a
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/align0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/align0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+4/4 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/binary0.txt b/test/wasm2c/spec/multi-memory/binary0.txt
new file mode 100644
index 00000000..fa4545c9
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/binary0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/binary0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/data0.txt b/test/wasm2c/spec/multi-memory/data0.txt
new file mode 100644
index 00000000..fc5abef2
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/data0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/data0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/data1.txt b/test/wasm2c/spec/multi-memory/data1.txt
new file mode 100644
index 00000000..6d69e096
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/data1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/data1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+14/14 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/data_drop0.txt b/test/wasm2c/spec/multi-memory/data_drop0.txt
new file mode 100644
index 00000000..b3dc2986
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/data_drop0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/data_drop0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+4/4 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/exports0.txt b/test/wasm2c/spec/multi-memory/exports0.txt
new file mode 100644
index 00000000..27d719c4
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/exports0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/exports0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/float_exprs0.txt b/test/wasm2c/spec/multi-memory/float_exprs0.txt
new file mode 100644
index 00000000..d074b814
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/float_exprs0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/float_exprs0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/float_exprs1.txt b/test/wasm2c/spec/multi-memory/float_exprs1.txt
new file mode 100644
index 00000000..353d8b5f
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/float_exprs1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/float_exprs1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+2/2 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/float_memory0.txt b/test/wasm2c/spec/multi-memory/float_memory0.txt
new file mode 100644
index 00000000..a9812d63
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/float_memory0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/float_memory0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+20/20 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/imports0.txt b/test/wasm2c/spec/multi-memory/imports0.txt
new file mode 100644
index 00000000..76c98325
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/imports0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/imports1.txt b/test/wasm2c/spec/multi-memory/imports1.txt
new file mode 100644
index 00000000..14d25a6a
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/imports1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+4/4 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/imports2.txt b/test/wasm2c/spec/multi-memory/imports2.txt
new file mode 100644
index 00000000..1c4daa12
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/imports2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/imports3.txt b/test/wasm2c/spec/multi-memory/imports3.txt
new file mode 100644
index 00000000..7e3c88cf
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/imports3.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports3.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/imports4.txt b/test/wasm2c/spec/multi-memory/imports4.txt
new file mode 100644
index 00000000..dc4878ee
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/imports4.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/imports4.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/linking0.txt b/test/wasm2c/spec/multi-memory/linking0.txt
new file mode 100644
index 00000000..f35696cd
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/linking0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+3/3 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/linking1.txt b/test/wasm2c/spec/multi-memory/linking1.txt
new file mode 100644
index 00000000..96dc34fb
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/linking1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+9/9 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/linking2.txt b/test/wasm2c/spec/multi-memory/linking2.txt
new file mode 100644
index 00000000..318aa1ba
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/linking2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/linking3.txt b/test/wasm2c/spec/multi-memory/linking3.txt
new file mode 100644
index 00000000..1494c15a
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/linking3.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/linking3.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+9/9 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/load0.txt b/test/wasm2c/spec/multi-memory/load0.txt
new file mode 100644
index 00000000..f0338cb1
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/load0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/load0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+2/2 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/load1.txt b/test/wasm2c/spec/multi-memory/load1.txt
new file mode 100644
index 00000000..f3fa2aff
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/load1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/load1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+15/15 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/load2.txt b/test/wasm2c/spec/multi-memory/load2.txt
new file mode 100644
index 00000000..906b7ed8
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/load2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/load2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+37/37 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_copy0.txt b/test/wasm2c/spec/multi-memory/memory_copy0.txt
new file mode 100644
index 00000000..5646c12a
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_copy0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_copy0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+21/21 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_fill0.txt b/test/wasm2c/spec/multi-memory/memory_fill0.txt
new file mode 100644
index 00000000..4c14b933
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_fill0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_fill0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+11/11 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_init0.txt b/test/wasm2c/spec/multi-memory/memory_init0.txt
new file mode 100644
index 00000000..c78b69ca
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_init0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_init0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+8/8 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_size0.txt b/test/wasm2c/spec/multi-memory/memory_size0.txt
new file mode 100644
index 00000000..0d01abcd
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_size0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+7/7 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_size1.txt b/test/wasm2c/spec/multi-memory/memory_size1.txt
new file mode 100644
index 00000000..0e85b02c
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_size1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+14/14 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_size2.txt b/test/wasm2c/spec/multi-memory/memory_size2.txt
new file mode 100644
index 00000000..87e26dc4
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_size2.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size2.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+20/20 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_size3.txt b/test/wasm2c/spec/multi-memory/memory_size3.txt
new file mode 100644
index 00000000..eaba682d
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_size3.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_size3.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_trap0.txt b/test/wasm2c/spec/multi-memory/memory_trap0.txt
new file mode 100644
index 00000000..00916c6b
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_trap0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_trap0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+13/13 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_trap1.txt b/test/wasm2c/spec/multi-memory/memory_trap1.txt
new file mode 100644
index 00000000..9d546e97
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/memory_trap1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_trap1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+167/167 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/simd_memory-multi.txt b/test/wasm2c/spec/multi-memory/simd_memory-multi.txt
new file mode 100644
index 00000000..db4e2386
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/simd_memory-multi.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/simd_memory-multi.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/start0.txt b/test/wasm2c/spec/multi-memory/start0.txt
new file mode 100644
index 00000000..94cc4fa1
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/start0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/start0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+6/6 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/store0.txt b/test/wasm2c/spec/multi-memory/store0.txt
new file mode 100644
index 00000000..2494e2dc
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/store0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/store0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+2/2 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/store1.txt b/test/wasm2c/spec/multi-memory/store1.txt
new file mode 100644
index 00000000..b360bea7
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/store1.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/store1.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+4/4 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/traps0.txt b/test/wasm2c/spec/multi-memory/traps0.txt
new file mode 100644
index 00000000..fc8eb7e8
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/traps0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/traps0.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+14/14 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/simd_linking.txt b/test/wasm2c/spec/simd_linking.txt
new file mode 100644
index 00000000..5c9607d4
--- /dev/null
+++ b/test/wasm2c/spec/simd_linking.txt
@@ -0,0 +1,5 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/simd_linking.wast
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)