Update spec test to latest commit (#3293)
- Update spec test cases to commit bc76fd79cfe61033d7f4ad4a7e8fc4f996dc5ba8 on Apr. 3 - Update wabt binary to 1.0.34 to support newer spec cases - Add comparison between table declared elem type and table elem segment value type - Add a function to decide whether to execute test cases in a running mode - Keep using interpreter in GC spec because wat2wasm in wabt can't compile if.wast w/o errors - Re-factoring threads spec test case processing - Since wabt 1.0.34 release isn't compatible with ubuntu 20.04, compile it from source code - Disable CI to run aot multi-module temporarily, and will enable it in another PR
This commit is contained in:
@ -47,7 +47,6 @@ IWASM_CMD = get_iwasm_cmd(PLATFORM_NAME)
|
||||
IWASM_SGX_CMD = "../../../product-mini/platforms/linux-sgx/enclave-sample/iwasm"
|
||||
IWASM_QEMU_CMD = "iwasm"
|
||||
SPEC_TEST_DIR = "spec/test/core"
|
||||
EXCE_HANDLING_DIR = "exception-handling/test/core"
|
||||
WAST2WASM_CMD = exe_file_path("./wabt/out/gcc/Release/wat2wasm")
|
||||
SPEC_INTERPRETER_CMD = "spec/interpreter/wasm"
|
||||
WAMRC_CMD = "../../../wamr-compiler/build/wamrc"
|
||||
@ -87,7 +86,7 @@ def ignore_the_case(
|
||||
if case_name in ["comments", "inline-module", "names"]:
|
||||
return True
|
||||
|
||||
if not multi_module_flag and case_name in ["imports", "linking"]:
|
||||
if not multi_module_flag and case_name in ["imports", "linking", "simd_linking"]:
|
||||
return True
|
||||
|
||||
# Note: x87 doesn't preserve sNaN and makes some relevant tests fail.
|
||||
@ -143,10 +142,6 @@ def preflight_check(aot_flag, eh_flag):
|
||||
print(f"Can not find {WAMRC_CMD}")
|
||||
return False
|
||||
|
||||
if eh_flag and not pathlib.Path(EXCE_HANDLING_DIR).resolve().exists():
|
||||
print(f"Can not find {EXCE_HANDLING_DIR}")
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
@ -171,7 +166,7 @@ def test_case(
|
||||
):
|
||||
CMD = [sys.executable, "runtest.py"]
|
||||
CMD.append("--wast2wasm")
|
||||
CMD.append(WAST2WASM_CMD if not gc_flag and not memory64_flag else SPEC_INTERPRETER_CMD)
|
||||
CMD.append(WAST2WASM_CMD if not gc_flag else SPEC_INTERPRETER_CMD)
|
||||
CMD.append("--interpreter")
|
||||
if sgx_flag:
|
||||
CMD.append(IWASM_SGX_CMD)
|
||||
@ -310,11 +305,7 @@ def test_suite(
|
||||
case_list.extend(gc_case_list)
|
||||
|
||||
if eh_flag:
|
||||
eh_path = pathlib.Path(EXCE_HANDLING_DIR).resolve()
|
||||
if not eh_path.exists():
|
||||
print(f"can not find spec test cases at {eh_path}")
|
||||
return False
|
||||
eh_case_list = sorted(eh_path.glob("*.wast"))
|
||||
eh_case_list = sorted(suite_path.glob("*.wast"))
|
||||
eh_case_list_include = [test for test in eh_case_list if test.stem in ["throw", "tag", "try_catch", "rethrow", "try_delegate"]]
|
||||
case_list.extend(eh_case_list_include)
|
||||
|
||||
@ -337,7 +328,9 @@ def test_suite(
|
||||
qemu_flag,
|
||||
):
|
||||
filtered_case_list.append(case_path)
|
||||
print(f"---> {len(case_list)} --filter--> {len(filtered_case_list)}")
|
||||
else:
|
||||
print(f"---> skip {case_name}")
|
||||
print(f"---> {len(case_list)} ---filter--> {len(filtered_case_list)}")
|
||||
case_list = filtered_case_list
|
||||
|
||||
case_count = len(case_list)
|
||||
|
||||
@ -1,20 +1,548 @@
|
||||
diff --git a/test/core/data.wast b/test/core/data.wast
|
||||
index b1e1239..a0f6967 100644
|
||||
--- a/test/core/data.wast
|
||||
+++ b/test/core/data.wast
|
||||
@@ -312,7 +312,8 @@
|
||||
"\02\01\41\00\0b" ;; active data segment 0 for memory 1
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 0 (no memory section)
|
||||
@@ -334,7 +335,8 @@
|
||||
"\02\01\41\00\0b" ;; active data segment 0 for memory 1
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 and vec(byte) as above,
|
||||
@@ -354,7 +356,8 @@
|
||||
"\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f"
|
||||
"\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d"
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 and specially crafted vec(byte) after.
|
||||
@@ -374,7 +377,8 @@
|
||||
"\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f"
|
||||
"\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d"
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
|
||||
diff --git a/test/core/elem.wast b/test/core/elem.wast
|
||||
index 33b3f67..c72431c 100644
|
||||
--- a/test/core/elem.wast
|
||||
+++ b/test/core/elem.wast
|
||||
@@ -595,9 +595,11 @@
|
||||
(func $const-i32-d (type $out-i32) (i32.const 68))
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $module1 "call-7") (i32.const 67))
|
||||
(assert_return (invoke $module1 "call-8") (i32.const 68))
|
||||
(assert_return (invoke $module1 "call-9") (i32.const 66))
|
||||
+;)
|
||||
|
||||
(module $module3
|
||||
(type $out-i32 (func (result i32)))
|
||||
@@ -608,9 +610,11 @@
|
||||
(func $const-i32-f (type $out-i32) (i32.const 70))
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $module1 "call-7") (i32.const 67))
|
||||
(assert_return (invoke $module1 "call-8") (i32.const 69))
|
||||
(assert_return (invoke $module1 "call-9") (i32.const 70))
|
||||
+;)
|
||||
|
||||
;; Element segments must match element type of table
|
||||
|
||||
@@ -643,6 +647,7 @@
|
||||
|
||||
;; Initializing a table with an externref-type element segment
|
||||
|
||||
+(;
|
||||
(module $m
|
||||
(table $t (export "table") 2 externref)
|
||||
(func (export "get") (param $i i32) (result externref)
|
||||
@@ -667,9 +672,11 @@
|
||||
|
||||
(assert_return (invoke $m "get" (i32.const 0)) (ref.null extern))
|
||||
(assert_return (invoke $m "get" (i32.const 1)) (ref.extern 137))
|
||||
+;)
|
||||
|
||||
;; Initializing a table with imported funcref global
|
||||
|
||||
+(;
|
||||
(module $module4
|
||||
(func (result i32)
|
||||
i32.const 42
|
||||
@@ -690,3 +697,4 @@
|
||||
)
|
||||
|
||||
(assert_return (invoke "call_imported_elem") (i32.const 42))
|
||||
+;)
|
||||
\ No newline at end of file
|
||||
diff --git a/test/core/try_catch.wast b/test/core/try_catch.wast
|
||||
index 2a0e9ff6..f243489d 100644
|
||||
--- a/test/core/try_catch.wast
|
||||
+++ b/test/core/try_catch.wast
|
||||
@@ -203,7 +203,6 @@
|
||||
|
||||
|
||||
(assert_return (invoke "catch-param-i32" (i32.const 5)) (i32.const 5))
|
||||
|
||||
|
||||
-(assert_return (invoke "catch-imported") (i32.const 2))
|
||||
|
||||
|
||||
(assert_return (invoke "catchless-try" (i32.const 0)) (i32.const 0))
|
||||
(assert_return (invoke "catchless-try" (i32.const 1)) (i32.const 1))
|
||||
@@ -231,7 +230,6 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
-(assert_return (invoke "imported-mismatch") (i32.const 3))
|
||||
|
||||
|
||||
(assert_malformed
|
||||
(module quote "(module (func (catch_all)))")
|
||||
|
||||
diff --git a/test/core/ref_func.wast b/test/core/ref_func.wast
|
||||
index adb5cb7..6396013 100644
|
||||
--- a/test/core/ref_func.wast
|
||||
+++ b/test/core/ref_func.wast
|
||||
@@ -4,7 +4,7 @@
|
||||
(register "M")
|
||||
|
||||
(module
|
||||
- (func $f (import "M" "f") (param i32) (result i32))
|
||||
+ (func $f (param $x i32) (result i32) (local.get $x))
|
||||
(func $g (param $x i32) (result i32)
|
||||
(i32.add (local.get $x) (i32.const 1))
|
||||
)
|
||||
diff --git a/test/core/table_copy.wast b/test/core/table_copy.wast
|
||||
index 380e84e..59230cf 100644
|
||||
--- a/test/core/table_copy.wast
|
||||
+++ b/test/core/table_copy.wast
|
||||
@@ -14,11 +14,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -106,11 +106,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -198,11 +198,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -290,11 +290,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -382,11 +382,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -474,11 +474,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -566,11 +566,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -658,11 +658,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -750,11 +750,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -842,11 +842,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -934,11 +934,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1026,11 +1026,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1118,11 +1118,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1210,11 +1210,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1302,11 +1302,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1394,11 +1394,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1486,11 +1486,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1578,11 +1578,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
diff --git a/test/core/table_init.wast b/test/core/table_init.wast
|
||||
index 0b2d26f..3c595e5 100644
|
||||
--- a/test/core/table_init.wast
|
||||
+++ b/test/core/table_init.wast
|
||||
@@ -14,11 +14,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -72,11 +72,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -130,11 +130,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -196,11 +196,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -254,11 +254,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -312,11 +312,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
|
||||
@ -1,120 +1,52 @@
|
||||
diff --git a/test/core/binary.wast b/test/core/binary.wast
|
||||
index 891aad3..07356a3 100644
|
||||
--- a/test/core/binary.wast
|
||||
+++ b/test/core/binary.wast
|
||||
@@ -206,7 +206,7 @@
|
||||
)
|
||||
|
||||
;; Type section with signed LEB128 encoded type
|
||||
-(assert_malformed
|
||||
+(;assert_malformed
|
||||
(module binary
|
||||
"\00asm" "\01\00\00\00"
|
||||
"\01" ;; Type section id
|
||||
@@ -216,7 +216,7 @@
|
||||
"\00\00"
|
||||
)
|
||||
"integer representation too long"
|
||||
-)
|
||||
+;)
|
||||
|
||||
;; Unsigned LEB128 must not be overlong
|
||||
(assert_malformed
|
||||
@@ -1683,7 +1683,7 @@
|
||||
)
|
||||
|
||||
;; 2 elem segment declared, 1 given
|
||||
-(assert_malformed
|
||||
+(;assert_malformed
|
||||
(module binary
|
||||
"\00asm" "\01\00\00\00"
|
||||
"\01\04\01" ;; type section
|
||||
@@ -1696,7 +1696,7 @@
|
||||
;; "\00\41\00\0b\01\00" ;; elem 1 (missed)
|
||||
)
|
||||
"unexpected end"
|
||||
-)
|
||||
+;)
|
||||
|
||||
;; 2 elem segment declared, 1.5 given
|
||||
(assert_malformed
|
||||
@@ -1813,7 +1813,7 @@
|
||||
)
|
||||
|
||||
;; 1 br_table target declared, 2 given
|
||||
-(assert_malformed
|
||||
+(;assert_malformed
|
||||
(module binary
|
||||
"\00asm" "\01\00\00\00"
|
||||
"\01\04\01" ;; type section
|
||||
@@ -1832,7 +1832,7 @@
|
||||
"\0b\0b\0b" ;; end
|
||||
)
|
||||
"unexpected end"
|
||||
-)
|
||||
+;)
|
||||
|
||||
;; Start section
|
||||
(module binary
|
||||
diff --git a/test/core/data.wast b/test/core/data.wast
|
||||
index 4f339be..0b5b3e6 100644
|
||||
index b1e1239..a0f6967 100644
|
||||
--- a/test/core/data.wast
|
||||
+++ b/test/core/data.wast
|
||||
@@ -306,9 +306,10 @@
|
||||
@@ -312,7 +312,8 @@
|
||||
"\02\01\41\00\0b" ;; active data segment 0 for memory 1
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
+(; not supported by wat2wasm
|
||||
;; Data segment with memory index 0 (no memory section)
|
||||
(assert_invalid
|
||||
(module binary
|
||||
@@ -317,7 +318,7 @@
|
||||
"\00\41\00\0b" ;; active data segment 0 for memory 0
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 0"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 (no memory section)
|
||||
@@ -328,7 +329,7 @@
|
||||
@@ -334,7 +335,8 @@
|
||||
"\02\01\41\00\0b" ;; active data segment 0 for memory 1
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 and vec(byte) as above,
|
||||
@@ -348,7 +349,7 @@
|
||||
@@ -354,7 +356,8 @@
|
||||
"\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f"
|
||||
"\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d"
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 and specially crafted vec(byte) after.
|
||||
@@ -368,8 +369,9 @@
|
||||
@@ -374,7 +377,8 @@
|
||||
"\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f"
|
||||
"\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d"
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ ;; TODO: restore after supporting multi memory"
|
||||
+ "unknown memory"
|
||||
)
|
||||
+;)
|
||||
|
||||
|
||||
;; Invalid offsets
|
||||
diff --git a/test/core/elem.wast b/test/core/elem.wast
|
||||
index 575ecef..6eecab9 100644
|
||||
index 33b3f67..c72431c 100644
|
||||
--- a/test/core/elem.wast
|
||||
+++ b/test/core/elem.wast
|
||||
@@ -571,9 +571,11 @@
|
||||
@@ -595,9 +595,11 @@
|
||||
(func $const-i32-d (type $out-i32) (i32.const 68))
|
||||
)
|
||||
|
||||
@ -126,7 +58,7 @@ index 575ecef..6eecab9 100644
|
||||
|
||||
(module $module3
|
||||
(type $out-i32 (func (result i32)))
|
||||
@@ -584,6 +586,8 @@
|
||||
@@ -608,9 +610,11 @@
|
||||
(func $const-i32-f (type $out-i32) (i32.const 70))
|
||||
)
|
||||
|
||||
@ -135,254 +67,69 @@ index 575ecef..6eecab9 100644
|
||||
(assert_return (invoke $module1 "call-8") (i32.const 69))
|
||||
(assert_return (invoke $module1 "call-9") (i32.const 70))
|
||||
+;)
|
||||
diff --git a/test/core/global.wast b/test/core/global.wast
|
||||
index 9fa5e22..8c4b949 100644
|
||||
--- a/test/core/global.wast
|
||||
+++ b/test/core/global.wast
|
||||
@@ -328,10 +328,12 @@
|
||||
"type mismatch"
|
||||
)
|
||||
|
||||
;; Element segments must match element type of table
|
||||
|
||||
@@ -643,6 +647,7 @@
|
||||
|
||||
;; Initializing a table with an externref-type element segment
|
||||
|
||||
+(;
|
||||
(assert_invalid
|
||||
(module (global (import "" "") externref) (global funcref (global.get 0)))
|
||||
"type mismatch"
|
||||
)
|
||||
(module $m
|
||||
(table $t (export "table") 2 externref)
|
||||
(func (export "get") (param $i i32) (result externref)
|
||||
@@ -667,9 +672,11 @@
|
||||
|
||||
(assert_return (invoke $m "get" (i32.const 0)) (ref.null extern))
|
||||
(assert_return (invoke $m "get" (i32.const 1)) (ref.extern 137))
|
||||
+;)
|
||||
|
||||
(assert_invalid
|
||||
(module (global (import "test" "global-i32") i32) (global i32 (global.get 0) (global.get 0)))
|
||||
diff --git a/test/core/imports.wast b/test/core/imports.wast
|
||||
index 35e8c91..a7a459d 100644
|
||||
--- a/test/core/imports.wast
|
||||
+++ b/test/core/imports.wast
|
||||
@@ -577,6 +577,7 @@
|
||||
(assert_return (invoke "grow" (i32.const 1)) (i32.const -1))
|
||||
(assert_return (invoke "grow" (i32.const 0)) (i32.const 2))
|
||||
|
||||
+(; unsupported by multi-module currently
|
||||
(module $Mgm
|
||||
(memory (export "memory") 1) ;; initial size is 1
|
||||
(func (export "grow") (result i32) (memory.grow (i32.const 1)))
|
||||
@@ -596,6 +597,7 @@
|
||||
(func (export "size") (result i32) (memory.size))
|
||||
)
|
||||
(assert_return (invoke $Mgim2 "size") (i32.const 3))
|
||||
+;)
|
||||
|
||||
|
||||
;; Syntax errors
|
||||
diff --git a/test/core/linking.wast b/test/core/linking.wast
|
||||
index 994e0f4..d0bfb5f 100644
|
||||
--- a/test/core/linking.wast
|
||||
+++ b/test/core/linking.wast
|
||||
@@ -64,6 +64,7 @@
|
||||
(export "Mg.set_mut" (func $set_mut))
|
||||
)
|
||||
;; Initializing a table with imported funcref global
|
||||
|
||||
+(;
|
||||
(assert_return (get $Mg "glob") (i32.const 42))
|
||||
(assert_return (get $Ng "Mg.glob") (i32.const 42))
|
||||
(assert_return (get $Ng "glob") (i32.const 43))
|
||||
@@ -81,6 +82,7 @@
|
||||
(assert_return (get $Ng "Mg.mut_glob") (i32.const 241))
|
||||
(assert_return (invoke $Mg "get_mut") (i32.const 241))
|
||||
(assert_return (invoke $Ng "Mg.get_mut") (i32.const 241))
|
||||
(module $module4
|
||||
(func (result i32)
|
||||
i32.const 42
|
||||
@@ -690,3 +697,4 @@
|
||||
)
|
||||
|
||||
(assert_return (invoke "call_imported_elem") (i32.const 42))
|
||||
+;)
|
||||
|
||||
|
||||
(assert_unlinkable
|
||||
@@ -165,6 +167,7 @@
|
||||
\ No newline at end of file
|
||||
diff --git a/test/core/if.wast b/test/core/if.wast
|
||||
index 2ea45f6..6f07304 100644
|
||||
--- a/test/core/if.wast
|
||||
+++ b/test/core/if.wast
|
||||
@@ -530,7 +530,10 @@
|
||||
(func (export "atypical-condition")
|
||||
i32.const 0
|
||||
(if (then) (else))
|
||||
- (if (i32.const 1) (i32.eqz) (then) (else))
|
||||
+ ;; restore after wabt(> 1.34.0) supports it
|
||||
+ (i32.const 1)
|
||||
+ (i32.eqz)
|
||||
+ (if (then) (else))
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Mt "call" (i32.const 2)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "Mt.call" (i32.const 2)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "call" (i32.const 2)) (i32.const 5))
|
||||
@@ -187,6 +190,7 @@
|
||||
|
||||
(assert_return (invoke $Nt "call" (i32.const 3)) (i32.const -4))
|
||||
(assert_trap (invoke $Nt "call" (i32.const 4)) "indirect call type mismatch")
|
||||
+;)
|
||||
|
||||
(module $Ot
|
||||
(type (func (result i32)))
|
||||
@@ -201,6 +205,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Mt "call" (i32.const 3)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "Mt.call" (i32.const 3)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "call Mt.call" (i32.const 3)) (i32.const 4))
|
||||
@@ -225,6 +230,7 @@
|
||||
(assert_trap (invoke $Ot "call" (i32.const 0)) "uninitialized element")
|
||||
|
||||
(assert_trap (invoke $Ot "call" (i32.const 20)) "undefined element")
|
||||
+;)
|
||||
|
||||
(module
|
||||
(table (import "Mt" "tab") 0 funcref)
|
||||
@@ -263,6 +269,7 @@
|
||||
|
||||
;; Unlike in the v1 spec, active element segments stored before an
|
||||
;; out-of-bounds access persist after the instantiation failure.
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(table (import "Mt" "tab") 10 funcref)
|
||||
@@ -274,7 +281,9 @@
|
||||
)
|
||||
(assert_return (invoke $Mt "call" (i32.const 7)) (i32.const 0))
|
||||
(assert_trap (invoke $Mt "call" (i32.const 8)) "uninitialized element")
|
||||
+;)
|
||||
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(table (import "Mt" "tab") 10 funcref)
|
||||
@@ -286,6 +295,7 @@
|
||||
"out of bounds memory access"
|
||||
)
|
||||
(assert_return (invoke $Mt "call" (i32.const 7)) (i32.const 0))
|
||||
+;)
|
||||
|
||||
|
||||
(module $Mtable_ex
|
||||
@@ -299,6 +309,7 @@
|
||||
(table (import "Mtable_ex" "t-extern") 1 externref)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_unlinkable
|
||||
(module (table (import "Mtable_ex" "t-func") 1 externref))
|
||||
"incompatible import type"
|
||||
@@ -307,6 +318,7 @@
|
||||
(module (table (import "Mtable_ex" "t-extern") 1 funcref))
|
||||
"incompatible import type"
|
||||
)
|
||||
+;)
|
||||
|
||||
|
||||
;; Memories
|
||||
@@ -346,10 +358,12 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 12)) (i32.const 0xa7))
|
||||
(assert_return (invoke $Nm "Mm.load" (i32.const 12)) (i32.const 0xa7))
|
||||
(assert_return (invoke $Nm "load" (i32.const 12)) (i32.const 0xf2))
|
||||
(assert_return (invoke $Om "load" (i32.const 12)) (i32.const 0xa7))
|
||||
+;)
|
||||
|
||||
(module
|
||||
(memory (import "Mm" "mem") 0)
|
||||
@@ -372,6 +386,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 2)) (i32.const 1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 3))
|
||||
@@ -380,6 +395,7 @@
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 5))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 1)) (i32.const -1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 5))
|
||||
+;)
|
||||
|
||||
(assert_unlinkable
|
||||
(module
|
||||
@@ -403,8 +419,10 @@
|
||||
)
|
||||
"out of bounds memory access"
|
||||
)
|
||||
+(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 0)) (i32.const 97))
|
||||
(assert_return (invoke $Mm "load" (i32.const 327670)) (i32.const 0))
|
||||
+;)
|
||||
|
||||
(assert_trap
|
||||
(module
|
||||
@@ -416,7 +434,9 @@
|
||||
)
|
||||
"out of bounds table access"
|
||||
)
|
||||
+(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 0)) (i32.const 97))
|
||||
+;)
|
||||
|
||||
;; Store is modified if the start function traps.
|
||||
(module $Ms
|
||||
@@ -432,6 +452,7 @@
|
||||
)
|
||||
(register "Ms" $Ms)
|
||||
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(import "Ms" "memory" (memory 1))
|
||||
@@ -451,3 +472,4 @@
|
||||
|
||||
(assert_return (invoke $Ms "get memory[0]") (i32.const 104)) ;; 'h'
|
||||
(assert_return (invoke $Ms "get table[0]") (i32.const 0xdead))
|
||||
+;)
|
||||
diff --git a/test/core/ref_func.wast b/test/core/ref_func.wast
|
||||
index adb5cb7..590f626 100644
|
||||
index adb5cb7..6396013 100644
|
||||
--- a/test/core/ref_func.wast
|
||||
+++ b/test/core/ref_func.wast
|
||||
@@ -4,7 +4,8 @@
|
||||
@@ -4,7 +4,7 @@
|
||||
(register "M")
|
||||
|
||||
(module
|
||||
- (func $f (import "M" "f") (param i32) (result i32))
|
||||
+ (; aot mode does not support module linking ;)
|
||||
+ (func $f (param $x i32) (result i32) (local.get $x))
|
||||
(func $g (param $x i32) (result i32)
|
||||
(i32.add (local.get $x) (i32.const 1))
|
||||
)
|
||||
diff --git a/test/core/table_copy.wast b/test/core/table_copy.wast
|
||||
index 380e84e..f37e745 100644
|
||||
index 380e84e..59230cf 100644
|
||||
--- a/test/core/table_copy.wast
|
||||
+++ b/test/core/table_copy.wast
|
||||
@@ -14,11 +14,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -106,11 +107,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (export "ef0") (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (export "ef1") (result i32) (i32.const 1))
|
||||
+ (func (export "ef2") (result i32) (i32.const 2))
|
||||
+ (func (export "ef3") (result i32) (i32.const 3))
|
||||
+ (func (export "ef4") (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -198,11 +199,11 @@
|
||||
@@ -14,11 +14,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -395,11 +142,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -290,11 +291,11 @@
|
||||
@@ -106,11 +106,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -412,11 +159,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -382,11 +383,11 @@
|
||||
@@ -198,11 +198,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -429,11 +176,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -474,11 +475,11 @@
|
||||
@@ -290,11 +290,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -446,11 +193,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -566,11 +567,11 @@
|
||||
@@ -382,11 +382,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -463,11 +210,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -658,11 +659,11 @@
|
||||
@@ -474,11 +474,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -480,11 +227,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -750,11 +751,11 @@
|
||||
@@ -566,11 +566,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -497,11 +244,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -842,11 +843,11 @@
|
||||
@@ -658,11 +658,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -514,11 +261,45 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -750,11 +750,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -842,11 +842,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -934,11 +935,11 @@
|
||||
@@ -934,11 +934,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -531,11 +312,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1026,11 +1027,11 @@
|
||||
@@ -1026,11 +1026,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -548,11 +329,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1118,11 +1119,11 @@
|
||||
@@ -1118,11 +1118,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -565,11 +346,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1210,11 +1211,11 @@
|
||||
@@ -1210,11 +1210,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -582,11 +363,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1302,11 +1303,11 @@
|
||||
@@ -1302,11 +1302,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -599,11 +380,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1394,11 +1395,11 @@
|
||||
@@ -1394,11 +1394,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -616,11 +397,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1486,11 +1487,11 @@
|
||||
@@ -1486,11 +1486,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -633,11 +414,11 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1578,11 +1579,11 @@
|
||||
@@ -1578,11 +1578,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -650,15 +431,15 @@ index 380e84e..f37e745 100644
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
diff --git a/test/core/table_init.wast b/test/core/table_init.wast
|
||||
index 0b2d26f..bdab6a0 100644
|
||||
index 0b2d26f..3c595e5 100644
|
||||
--- a/test/core/table_init.wast
|
||||
+++ b/test/core/table_init.wast
|
||||
@@ -14,11 +14,12 @@
|
||||
@@ -14,11 +14,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -667,7 +448,6 @@ index 0b2d26f..bdab6a0 100644
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
@ -676,7 +456,7 @@ index 0b2d26f..bdab6a0 100644
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -72,11 +73,12 @@
|
||||
@@ -72,11 +72,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -685,7 +465,6 @@ index 0b2d26f..bdab6a0 100644
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
@ -694,7 +473,7 @@ index 0b2d26f..bdab6a0 100644
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -130,11 +132,12 @@
|
||||
@@ -130,11 +130,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -703,7 +482,6 @@ index 0b2d26f..bdab6a0 100644
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
@ -712,7 +490,7 @@ index 0b2d26f..bdab6a0 100644
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -196,11 +199,12 @@
|
||||
@@ -196,11 +196,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -721,7 +499,6 @@ index 0b2d26f..bdab6a0 100644
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
@ -730,7 +507,7 @@ index 0b2d26f..bdab6a0 100644
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -254,11 +258,12 @@
|
||||
@@ -254,11 +254,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -739,7 +516,6 @@ index 0b2d26f..bdab6a0 100644
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
@ -748,7 +524,7 @@ index 0b2d26f..bdab6a0 100644
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -312,11 +317,12 @@
|
||||
@@ -312,11 +312,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
@ -757,7 +533,6 @@ index 0b2d26f..bdab6a0 100644
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
@ -766,20 +541,3 @@ index 0b2d26f..bdab6a0 100644
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
diff --git a/test/core/unreached-valid.wast b/test/core/unreached-valid.wast
|
||||
index b7ebabf..4f2abfb 100644
|
||||
--- a/test/core/unreached-valid.wast
|
||||
+++ b/test/core/unreached-valid.wast
|
||||
@@ -46,6 +46,7 @@
|
||||
|
||||
;; Validation after unreachable
|
||||
|
||||
+(;
|
||||
(module
|
||||
(func (export "meet-bottom")
|
||||
(block (result f64)
|
||||
@@ -61,3 +62,4 @@
|
||||
)
|
||||
|
||||
(assert_trap (invoke "meet-bottom") "unreachable")
|
||||
+;)
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
diff --git a/test/core/memory.wast b/test/core/memory.wast
|
||||
index 1dd5b84..497b69f 100644
|
||||
--- a/test/core/memory.wast
|
||||
+++ b/test/core/memory.wast
|
||||
@@ -76,17 +76,17 @@
|
||||
"memory size must be at most 65536 pages (4GiB)"
|
||||
)
|
||||
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote "(memory 0x1_0000_0000)")
|
||||
- "memory size must be at most 65536 pages (4GiB)"
|
||||
+ "i32 constant out of range"
|
||||
)
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote "(memory 0x1_0000_0000 0x1_0000_0000)")
|
||||
- "memory size must be at most 65536 pages (4GiB)"
|
||||
+ "i32 constant out of range"
|
||||
)
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote "(memory 0 0x1_0000_0000)")
|
||||
- "memory size must be at most 65536 pages (4GiB)"
|
||||
+ "i32 constant out of range"
|
||||
)
|
||||
|
||||
(module
|
||||
@ -0,0 +1,857 @@
|
||||
diff --git a/test/core/address.wast b/test/core/address.wast
|
||||
index 8e52030..de0d0cb 100644
|
||||
--- a/test/core/address.wast
|
||||
+++ b/test/core/address.wast
|
||||
@@ -210,7 +210,7 @@
|
||||
(assert_trap (invoke "16s_bad" (i32.const 1)) "out of bounds memory access")
|
||||
(assert_trap (invoke "32_bad" (i32.const 1)) "out of bounds memory access")
|
||||
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote
|
||||
"(memory 1)"
|
||||
"(func (drop (i32.load offset=4294967296 (i32.const 0))))"
|
||||
diff --git a/test/core/binary.wast b/test/core/binary.wast
|
||||
index 4090b2c..18f66b4 100644
|
||||
--- a/test/core/binary.wast
|
||||
+++ b/test/core/binary.wast
|
||||
@@ -206,7 +206,7 @@
|
||||
)
|
||||
|
||||
;; Type section with signed LEB128 encoded type
|
||||
-(assert_malformed
|
||||
+(;assert_malformed
|
||||
(module binary
|
||||
"\00asm" "\01\00\00\00"
|
||||
"\01" ;; Type section id
|
||||
@@ -216,7 +216,7 @@
|
||||
"\00\00"
|
||||
)
|
||||
"integer representation too long"
|
||||
-)
|
||||
+;)
|
||||
|
||||
;; Unsigned LEB128 must not be overlong
|
||||
(assert_malformed
|
||||
@@ -1683,7 +1683,7 @@
|
||||
)
|
||||
|
||||
;; 2 elem segment declared, 1 given
|
||||
-(assert_malformed
|
||||
+(;assert_malformed
|
||||
(module binary
|
||||
"\00asm" "\01\00\00\00"
|
||||
"\01\04\01" ;; type section
|
||||
@@ -1696,7 +1696,7 @@
|
||||
;; "\00\41\00\0b\01\00" ;; elem 1 (missed)
|
||||
)
|
||||
"unexpected end"
|
||||
-)
|
||||
+;)
|
||||
|
||||
;; 2 elem segment declared, 1.5 given
|
||||
(assert_malformed
|
||||
@@ -1813,7 +1813,7 @@
|
||||
)
|
||||
|
||||
;; 1 br_table target declared, 2 given
|
||||
-(assert_malformed
|
||||
+(;assert_malformed
|
||||
(module binary
|
||||
"\00asm" "\01\00\00\00"
|
||||
"\01\04\01" ;; type section
|
||||
@@ -1832,7 +1832,7 @@
|
||||
"\0b\0b\0b" ;; end
|
||||
)
|
||||
"unexpected end"
|
||||
-)
|
||||
+;)
|
||||
|
||||
;; Start section
|
||||
(module binary
|
||||
diff --git a/test/core/data.wast b/test/core/data.wast
|
||||
index b1e1239..74a7b04 100644
|
||||
--- a/test/core/data.wast
|
||||
+++ b/test/core/data.wast
|
||||
@@ -312,9 +312,10 @@
|
||||
"\02\01\41\00\0b" ;; active data segment 0 for memory 1
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
+(; not supported by wat2wasm
|
||||
;; Data segment with memory index 0 (no memory section)
|
||||
(assert_invalid
|
||||
(module binary
|
||||
@@ -323,7 +324,7 @@
|
||||
"\00\41\00\0b" ;; active data segment 0 for memory 0
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 0"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 (no memory section)
|
||||
@@ -334,7 +335,7 @@
|
||||
"\02\01\41\00\0b" ;; active data segment 0 for memory 1
|
||||
"\00" ;; empty vec(byte)
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 and vec(byte) as above,
|
||||
@@ -354,7 +355,7 @@
|
||||
"\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f"
|
||||
"\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d"
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ "unknown memory"
|
||||
)
|
||||
|
||||
;; Data segment with memory index 1 and specially crafted vec(byte) after.
|
||||
@@ -374,8 +375,9 @@
|
||||
"\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f"
|
||||
"\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d"
|
||||
)
|
||||
- "unknown memory 1"
|
||||
+ "unknown memory"
|
||||
)
|
||||
+;)
|
||||
|
||||
|
||||
;; Invalid offsets
|
||||
diff --git a/test/core/elem.wast b/test/core/elem.wast
|
||||
index 575ecef..6eecab9 100644
|
||||
--- a/test/core/elem.wast
|
||||
+++ b/test/core/elem.wast
|
||||
@@ -571,9 +571,11 @@
|
||||
(func $const-i32-d (type $out-i32) (i32.const 68))
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $module1 "call-7") (i32.const 67))
|
||||
(assert_return (invoke $module1 "call-8") (i32.const 68))
|
||||
(assert_return (invoke $module1 "call-9") (i32.const 66))
|
||||
+;)
|
||||
|
||||
(module $module3
|
||||
(type $out-i32 (func (result i32)))
|
||||
@@ -584,6 +586,8 @@
|
||||
(func $const-i32-f (type $out-i32) (i32.const 70))
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $module1 "call-7") (i32.const 67))
|
||||
(assert_return (invoke $module1 "call-8") (i32.const 69))
|
||||
(assert_return (invoke $module1 "call-9") (i32.const 70))
|
||||
+;)
|
||||
diff --git a/test/core/global.wast b/test/core/global.wast
|
||||
index e40a305..8f8f25b 100644
|
||||
--- a/test/core/global.wast
|
||||
+++ b/test/core/global.wast
|
||||
@@ -328,10 +328,12 @@
|
||||
"type mismatch"
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_invalid
|
||||
(module (global (import "" "") externref) (global funcref (global.get 0)))
|
||||
"type mismatch"
|
||||
)
|
||||
+;)
|
||||
|
||||
(assert_invalid
|
||||
(module (global (import "test" "global-i32") i32) (global i32 (global.get 0) (global.get 0)))
|
||||
diff --git a/test/core/if.wast b/test/core/if.wast
|
||||
index 2ea45f6..b6dd504 100644
|
||||
--- a/test/core/if.wast
|
||||
+++ b/test/core/if.wast
|
||||
@@ -527,11 +527,12 @@
|
||||
|
||||
;; Atypical folded condition syntax
|
||||
|
||||
- (func (export "atypical-condition")
|
||||
- i32.const 0
|
||||
- (if (then) (else))
|
||||
- (if (i32.const 1) (i32.eqz) (then) (else))
|
||||
- )
|
||||
+ ;; FIXME: uncomment me if the next wabt can compile it w/o error
|
||||
+ ;; (func (export "atypical-condition")
|
||||
+ ;; i32.const 0
|
||||
+ ;; (if (then) (else))
|
||||
+ ;; (if (i32.const 1) (i32.eqz) (then) (else))
|
||||
+ ;; )
|
||||
)
|
||||
|
||||
(assert_return (invoke "empty" (i32.const 0)))
|
||||
@@ -730,7 +731,7 @@
|
||||
|
||||
(assert_return (invoke "type-use"))
|
||||
|
||||
-(assert_return (invoke "atypical-condition"))
|
||||
+;; (assert_return (invoke "atypical-condition"))
|
||||
|
||||
(assert_malformed
|
||||
(module quote
|
||||
diff --git a/test/core/imports.wast b/test/core/imports.wast
|
||||
index 69f76a0..a3844c6 100644
|
||||
--- a/test/core/imports.wast
|
||||
+++ b/test/core/imports.wast
|
||||
@@ -572,6 +572,7 @@
|
||||
(assert_return (invoke "grow" (i32.const 1)) (i32.const -1))
|
||||
(assert_return (invoke "grow" (i32.const 0)) (i32.const 2))
|
||||
|
||||
+(; unsupported by multi-module currently
|
||||
(module $Mgm
|
||||
(memory (export "memory") 1) ;; initial size is 1
|
||||
(func (export "grow") (result i32) (memory.grow (i32.const 1)))
|
||||
@@ -591,6 +592,7 @@
|
||||
(func (export "size") (result i32) (memory.size))
|
||||
)
|
||||
(assert_return (invoke $Mgim2 "size") (i32.const 3))
|
||||
+;)
|
||||
|
||||
|
||||
;; Syntax errors
|
||||
diff --git a/test/core/linking.wast b/test/core/linking.wast
|
||||
index 994e0f4..d0bfb5f 100644
|
||||
--- a/test/core/linking.wast
|
||||
+++ b/test/core/linking.wast
|
||||
@@ -64,6 +64,7 @@
|
||||
(export "Mg.set_mut" (func $set_mut))
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (get $Mg "glob") (i32.const 42))
|
||||
(assert_return (get $Ng "Mg.glob") (i32.const 42))
|
||||
(assert_return (get $Ng "glob") (i32.const 43))
|
||||
@@ -81,6 +82,7 @@
|
||||
(assert_return (get $Ng "Mg.mut_glob") (i32.const 241))
|
||||
(assert_return (invoke $Mg "get_mut") (i32.const 241))
|
||||
(assert_return (invoke $Ng "Mg.get_mut") (i32.const 241))
|
||||
+;)
|
||||
|
||||
|
||||
(assert_unlinkable
|
||||
@@ -165,6 +167,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Mt "call" (i32.const 2)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "Mt.call" (i32.const 2)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "call" (i32.const 2)) (i32.const 5))
|
||||
@@ -187,6 +190,7 @@
|
||||
|
||||
(assert_return (invoke $Nt "call" (i32.const 3)) (i32.const -4))
|
||||
(assert_trap (invoke $Nt "call" (i32.const 4)) "indirect call type mismatch")
|
||||
+;)
|
||||
|
||||
(module $Ot
|
||||
(type (func (result i32)))
|
||||
@@ -201,6 +205,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Mt "call" (i32.const 3)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "Mt.call" (i32.const 3)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "call Mt.call" (i32.const 3)) (i32.const 4))
|
||||
@@ -225,6 +230,7 @@
|
||||
(assert_trap (invoke $Ot "call" (i32.const 0)) "uninitialized element")
|
||||
|
||||
(assert_trap (invoke $Ot "call" (i32.const 20)) "undefined element")
|
||||
+;)
|
||||
|
||||
(module
|
||||
(table (import "Mt" "tab") 0 funcref)
|
||||
@@ -263,6 +269,7 @@
|
||||
|
||||
;; Unlike in the v1 spec, active element segments stored before an
|
||||
;; out-of-bounds access persist after the instantiation failure.
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(table (import "Mt" "tab") 10 funcref)
|
||||
@@ -274,7 +281,9 @@
|
||||
)
|
||||
(assert_return (invoke $Mt "call" (i32.const 7)) (i32.const 0))
|
||||
(assert_trap (invoke $Mt "call" (i32.const 8)) "uninitialized element")
|
||||
+;)
|
||||
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(table (import "Mt" "tab") 10 funcref)
|
||||
@@ -286,6 +295,7 @@
|
||||
"out of bounds memory access"
|
||||
)
|
||||
(assert_return (invoke $Mt "call" (i32.const 7)) (i32.const 0))
|
||||
+;)
|
||||
|
||||
|
||||
(module $Mtable_ex
|
||||
@@ -299,6 +309,7 @@
|
||||
(table (import "Mtable_ex" "t-extern") 1 externref)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_unlinkable
|
||||
(module (table (import "Mtable_ex" "t-func") 1 externref))
|
||||
"incompatible import type"
|
||||
@@ -307,6 +318,7 @@
|
||||
(module (table (import "Mtable_ex" "t-extern") 1 funcref))
|
||||
"incompatible import type"
|
||||
)
|
||||
+;)
|
||||
|
||||
|
||||
;; Memories
|
||||
@@ -346,10 +358,12 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 12)) (i32.const 0xa7))
|
||||
(assert_return (invoke $Nm "Mm.load" (i32.const 12)) (i32.const 0xa7))
|
||||
(assert_return (invoke $Nm "load" (i32.const 12)) (i32.const 0xf2))
|
||||
(assert_return (invoke $Om "load" (i32.const 12)) (i32.const 0xa7))
|
||||
+;)
|
||||
|
||||
(module
|
||||
(memory (import "Mm" "mem") 0)
|
||||
@@ -372,6 +386,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
+(;
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 2)) (i32.const 1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 3))
|
||||
@@ -380,6 +395,7 @@
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 5))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 1)) (i32.const -1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 5))
|
||||
+;)
|
||||
|
||||
(assert_unlinkable
|
||||
(module
|
||||
@@ -403,8 +419,10 @@
|
||||
)
|
||||
"out of bounds memory access"
|
||||
)
|
||||
+(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 0)) (i32.const 97))
|
||||
(assert_return (invoke $Mm "load" (i32.const 327670)) (i32.const 0))
|
||||
+;)
|
||||
|
||||
(assert_trap
|
||||
(module
|
||||
@@ -416,7 +434,9 @@
|
||||
)
|
||||
"out of bounds table access"
|
||||
)
|
||||
+(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 0)) (i32.const 97))
|
||||
+;)
|
||||
|
||||
;; Store is modified if the start function traps.
|
||||
(module $Ms
|
||||
@@ -432,6 +452,7 @@
|
||||
)
|
||||
(register "Ms" $Ms)
|
||||
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(import "Ms" "memory" (memory 1))
|
||||
@@ -451,3 +472,4 @@
|
||||
|
||||
(assert_return (invoke $Ms "get memory[0]") (i32.const 104)) ;; 'h'
|
||||
(assert_return (invoke $Ms "get table[0]") (i32.const 0xdead))
|
||||
+;)
|
||||
diff --git a/test/core/memory.wast b/test/core/memory.wast
|
||||
index 1dd5b84..497b69f 100644
|
||||
--- a/test/core/memory.wast
|
||||
+++ b/test/core/memory.wast
|
||||
@@ -76,17 +76,17 @@
|
||||
"memory size must be at most 65536 pages (4GiB)"
|
||||
)
|
||||
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote "(memory 0x1_0000_0000)")
|
||||
- "memory size must be at most 65536 pages (4GiB)"
|
||||
+ "i32 constant out of range"
|
||||
)
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote "(memory 0x1_0000_0000 0x1_0000_0000)")
|
||||
- "memory size must be at most 65536 pages (4GiB)"
|
||||
+ "i32 constant out of range"
|
||||
)
|
||||
-(assert_invalid
|
||||
+(assert_malformed
|
||||
(module quote "(memory 0 0x1_0000_0000)")
|
||||
- "memory size must be at most 65536 pages (4GiB)"
|
||||
+ "i32 constant out of range"
|
||||
)
|
||||
|
||||
(module
|
||||
diff --git a/test/core/ref_func.wast b/test/core/ref_func.wast
|
||||
index adb5cb7..590f626 100644
|
||||
--- a/test/core/ref_func.wast
|
||||
+++ b/test/core/ref_func.wast
|
||||
@@ -4,7 +4,8 @@
|
||||
(register "M")
|
||||
|
||||
(module
|
||||
- (func $f (import "M" "f") (param i32) (result i32))
|
||||
+ (; aot mode does not support module linking ;)
|
||||
+ (func $f (param $x i32) (result i32) (local.get $x))
|
||||
(func $g (param $x i32) (result i32)
|
||||
(i32.add (local.get $x) (i32.const 1))
|
||||
)
|
||||
diff --git a/test/core/table_copy.wast b/test/core/table_copy.wast
|
||||
index 380e84e..f37e745 100644
|
||||
--- a/test/core/table_copy.wast
|
||||
+++ b/test/core/table_copy.wast
|
||||
@@ -14,11 +14,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -106,11 +107,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (export "ef0") (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (export "ef1") (result i32) (i32.const 1))
|
||||
+ (func (export "ef2") (result i32) (i32.const 2))
|
||||
+ (func (export "ef3") (result i32) (i32.const 3))
|
||||
+ (func (export "ef4") (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -198,11 +199,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -290,11 +291,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -382,11 +383,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -474,11 +475,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -566,11 +567,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -658,11 +659,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -750,11 +751,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -842,11 +843,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -934,11 +935,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1026,11 +1027,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1118,11 +1119,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1210,11 +1211,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1302,11 +1303,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1394,11 +1395,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1486,11 +1487,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -1578,11 +1579,11 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
diff --git a/test/core/table_init.wast b/test/core/table_init.wast
|
||||
index 0b2d26f..bdab6a0 100644
|
||||
--- a/test/core/table_init.wast
|
||||
+++ b/test/core/table_init.wast
|
||||
@@ -14,11 +14,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -72,11 +73,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -130,11 +132,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t0) (i32.const 2) func 3 1 4 1)
|
||||
@@ -196,11 +199,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -254,11 +258,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
@@ -312,11 +317,12 @@
|
||||
|
||||
(module
|
||||
(type (func (result i32))) ;; type #0
|
||||
- (import "a" "ef0" (func (result i32))) ;; index 0
|
||||
- (import "a" "ef1" (func (result i32)))
|
||||
- (import "a" "ef2" (func (result i32)))
|
||||
- (import "a" "ef3" (func (result i32)))
|
||||
- (import "a" "ef4" (func (result i32))) ;; index 4
|
||||
+ ;; aot mode does not support module linking
|
||||
+ (func (result i32) (i32.const 0)) ;; index 0
|
||||
+ (func (result i32) (i32.const 1))
|
||||
+ (func (result i32) (i32.const 2))
|
||||
+ (func (result i32) (i32.const 3))
|
||||
+ (func (result i32) (i32.const 4)) ;; index 4
|
||||
(table $t0 30 30 funcref)
|
||||
(table $t1 30 30 funcref)
|
||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
||||
diff --git a/test/core/unreached-valid.wast b/test/core/unreached-valid.wast
|
||||
index b7ebabf..4f2abfb 100644
|
||||
--- a/test/core/unreached-valid.wast
|
||||
+++ b/test/core/unreached-valid.wast
|
||||
@@ -46,6 +46,7 @@
|
||||
|
||||
;; Validation after unreachable
|
||||
|
||||
+(;
|
||||
(module
|
||||
(func (export "meet-bottom")
|
||||
(block (result f64)
|
||||
@@ -61,3 +62,4 @@
|
||||
)
|
||||
|
||||
(assert_trap (invoke "meet-bottom") "unreachable")
|
||||
+;)
|
||||
@ -1,174 +1,124 @@
|
||||
diff --git a/test/core/imports.wast b/test/core/imports.wast
|
||||
index 0cc07cb..4e8367a 100644
|
||||
--- a/test/core/imports.wast
|
||||
+++ b/test/core/imports.wast
|
||||
@@ -86,7 +86,7 @@
|
||||
(assert_return (invoke "print64" (i64.const 24)))
|
||||
|
||||
(assert_invalid
|
||||
- (module
|
||||
+ (module
|
||||
(type (func (result i32)))
|
||||
(import "test" "func" (func (type 1)))
|
||||
)
|
||||
@@ -578,6 +578,7 @@
|
||||
(assert_return (invoke "grow" (i32.const 1)) (i32.const -1))
|
||||
(assert_return (invoke "grow" (i32.const 0)) (i32.const 2))
|
||||
|
||||
+(;
|
||||
(module $Mgm
|
||||
(memory (export "memory") 1) ;; initial size is 1
|
||||
(func (export "grow") (result i32) (memory.grow (i32.const 1)))
|
||||
@@ -586,7 +587,7 @@
|
||||
(assert_return (invoke $Mgm "grow") (i32.const 1)) ;; now size is 2
|
||||
(module $Mgim1
|
||||
;; imported memory limits should match, because external memory size is 2 now
|
||||
- (memory (export "memory") (import "grown-memory" "memory") 2)
|
||||
+ (memory (export "memory") (import "grown-memory" "memory") 2)
|
||||
(func (export "grow") (result i32) (memory.grow (i32.const 1)))
|
||||
)
|
||||
(register "grown-imported-memory" $Mgim1)
|
||||
@@ -597,7 +598,7 @@
|
||||
(func (export "size") (result i32) (memory.size))
|
||||
)
|
||||
(assert_return (invoke $Mgim2 "size") (i32.const 3))
|
||||
-
|
||||
+;)
|
||||
|
||||
;; Syntax errors
|
||||
|
||||
@@ -669,6 +670,7 @@
|
||||
"import after memory"
|
||||
)
|
||||
|
||||
+(;
|
||||
;; This module is required to validate, regardless of whether it can be
|
||||
;; linked. Overloading is not possible in wasm itself, but it is possible
|
||||
;; in modules from which wasm can import.
|
||||
@@ -695,3 +697,4 @@
|
||||
)
|
||||
"unknown import"
|
||||
)
|
||||
+;)
|
||||
\ No newline at end of file
|
||||
diff --git a/test/core/linking.wast b/test/core/linking.wast
|
||||
index d0bfb5f..6617945 100644
|
||||
index 994e0f4..8fbcc02 100644
|
||||
--- a/test/core/linking.wast
|
||||
+++ b/test/core/linking.wast
|
||||
@@ -35,7 +35,7 @@
|
||||
@@ -19,11 +19,11 @@
|
||||
(assert_return (invoke $Nf "call") (i32.const 3))
|
||||
(assert_return (invoke $Nf "call Mf.call") (i32.const 2))
|
||||
|
||||
-(module
|
||||
+(module $M1
|
||||
(import "spectest" "print_i32" (func $f (param i32)))
|
||||
(export "print" (func $f))
|
||||
)
|
||||
-(register "reexport_f")
|
||||
+(register "reexport_f" $M1)
|
||||
(assert_unlinkable
|
||||
(module (import "reexport_f" "print" (func (param i64))))
|
||||
"incompatible import type"
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
|
||||
;; Globals
|
||||
-
|
||||
+(;
|
||||
(module $Mg
|
||||
(global $glob (export "glob") i32 (i32.const 42))
|
||||
(func (export "get") (result i32) (global.get $glob))
|
||||
@@ -63,7 +63,7 @@
|
||||
(export "Mg.get_mut" (func $get_mut))
|
||||
(export "Mg.set_mut" (func $set_mut))
|
||||
@@ -47,6 +46,7 @@
|
||||
)
|
||||
(register "Mg" $Mg)
|
||||
|
||||
+(; only sharing initial values
|
||||
(module $Ng
|
||||
(global $x (import "Mg" "glob") i32)
|
||||
(global $mut_glob (import "Mg" "mut_glob") (mut i32))
|
||||
@@ -81,7 +81,7 @@
|
||||
(assert_return (get $Ng "Mg.mut_glob") (i32.const 241))
|
||||
(assert_return (invoke $Mg "get_mut") (i32.const 241))
|
||||
(assert_return (invoke $Ng "Mg.get_mut") (i32.const 241))
|
||||
-
|
||||
+;)
|
||||
(;
|
||||
(assert_return (get $Mg "glob") (i32.const 42))
|
||||
(assert_return (get $Ng "Mg.glob") (i32.const 42))
|
||||
@@ -84,7 +84,7 @@
|
||||
(assert_return (invoke $Ng "Mg.get_mut") (i32.const 241))
|
||||
;)
|
||||
|
||||
-
|
||||
+(;
|
||||
(assert_unlinkable
|
||||
(module (import "Mg" "mut_glob" (global i32)))
|
||||
"incompatible import type"
|
||||
@@ -166,7 +166,7 @@
|
||||
(call_indirect (type 1) (local.get 0))
|
||||
)
|
||||
)
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
|
||||
;; Tables
|
||||
-
|
||||
+;)
|
||||
(;
|
||||
(assert_return (invoke $Mt "call" (i32.const 2)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "Mt.call" (i32.const 2)) (i32.const 4))
|
||||
@@ -191,7 +191,7 @@
|
||||
(assert_return (invoke $Nt "call" (i32.const 3)) (i32.const -4))
|
||||
(assert_trap (invoke $Nt "call" (i32.const 4)) "indirect call type mismatch")
|
||||
;)
|
||||
-
|
||||
+(;
|
||||
(module $Ot
|
||||
+(; no such support
|
||||
(module $Mt
|
||||
(type (func (result i32)))
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
(call_indirect (type 0) (local.get 0))
|
||||
)
|
||||
(type (func))
|
||||
@@ -307,10 +307,11 @@
|
||||
(module (table (import "Mtable_ex" "t-extern") 1 funcref))
|
||||
"incompatible import type"
|
||||
)
|
||||
-
|
||||
+;)
|
||||
(;
|
||||
(assert_return (invoke $Mt "call" (i32.const 3)) (i32.const 4))
|
||||
(assert_return (invoke $Nt "Mt.call" (i32.const 3)) (i32.const 4))
|
||||
@@ -231,7 +231,7 @@
|
||||
|
||||
(assert_trap (invoke $Ot "call" (i32.const 20)) "undefined element")
|
||||
;)
|
||||
-
|
||||
+(;
|
||||
(module
|
||||
(table (import "Mt" "tab") 0 funcref)
|
||||
(elem (i32.const 9) $f)
|
||||
@@ -266,7 +266,7 @@
|
||||
"unknown import"
|
||||
)
|
||||
(assert_trap (invoke $Mt "call" (i32.const 7)) "uninitialized element")
|
||||
-
|
||||
+;)
|
||||
;; Unlike in the v1 spec, active element segments stored before an
|
||||
;; out-of-bounds access persist after the instantiation failure.
|
||||
(;
|
||||
@@ -297,7 +297,7 @@
|
||||
(assert_return (invoke $Mt "call" (i32.const 7)) (i32.const 0))
|
||||
;)
|
||||
|
||||
-
|
||||
+(;
|
||||
(module $Mtable_ex
|
||||
(table $t1 (export "t-func") 1 funcref)
|
||||
(table $t2 (export "t-extern") 1 externref)
|
||||
@@ -308,7 +308,7 @@
|
||||
(table (import "Mtable_ex" "t-func") 1 funcref)
|
||||
(table (import "Mtable_ex" "t-extern") 1 externref)
|
||||
)
|
||||
-
|
||||
+;)
|
||||
(;
|
||||
(assert_unlinkable
|
||||
(module (table (import "Mtable_ex" "t-func") 1 externref))
|
||||
@@ -322,7 +322,7 @@
|
||||
|
||||
|
||||
;; Memories
|
||||
-
|
||||
+(;
|
||||
+(; no such support
|
||||
(module $Mm
|
||||
(memory (export "mem") 1 5)
|
||||
(data (i32.const 10) "\00\01\02\03\04\05\06\07\08\09")
|
||||
@@ -357,14 +357,14 @@
|
||||
(i32.load8_u (local.get 0))
|
||||
)
|
||||
)
|
||||
-
|
||||
@@ -451,3 +452,4 @@
|
||||
|
||||
(assert_return (invoke $Ms "get memory[0]") (i32.const 104)) ;; 'h'
|
||||
(assert_return (invoke $Ms "get table[0]") (i32.const 0xdead))
|
||||
+;)
|
||||
(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 12)) (i32.const 0xa7))
|
||||
(assert_return (invoke $Nm "Mm.load" (i32.const 12)) (i32.const 0xa7))
|
||||
(assert_return (invoke $Nm "load" (i32.const 12)) (i32.const 0xf2))
|
||||
(assert_return (invoke $Om "load" (i32.const 12)) (i32.const 0xa7))
|
||||
;)
|
||||
-
|
||||
+(;
|
||||
(module
|
||||
(memory (import "Mm" "mem") 0)
|
||||
(data (i32.const 0xffff) "a")
|
||||
@@ -385,7 +385,7 @@
|
||||
(memory.grow (local.get 0))
|
||||
)
|
||||
)
|
||||
-
|
||||
+;)
|
||||
(;
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 2)) (i32.const 1))
|
||||
@@ -396,7 +396,7 @@
|
||||
(assert_return (invoke $Pm "grow" (i32.const 1)) (i32.const -1))
|
||||
(assert_return (invoke $Pm "grow" (i32.const 0)) (i32.const 5))
|
||||
;)
|
||||
-
|
||||
+(;
|
||||
(assert_unlinkable
|
||||
(module
|
||||
(func $host (import "spectest" "print"))
|
||||
@@ -419,11 +419,12 @@
|
||||
)
|
||||
"out of bounds memory access"
|
||||
)
|
||||
+;)
|
||||
(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 0)) (i32.const 97))
|
||||
(assert_return (invoke $Mm "load" (i32.const 327670)) (i32.const 0))
|
||||
;)
|
||||
-
|
||||
+(;
|
||||
(assert_trap
|
||||
(module
|
||||
(memory (import "Mm" "mem") 1)
|
||||
@@ -434,10 +435,11 @@
|
||||
)
|
||||
"out of bounds table access"
|
||||
)
|
||||
+;)
|
||||
(;
|
||||
(assert_return (invoke $Mm "load" (i32.const 0)) (i32.const 97))
|
||||
;)
|
||||
-
|
||||
+(;
|
||||
;; Store is modified if the start function traps.
|
||||
(module $Ms
|
||||
(type $t (func (result i32)))
|
||||
@@ -451,7 +453,7 @@
|
||||
)
|
||||
)
|
||||
(register "Ms" $Ms)
|
||||
-
|
||||
+;)
|
||||
(;
|
||||
(assert_trap
|
||||
(module
|
||||
\ No newline at end of file
|
||||
|
||||
@ -1074,12 +1074,14 @@ def compile_wast_to_wasm(form, wast_tempfile, wasm_tempfile, opts):
|
||||
log("Compiling WASM to '%s'" % wasm_tempfile)
|
||||
|
||||
# default arguments
|
||||
if opts.gc or opts.memory64:
|
||||
if opts.gc:
|
||||
cmd = [opts.wast2wasm, "-u", "-d", wast_tempfile, "-o", wasm_tempfile]
|
||||
elif opts.eh:
|
||||
cmd = [opts.wast2wasm, "--enable-thread", "--no-check", "--enable-exceptions", "--enable-tail-call", wast_tempfile, "-o", wasm_tempfile ]
|
||||
cmd = [opts.wast2wasm, "--enable-threads", "--no-check", "--enable-exceptions", "--enable-tail-call", wast_tempfile, "-o", wasm_tempfile ]
|
||||
elif opts.memory64:
|
||||
cmd = [opts.wast2wasm, "--enable-memory64", "--no-check", wast_tempfile, "-o", wasm_tempfile ]
|
||||
else:
|
||||
cmd = [opts.wast2wasm, "--enable-thread", "--no-check",
|
||||
cmd = [opts.wast2wasm, "--enable-threads", "--no-check",
|
||||
wast_tempfile, "-o", wasm_tempfile ]
|
||||
|
||||
# remove reference-type and bulk-memory enabling options since a WABT
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
diff --git a/test/core/simd/simd_lane.wast b/test/core/simd/simd_lane.wast
|
||||
index 9d4b5fd7..4656dd2b 100644
|
||||
index 9b66f53..48a4e6d 100644
|
||||
--- a/test/core/simd/simd_lane.wast
|
||||
+++ b/test/core/simd/simd_lane.wast
|
||||
@@ -602,23 +602,23 @@
|
||||
@ -50,7 +50,7 @@ index 9d4b5fd7..4656dd2b 100644
|
||||
;; Non-nat lane index
|
||||
|
||||
diff --git a/test/core/simd/simd_load.wast b/test/core/simd/simd_load.wast
|
||||
index 4b2edc16..c7639218 100644
|
||||
index 4b2edc1..c763921 100644
|
||||
--- a/test/core/simd/simd_load.wast
|
||||
+++ b/test/core/simd/simd_load.wast
|
||||
@@ -124,7 +124,7 @@
|
||||
|
||||
Reference in New Issue
Block a user