mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-13 13:11:25 +00:00
Update spec cases to latest version (#1253)
Update spec cases of mvp/threads to latest version, update wabt to 1.0.29. And enhance the wasm loader.
This commit is contained in:
parent
5e238322c2
commit
625d59191d
|
@ -2171,6 +2171,15 @@ load_export_section(const uint8 *buf, const uint8 *buf_end, WASMModule *module,
|
||||||
|
|
||||||
export = module->exports;
|
export = module->exports;
|
||||||
for (i = 0; i < export_count; i++, export ++) {
|
for (i = 0; i < export_count; i++, export ++) {
|
||||||
|
#if WASM_ENABLE_THREAD_MGR == 0
|
||||||
|
if (p == p_end) {
|
||||||
|
/* export section with inconsistent count:
|
||||||
|
n export declared, but less than n given */
|
||||||
|
set_error_buf(error_buf, error_buf_size,
|
||||||
|
"length out of bounds");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
read_leb_uint32(p, p_end, str_len);
|
read_leb_uint32(p, p_end, str_len);
|
||||||
CHECK_BUF(p, p_end, str_len);
|
CHECK_BUF(p, p_end, str_len);
|
||||||
|
|
||||||
|
@ -9319,8 +9328,15 @@ re_scan:
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loader_ctx->csp_num > 0) {
|
if (loader_ctx->csp_num > 0) {
|
||||||
set_error_buf(error_buf, error_buf_size,
|
if (cur_func_idx < module->function_count - 1)
|
||||||
"function body must end with END opcode");
|
/* Function with missing end marker (between two functions) */
|
||||||
|
set_error_buf(error_buf, error_buf_size, "END opcode expected");
|
||||||
|
else
|
||||||
|
/* Function with missing end marker
|
||||||
|
(at EOF or end of code sections) */
|
||||||
|
set_error_buf(error_buf, error_buf_size,
|
||||||
|
"unexpected end of section or function, "
|
||||||
|
"or section size mismatch");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1491,8 +1491,8 @@ wasm_instantiate(WASMModule *module, bool is_sub_inst, uint32 stack_size,
|
||||||
if (stack_size == 0)
|
if (stack_size == 0)
|
||||||
stack_size = DEFAULT_WASM_STACK_SIZE;
|
stack_size = DEFAULT_WASM_STACK_SIZE;
|
||||||
#if WASM_ENABLE_SPEC_TEST != 0
|
#if WASM_ENABLE_SPEC_TEST != 0
|
||||||
if (stack_size < 48 * 1024)
|
if (stack_size < 128 * 1024)
|
||||||
stack_size = 48 * 1024;
|
stack_size = 128 * 1024;
|
||||||
#endif
|
#endif
|
||||||
module_inst->default_wasm_stack_size = stack_size;
|
module_inst->default_wasm_stack_size = stack_size;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
diff --git a/test/core/binary.wast b/test/core/binary.wast
|
diff --git a/test/core/binary.wast b/test/core/binary.wast
|
||||||
index c6f9755..a479212 100644
|
index 891aad3..07356a3 100644
|
||||||
--- a/test/core/binary.wast
|
--- a/test/core/binary.wast
|
||||||
+++ b/test/core/binary.wast
|
+++ b/test/core/binary.wast
|
||||||
@@ -161,7 +161,7 @@
|
@@ -206,7 +206,7 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Type section with signed LEB128 encoded type
|
;; Type section with signed LEB128 encoded type
|
||||||
|
@ -11,7 +11,7 @@ index c6f9755..a479212 100644
|
||||||
(module binary
|
(module binary
|
||||||
"\00asm" "\01\00\00\00"
|
"\00asm" "\01\00\00\00"
|
||||||
"\01" ;; Type section id
|
"\01" ;; Type section id
|
||||||
@@ -171,7 +171,7 @@
|
@@ -216,7 +216,7 @@
|
||||||
"\00\00"
|
"\00\00"
|
||||||
)
|
)
|
||||||
"integer representation too long"
|
"integer representation too long"
|
||||||
|
@ -20,7 +20,7 @@ index c6f9755..a479212 100644
|
||||||
|
|
||||||
;; Unsigned LEB128 must not be overlong
|
;; Unsigned LEB128 must not be overlong
|
||||||
(assert_malformed
|
(assert_malformed
|
||||||
@@ -1582,7 +1582,7 @@
|
@@ -1683,7 +1683,7 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
;; 2 elem segment declared, 1 given
|
;; 2 elem segment declared, 1 given
|
||||||
|
@ -29,7 +29,7 @@ index c6f9755..a479212 100644
|
||||||
(module binary
|
(module binary
|
||||||
"\00asm" "\01\00\00\00"
|
"\00asm" "\01\00\00\00"
|
||||||
"\01\04\01" ;; type section
|
"\01\04\01" ;; type section
|
||||||
@@ -1595,7 +1595,7 @@
|
@@ -1696,7 +1696,7 @@
|
||||||
;; "\00\41\00\0b\01\00" ;; elem 1 (missed)
|
;; "\00\41\00\0b\01\00" ;; elem 1 (missed)
|
||||||
)
|
)
|
||||||
"unexpected end"
|
"unexpected end"
|
||||||
|
@ -38,6 +38,24 @@ index c6f9755..a479212 100644
|
||||||
|
|
||||||
;; 2 elem segment declared, 1.5 given
|
;; 2 elem segment declared, 1.5 given
|
||||||
(assert_malformed
|
(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
|
diff --git a/test/core/data.wast b/test/core/data.wast
|
||||||
index 4f339be..0b5b3e6 100644
|
index 4f339be..0b5b3e6 100644
|
||||||
--- a/test/core/data.wast
|
--- a/test/core/data.wast
|
||||||
|
@ -93,26 +111,10 @@ index 4f339be..0b5b3e6 100644
|
||||||
|
|
||||||
;; Invalid offsets
|
;; Invalid offsets
|
||||||
diff --git a/test/core/elem.wast b/test/core/elem.wast
|
diff --git a/test/core/elem.wast b/test/core/elem.wast
|
||||||
index 575ecef..204b748 100644
|
index 575ecef..6eecab9 100644
|
||||||
--- a/test/core/elem.wast
|
--- a/test/core/elem.wast
|
||||||
+++ b/test/core/elem.wast
|
+++ b/test/core/elem.wast
|
||||||
@@ -467,6 +467,7 @@
|
@@ -571,9 +571,11 @@
|
||||||
"type mismatch"
|
|
||||||
)
|
|
||||||
|
|
||||||
+(; not supported by wat2wasm
|
|
||||||
(assert_invalid
|
|
||||||
(module
|
|
||||||
(table 1 funcref)
|
|
||||||
@@ -507,6 +508,7 @@
|
|
||||||
)
|
|
||||||
"constant expression required"
|
|
||||||
)
|
|
||||||
+;)
|
|
||||||
|
|
||||||
;; Two elements target the same slot
|
|
||||||
|
|
||||||
@@ -571,9 +573,11 @@
|
|
||||||
(func $const-i32-d (type $out-i32) (i32.const 68))
|
(func $const-i32-d (type $out-i32) (i32.const 68))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -124,7 +126,7 @@ index 575ecef..204b748 100644
|
||||||
|
|
||||||
(module $module3
|
(module $module3
|
||||||
(type $out-i32 (func (result i32)))
|
(type $out-i32 (func (result i32)))
|
||||||
@@ -584,6 +588,8 @@
|
@@ -584,6 +586,8 @@
|
||||||
(func $const-i32-f (type $out-i32) (i32.const 70))
|
(func $const-i32-f (type $out-i32) (i32.const 70))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -785,7 +787,7 @@ index 0b2d26f..bdab6a0 100644
|
||||||
(table $t1 30 30 funcref)
|
(table $t1 30 30 funcref)
|
||||||
(elem (table $t1) (i32.const 2) func 3 1 4 1)
|
(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
|
diff --git a/test/core/unreached-valid.wast b/test/core/unreached-valid.wast
|
||||||
index 0025217..07d2788 100644
|
index b7ebabf..4f2abfb 100644
|
||||||
--- a/test/core/unreached-valid.wast
|
--- a/test/core/unreached-valid.wast
|
||||||
+++ b/test/core/unreached-valid.wast
|
+++ b/test/core/unreached-valid.wast
|
||||||
@@ -46,6 +46,7 @@
|
@@ -46,6 +46,7 @@
|
||||||
|
@ -796,9 +798,8 @@ index 0025217..07d2788 100644
|
||||||
(module
|
(module
|
||||||
(func (export "meet-bottom")
|
(func (export "meet-bottom")
|
||||||
(block (result f64)
|
(block (result f64)
|
||||||
@@ -59,4 +60,5 @@
|
@@ -61,3 +62,4 @@
|
||||||
(drop)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
+;)
|
|
||||||
|
|
||||||
|
(assert_trap (invoke "meet-bottom") "unreachable")
|
||||||
|
+;)
|
||||||
|
|
|
@ -275,12 +275,12 @@ function spec_test()
|
||||||
|
|
||||||
# update basic test cases
|
# update basic test cases
|
||||||
echo "update spec test cases"
|
echo "update spec test cases"
|
||||||
git fetch origin master
|
git fetch origin main
|
||||||
# restore from XX_ignore_cases.patch
|
# restore from XX_ignore_cases.patch
|
||||||
# resotre branch
|
# resotre branch
|
||||||
git checkout -B master
|
git checkout -B main
|
||||||
# [spec] Fix instruction table (#1402) Thu Dec 2 17:21:54 2021 +0100
|
# [spec] Update note on module initialization trapping (#1493)
|
||||||
git reset --hard 2460ad02b51fb5ed5824f44de287a8638b19a5f8
|
git reset --hard 044d0d2e77bdcbe891f7e0b9dd2ac01d56435f0b
|
||||||
git apply ../../spec-test-script/ignore_cases.patch
|
git apply ../../spec-test-script/ignore_cases.patch
|
||||||
if [[ ${ENABLE_SIMD} == 1 ]]; then
|
if [[ ${ENABLE_SIMD} == 1 ]]; then
|
||||||
git apply ../../spec-test-script/simd_ignore_cases.patch
|
git apply ../../spec-test-script/simd_ignore_cases.patch
|
||||||
|
@ -295,8 +295,8 @@ function spec_test()
|
||||||
|
|
||||||
# fetch spec for threads proposal
|
# fetch spec for threads proposal
|
||||||
git fetch threads
|
git fetch threads
|
||||||
# [interpreter] Threading (#179) Fri Aug 6 18:02:59 2021 +0200
|
# Fix error in Web embedding desc for atomic.notify (#185)
|
||||||
git reset --hard 0d115b494d640eb0c1c352941fd14ca0bad926d3
|
git reset --hard 85b562cd6805947876ec5e8b975ab0127c55a0a2
|
||||||
git checkout threads/main
|
git checkout threads/main
|
||||||
|
|
||||||
git apply ../../spec-test-script/thread_proposal_ignore_cases.patch
|
git apply ../../spec-test-script/thread_proposal_ignore_cases.patch
|
||||||
|
@ -321,16 +321,16 @@ function spec_test()
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [ ! -f /tmp/wabt-1.0.24-${WABT_PLATFORM}.tar.gz ]; then
|
if [ ! -f /tmp/wabt-1.0.29-${WABT_PLATFORM}.tar.gz ]; then
|
||||||
wget \
|
wget \
|
||||||
https://github.com/WebAssembly/wabt/releases/download/1.0.24/wabt-1.0.24-${WABT_PLATFORM}.tar.gz \
|
https://github.com/WebAssembly/wabt/releases/download/1.0.29/wabt-1.0.29-${WABT_PLATFORM}.tar.gz \
|
||||||
-P /tmp
|
-P /tmp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd /tmp \
|
cd /tmp \
|
||||||
&& tar zxf wabt-1.0.24-${WABT_PLATFORM}.tar.gz \
|
&& tar zxf wabt-1.0.29-${WABT_PLATFORM}.tar.gz \
|
||||||
&& mkdir -p ${WORK_DIR}/wabt/out/gcc/Release/ \
|
&& mkdir -p ${WORK_DIR}/wabt/out/gcc/Release/ \
|
||||||
&& install wabt-1.0.24/bin/wa* ${WORK_DIR}/wabt/out/gcc/Release/ \
|
&& install wabt-1.0.29/bin/wa* ${WORK_DIR}/wabt/out/gcc/Release/ \
|
||||||
&& cd -
|
&& cd -
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue
Block a user