diff options
Diffstat (limited to 'js/src/jit-test/etc/wasm/spec-tests.patch')
-rw-r--r-- | js/src/jit-test/etc/wasm/spec-tests.patch | 154 |
1 files changed, 152 insertions, 2 deletions
diff --git a/js/src/jit-test/etc/wasm/spec-tests.patch b/js/src/jit-test/etc/wasm/spec-tests.patch index a3c0e15676..cdd0d1aebc 100644 --- a/js/src/jit-test/etc/wasm/spec-tests.patch +++ b/js/src/jit-test/etc/wasm/spec-tests.patch @@ -78,6 +78,40 @@ diff --git a/js/src/jit-test/tests/wasm/spec/memory64/memory_trap64.wast.js b/js + value("i64", 7523094288207667809n), + ]); +} +diff --git a/js/src/jit-test/tests/wasm/spec/memory64/memory64.wast.js b/js/src/jit-test/tests/wasm/spec/memory64/memory64.wast.js +--- a/js/src/jit-test/tests/wasm/spec/memory64/memory64.wast.js ++++ b/js/src/jit-test/tests/wasm/spec/memory64/memory64.wast.js +@@ -27,17 +27,19 @@ let $2 = instantiate(`(module (memory i64 1 256))`); + // ./test/core/memory64.wast:6 + let $3 = instantiate(`(module (memory i64 0 65536))`); + +-// ./test/core/memory64.wast:8 +-assert_invalid( +- () => instantiate(`(module (memory i64 0) (memory i64 0))`), +- `multiple memories`, +-); +- +-// ./test/core/memory64.wast:9 +-assert_invalid( +- () => instantiate(`(module (memory (import "spectest" "memory") i64 0) (memory i64 0))`), +- `multiple memories`, +-); ++if (!wasmMultiMemoryEnabled()) { ++ // ./test/core/memory64.wast:8 ++ assert_invalid( ++ () => instantiate(`(module (memory i64 0) (memory i64 0))`), ++ `multiple memories`, ++ ); ++ ++ // ./test/core/memory64.wast:9 ++ assert_invalid( ++ () => instantiate(`(module (memory (import "spectest" "memory") i64 0) (memory i64 0))`), ++ `multiple memories`, ++ ); ++} + + // ./test/core/memory64.wast:11 + let $4 = instantiate(`(module (memory i64 (data)) (func (export "memsize") (result i64) (memory.size)))`); diff --git a/js/src/jit-test/tests/wasm/spec/multi-memory/simd_load.wast.js b/js/src/jit-test/tests/wasm/spec/multi-memory/simd_load.wast.js --- a/js/src/jit-test/tests/wasm/spec/multi-memory/simd_load.wast.js +++ b/js/src/jit-test/tests/wasm/spec/multi-memory/simd_load.wast.js @@ -105,6 +139,94 @@ diff --git a/js/src/jit-test/tests/wasm/spec/multi-memory/simd_store.wast.js b/j /* Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); +diff --git a/js/src/jit-test/tests/wasm/spec/multi-memory/harness/harness.js b/js/src/jit-test/tests/wasm/spec/multi-memory/harness/harness.js +--- a/js/src/jit-test/tests/wasm/spec/multi-memory/harness/harness.js ++++ b/js/src/jit-test/tests/wasm/spec/multi-memory/harness/harness.js +@@ -19,6 +19,15 @@ if (!wasmIsSupported()) { + quit(); + } + ++function partialOobWriteMayWritePartialData() { ++ let arm_native = getBuildConfiguration("arm") && !getBuildConfiguration("arm-simulator"); ++ let arm64_native = getBuildConfiguration("arm64") && !getBuildConfiguration("arm64-simulator"); ++ return arm_native || arm64_native; ++} ++ ++let native_arm = getBuildConfiguration("arm") && !getBuildConfiguration("arm-simulator"); ++let native_arm64 = getBuildConfiguration("arm64") && !getBuildConfiguration("arm64-simulator"); ++ + function bytes(type, bytes) { + var typedBuffer = new Uint8Array(bytes); + return wasmGlobalFromArrayBuffer(type, typedBuffer.buffer); +diff --git a/js/src/jit-test/tests/wasm/spec/multi-memory/memory_trap1.wast.js b/js/src/jit-test/tests/wasm/spec/multi-memory/memory_trap1.wast.js +--- a/js/src/jit-test/tests/wasm/spec/multi-memory/memory_trap1.wast.js ++++ b/js/src/jit-test/tests/wasm/spec/multi-memory/memory_trap1.wast.js +@@ -562,11 +562,15 @@ assert_trap(() => invoke($0, `i64.load32_u`, [-3]), `out of bounds memory access + // ./test/core/multi-memory/memory_trap1.wast:234 + assert_trap(() => invoke($0, `i64.load32_u`, [-4]), `out of bounds memory access`); + +-// ./test/core/multi-memory/memory_trap1.wast:237 +-assert_return(() => invoke($0, `i64.load`, [65528]), [value("i64", 7523094288207667809n)]); ++// Bug 1842293 - do not observe the partial store caused by bug 1666747 on ++// some native platforms. ++if (!partialOobWriteMayWritePartialData()) { ++ // ./test/core/multi-memory/memory_trap1.wast:237 ++ assert_return(() => invoke($0, `i64.load`, [65528]), [value("i64", 7523094288207667809n)]); + +-// ./test/core/multi-memory/memory_trap1.wast:238 +-assert_return(() => invoke($0, `i64.load`, [0]), [value("i64", 7523094288207667809n)]); ++ // ./test/core/multi-memory/memory_trap1.wast:238 ++ assert_return(() => invoke($0, `i64.load`, [0]), [value("i64", 7523094288207667809n)]); ++} + + // ./test/core/multi-memory/memory_trap1.wast:242 + assert_return(() => invoke($0, `i64.store`, [65528, 0n]), []); +@@ -574,14 +578,18 @@ assert_return(() => invoke($0, `i64.store`, [65528, 0n]), []); + // ./test/core/multi-memory/memory_trap1.wast:243 + assert_trap(() => invoke($0, `i32.store`, [65533, 305419896]), `out of bounds memory access`); + +-// ./test/core/multi-memory/memory_trap1.wast:244 +-assert_return(() => invoke($0, `i32.load`, [65532]), [value("i32", 0)]); ++if (!partialOobWriteMayWritePartialData()) { ++ // ./test/core/multi-memory/memory_trap1.wast:244 ++ assert_return(() => invoke($0, `i32.load`, [65532]), [value("i32", 0)]); ++} + + // ./test/core/multi-memory/memory_trap1.wast:245 + assert_trap(() => invoke($0, `i64.store`, [65529, 1311768467294899695n]), `out of bounds memory access`); + +-// ./test/core/multi-memory/memory_trap1.wast:246 +-assert_return(() => invoke($0, `i64.load`, [65528]), [value("i64", 0n)]); ++if (!partialOobWriteMayWritePartialData()) { ++ // ./test/core/multi-memory/memory_trap1.wast:246 ++ assert_return(() => invoke($0, `i64.load`, [65528]), [value("i64", 0n)]); ++} + + // ./test/core/multi-memory/memory_trap1.wast:247 + assert_trap( +@@ -589,8 +597,10 @@ assert_trap( + `out of bounds memory access`, + ); + +-// ./test/core/multi-memory/memory_trap1.wast:248 +-assert_return(() => invoke($0, `f32.load`, [65532]), [value("f32", 0)]); ++if (!partialOobWriteMayWritePartialData()) { ++ // ./test/core/multi-memory/memory_trap1.wast:248 ++ assert_return(() => invoke($0, `f32.load`, [65532]), [value("f32", 0)]); ++} + + // ./test/core/multi-memory/memory_trap1.wast:249 + assert_trap( +@@ -598,5 +608,7 @@ assert_trap( + `out of bounds memory access`, + ); + +-// ./test/core/multi-memory/memory_trap1.wast:250 +-assert_return(() => invoke($0, `f64.load`, [65528]), [value("f64", 0)]); ++if (!partialOobWriteMayWritePartialData()) { ++ // ./test/core/multi-memory/memory_trap1.wast:250 ++ assert_return(() => invoke($0, `f64.load`, [65528]), [value("f64", 0)]); ++} diff --git a/js/src/jit-test/tests/wasm/spec/relaxed-simd/i32x4_relaxed_trunc.wast.js b/js/src/jit-test/tests/wasm/spec/relaxed-simd/i32x4_relaxed_trunc.wast.js --- a/js/src/jit-test/tests/wasm/spec/relaxed-simd/i32x4_relaxed_trunc.wast.js +++ b/js/src/jit-test/tests/wasm/spec/relaxed-simd/i32x4_relaxed_trunc.wast.js @@ -132,6 +254,34 @@ diff --git a/js/src/jit-test/tests/wasm/spec/relaxed-simd/i32x4_relaxed_trunc.wa ), ], ); +diff --git a/js/src/jit-test/tests/wasm/spec/spec/memory.wast.js b/js/src/jit-test/tests/wasm/spec/spec/memory.wast.js +--- a/js/src/jit-test/tests/wasm/spec/spec/memory.wast.js ++++ b/js/src/jit-test/tests/wasm/spec/spec/memory.wast.js +@@ -33,14 +33,16 @@ let $4 = instantiate(`(module (memory 1 256))`); + // ./test/core/memory.wast:8 + let $5 = instantiate(`(module (memory 0 65536))`); + +-// ./test/core/memory.wast:10 +-assert_invalid(() => instantiate(`(module (memory 0) (memory 0))`), `multiple memories`); +- +-// ./test/core/memory.wast:11 +-assert_invalid( +- () => instantiate(`(module (memory (import "spectest" "memory") 0) (memory 0))`), +- `multiple memories`, +-); ++if (!wasmMultiMemoryEnabled()) { ++ // ./test/core/memory.wast:10 ++ assert_invalid(() => instantiate(`(module (memory 0) (memory 0))`), `multiple memories`); ++ ++ // ./test/core/memory.wast:11 ++ assert_invalid( ++ () => instantiate(`(module (memory (import "spectest" "memory") 0) (memory 0))`), ++ `multiple memories`, ++ ); ++} + + // ./test/core/memory.wast:13 + let $6 = instantiate(`(module (memory (data)) (func (export "memsize") (result i32) (memory.size)))`); diff --git a/js/src/jit-test/tests/wasm/spec/spec/simd_address.wast.js b/js/src/jit-test/tests/wasm/spec/spec/simd_address.wast.js --- a/js/src/jit-test/tests/wasm/spec/spec/simd_address.wast.js +++ b/js/src/jit-test/tests/wasm/spec/spec/simd_address.wast.js @@ -632,7 +782,7 @@ index 3ea51a8cb0ff3..71739f4a1c8e4 100644 --- a/js/src/jit-test/tests/wasm/spec/function-references/return_call_ref.wast.js +++ b/js/src/jit-test/tests/wasm/spec/function-references/return_call_ref.wast.js @@ -1,3 +1,4 @@ -+// |jit-test| --wasm-tail-calls; skip-if: !wasmTailCallsEnabled() ++// |jit-test| --setpref=wasm_tail_calls=true; skip-if: !wasmTailCallsEnabled() /* Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -640,7 +790,7 @@ diff --git a/js/src/jit-test/tests/wasm/spec/spec/global.wast.js b/js/src/jit-te --- a/js/src/jit-test/tests/wasm/spec/spec/global.wast.js +++ b/js/src/jit-test/tests/wasm/spec/spec/global.wast.js @@ -1,3 +1,4 @@ -+// |jit-test| --no-wasm-gc ++// |jit-test| --setpref=wasm_gc=false /* Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); |