diff options
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/multi-memory/address0.wast.js')
-rw-r--r-- | js/src/jit-test/tests/wasm/spec/multi-memory/address0.wast.js | 392 |
1 files changed, 392 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/multi-memory/address0.wast.js b/js/src/jit-test/tests/wasm/spec/multi-memory/address0.wast.js new file mode 100644 index 0000000000..62b3c985d6 --- /dev/null +++ b/js/src/jit-test/tests/wasm/spec/multi-memory/address0.wast.js @@ -0,0 +1,392 @@ +/* Copyright 2021 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// ./test/core/multi-memory/address0.wast + +// ./test/core/multi-memory/address0.wast:3 +let $0 = instantiate(`(module + (memory $$mem0 0) + (memory $$mem1 1) + (data (memory $$mem1) (i32.const 0) "abcdefghijklmnopqrstuvwxyz") + + (func (export "8u_good1") (param $$i i32) (result i32) + (i32.load8_u $$mem1 offset=0 (local.get $$i)) ;; 97 'a' + ) + (func (export "8u_good2") (param $$i i32) (result i32) + (i32.load8_u $$mem1 align=1 (local.get $$i)) ;; 97 'a' + ) + (func (export "8u_good3") (param $$i i32) (result i32) + (i32.load8_u $$mem1 offset=1 align=1 (local.get $$i)) ;; 98 'b' + ) + (func (export "8u_good4") (param $$i i32) (result i32) + (i32.load8_u $$mem1 offset=2 align=1 (local.get $$i)) ;; 99 'c' + ) + (func (export "8u_good5") (param $$i i32) (result i32) + (i32.load8_u $$mem1 offset=25 align=1 (local.get $$i)) ;; 122 'z' + ) + + (func (export "8s_good1") (param $$i i32) (result i32) + (i32.load8_s $$mem1 offset=0 (local.get $$i)) ;; 97 'a' + ) + (func (export "8s_good2") (param $$i i32) (result i32) + (i32.load8_s $$mem1 align=1 (local.get $$i)) ;; 97 'a' + ) + (func (export "8s_good3") (param $$i i32) (result i32) + (i32.load8_s $$mem1 offset=1 align=1 (local.get $$i)) ;; 98 'b' + ) + (func (export "8s_good4") (param $$i i32) (result i32) + (i32.load8_s $$mem1 offset=2 align=1 (local.get $$i)) ;; 99 'c' + ) + (func (export "8s_good5") (param $$i i32) (result i32) + (i32.load8_s $$mem1 offset=25 align=1 (local.get $$i)) ;; 122 'z' + ) + + (func (export "16u_good1") (param $$i i32) (result i32) + (i32.load16_u $$mem1 offset=0 (local.get $$i)) ;; 25185 'ab' + ) + (func (export "16u_good2") (param $$i i32) (result i32) + (i32.load16_u $$mem1 align=1 (local.get $$i)) ;; 25185 'ab' + ) + (func (export "16u_good3") (param $$i i32) (result i32) + (i32.load16_u $$mem1 offset=1 align=1 (local.get $$i)) ;; 25442 'bc' + ) + (func (export "16u_good4") (param $$i i32) (result i32) + (i32.load16_u $$mem1 offset=2 align=2 (local.get $$i)) ;; 25699 'cd' + ) + (func (export "16u_good5") (param $$i i32) (result i32) + (i32.load16_u $$mem1 offset=25 align=2 (local.get $$i)) ;; 122 'z\\0' + ) + + (func (export "16s_good1") (param $$i i32) (result i32) + (i32.load16_s $$mem1 offset=0 (local.get $$i)) ;; 25185 'ab' + ) + (func (export "16s_good2") (param $$i i32) (result i32) + (i32.load16_s $$mem1 align=1 (local.get $$i)) ;; 25185 'ab' + ) + (func (export "16s_good3") (param $$i i32) (result i32) + (i32.load16_s $$mem1 offset=1 align=1 (local.get $$i)) ;; 25442 'bc' + ) + (func (export "16s_good4") (param $$i i32) (result i32) + (i32.load16_s $$mem1 offset=2 align=2 (local.get $$i)) ;; 25699 'cd' + ) + (func (export "16s_good5") (param $$i i32) (result i32) + (i32.load16_s $$mem1 offset=25 align=2 (local.get $$i)) ;; 122 'z\\0' + ) + + (func (export "32_good1") (param $$i i32) (result i32) + (i32.load $$mem1 offset=0 (local.get $$i)) ;; 1684234849 'abcd' + ) + (func (export "32_good2") (param $$i i32) (result i32) + (i32.load $$mem1 align=1 (local.get $$i)) ;; 1684234849 'abcd' + ) + (func (export "32_good3") (param $$i i32) (result i32) + (i32.load $$mem1 offset=1 align=1 (local.get $$i)) ;; 1701077858 'bcde' + ) + (func (export "32_good4") (param $$i i32) (result i32) + (i32.load $$mem1 offset=2 align=2 (local.get $$i)) ;; 1717920867 'cdef' + ) + (func (export "32_good5") (param $$i i32) (result i32) + (i32.load $$mem1 offset=25 align=4 (local.get $$i)) ;; 122 'z\\0\\0\\0' + ) + + (func (export "8u_bad") (param $$i i32) + (drop (i32.load8_u $$mem1 offset=4294967295 (local.get $$i))) + ) + (func (export "8s_bad") (param $$i i32) + (drop (i32.load8_s $$mem1 offset=4294967295 (local.get $$i))) + ) + (func (export "16u_bad") (param $$i i32) + (drop (i32.load16_u $$mem1 offset=4294967295 (local.get $$i))) + ) + (func (export "16s_bad") (param $$i i32) + (drop (i32.load16_s $$mem1 offset=4294967295 (local.get $$i))) + ) + (func (export "32_bad") (param $$i i32) + (drop (i32.load $$mem1 offset=4294967295 (local.get $$i))) + ) +)`); + +// ./test/core/multi-memory/address0.wast:105 +assert_return(() => invoke($0, `8u_good1`, [0]), [value("i32", 97)]); + +// ./test/core/multi-memory/address0.wast:106 +assert_return(() => invoke($0, `8u_good2`, [0]), [value("i32", 97)]); + +// ./test/core/multi-memory/address0.wast:107 +assert_return(() => invoke($0, `8u_good3`, [0]), [value("i32", 98)]); + +// ./test/core/multi-memory/address0.wast:108 +assert_return(() => invoke($0, `8u_good4`, [0]), [value("i32", 99)]); + +// ./test/core/multi-memory/address0.wast:109 +assert_return(() => invoke($0, `8u_good5`, [0]), [value("i32", 122)]); + +// ./test/core/multi-memory/address0.wast:111 +assert_return(() => invoke($0, `8s_good1`, [0]), [value("i32", 97)]); + +// ./test/core/multi-memory/address0.wast:112 +assert_return(() => invoke($0, `8s_good2`, [0]), [value("i32", 97)]); + +// ./test/core/multi-memory/address0.wast:113 +assert_return(() => invoke($0, `8s_good3`, [0]), [value("i32", 98)]); + +// ./test/core/multi-memory/address0.wast:114 +assert_return(() => invoke($0, `8s_good4`, [0]), [value("i32", 99)]); + +// ./test/core/multi-memory/address0.wast:115 +assert_return(() => invoke($0, `8s_good5`, [0]), [value("i32", 122)]); + +// ./test/core/multi-memory/address0.wast:117 +assert_return(() => invoke($0, `16u_good1`, [0]), [value("i32", 25185)]); + +// ./test/core/multi-memory/address0.wast:118 +assert_return(() => invoke($0, `16u_good2`, [0]), [value("i32", 25185)]); + +// ./test/core/multi-memory/address0.wast:119 +assert_return(() => invoke($0, `16u_good3`, [0]), [value("i32", 25442)]); + +// ./test/core/multi-memory/address0.wast:120 +assert_return(() => invoke($0, `16u_good4`, [0]), [value("i32", 25699)]); + +// ./test/core/multi-memory/address0.wast:121 +assert_return(() => invoke($0, `16u_good5`, [0]), [value("i32", 122)]); + +// ./test/core/multi-memory/address0.wast:123 +assert_return(() => invoke($0, `16s_good1`, [0]), [value("i32", 25185)]); + +// ./test/core/multi-memory/address0.wast:124 +assert_return(() => invoke($0, `16s_good2`, [0]), [value("i32", 25185)]); + +// ./test/core/multi-memory/address0.wast:125 +assert_return(() => invoke($0, `16s_good3`, [0]), [value("i32", 25442)]); + +// ./test/core/multi-memory/address0.wast:126 +assert_return(() => invoke($0, `16s_good4`, [0]), [value("i32", 25699)]); + +// ./test/core/multi-memory/address0.wast:127 +assert_return(() => invoke($0, `16s_good5`, [0]), [value("i32", 122)]); + +// ./test/core/multi-memory/address0.wast:129 +assert_return(() => invoke($0, `32_good1`, [0]), [value("i32", 1684234849)]); + +// ./test/core/multi-memory/address0.wast:130 +assert_return(() => invoke($0, `32_good2`, [0]), [value("i32", 1684234849)]); + +// ./test/core/multi-memory/address0.wast:131 +assert_return(() => invoke($0, `32_good3`, [0]), [value("i32", 1701077858)]); + +// ./test/core/multi-memory/address0.wast:132 +assert_return(() => invoke($0, `32_good4`, [0]), [value("i32", 1717920867)]); + +// ./test/core/multi-memory/address0.wast:133 +assert_return(() => invoke($0, `32_good5`, [0]), [value("i32", 122)]); + +// ./test/core/multi-memory/address0.wast:135 +assert_return(() => invoke($0, `8u_good1`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:136 +assert_return(() => invoke($0, `8u_good2`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:137 +assert_return(() => invoke($0, `8u_good3`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:138 +assert_return(() => invoke($0, `8u_good4`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:139 +assert_return(() => invoke($0, `8u_good5`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:141 +assert_return(() => invoke($0, `8s_good1`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:142 +assert_return(() => invoke($0, `8s_good2`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:143 +assert_return(() => invoke($0, `8s_good3`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:144 +assert_return(() => invoke($0, `8s_good4`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:145 +assert_return(() => invoke($0, `8s_good5`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:147 +assert_return(() => invoke($0, `16u_good1`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:148 +assert_return(() => invoke($0, `16u_good2`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:149 +assert_return(() => invoke($0, `16u_good3`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:150 +assert_return(() => invoke($0, `16u_good4`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:151 +assert_return(() => invoke($0, `16u_good5`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:153 +assert_return(() => invoke($0, `16s_good1`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:154 +assert_return(() => invoke($0, `16s_good2`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:155 +assert_return(() => invoke($0, `16s_good3`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:156 +assert_return(() => invoke($0, `16s_good4`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:157 +assert_return(() => invoke($0, `16s_good5`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:159 +assert_return(() => invoke($0, `32_good1`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:160 +assert_return(() => invoke($0, `32_good2`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:161 +assert_return(() => invoke($0, `32_good3`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:162 +assert_return(() => invoke($0, `32_good4`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:163 +assert_return(() => invoke($0, `32_good5`, [65507]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:165 +assert_return(() => invoke($0, `8u_good1`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:166 +assert_return(() => invoke($0, `8u_good2`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:167 +assert_return(() => invoke($0, `8u_good3`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:168 +assert_return(() => invoke($0, `8u_good4`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:169 +assert_return(() => invoke($0, `8u_good5`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:171 +assert_return(() => invoke($0, `8s_good1`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:172 +assert_return(() => invoke($0, `8s_good2`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:173 +assert_return(() => invoke($0, `8s_good3`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:174 +assert_return(() => invoke($0, `8s_good4`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:175 +assert_return(() => invoke($0, `8s_good5`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:177 +assert_return(() => invoke($0, `16u_good1`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:178 +assert_return(() => invoke($0, `16u_good2`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:179 +assert_return(() => invoke($0, `16u_good3`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:180 +assert_return(() => invoke($0, `16u_good4`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:181 +assert_return(() => invoke($0, `16u_good5`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:183 +assert_return(() => invoke($0, `16s_good1`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:184 +assert_return(() => invoke($0, `16s_good2`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:185 +assert_return(() => invoke($0, `16s_good3`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:186 +assert_return(() => invoke($0, `16s_good4`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:187 +assert_return(() => invoke($0, `16s_good5`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:189 +assert_return(() => invoke($0, `32_good1`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:190 +assert_return(() => invoke($0, `32_good2`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:191 +assert_return(() => invoke($0, `32_good3`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:192 +assert_return(() => invoke($0, `32_good4`, [65508]), [value("i32", 0)]); + +// ./test/core/multi-memory/address0.wast:193 +assert_trap(() => invoke($0, `32_good5`, [65508]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:195 +assert_trap(() => invoke($0, `8u_good3`, [-1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:196 +assert_trap(() => invoke($0, `8s_good3`, [-1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:197 +assert_trap(() => invoke($0, `16u_good3`, [-1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:198 +assert_trap(() => invoke($0, `16s_good3`, [-1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:199 +assert_trap(() => invoke($0, `32_good3`, [-1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:200 +assert_trap(() => invoke($0, `32_good3`, [-1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:202 +assert_trap(() => invoke($0, `8u_bad`, [0]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:203 +assert_trap(() => invoke($0, `8s_bad`, [0]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:204 +assert_trap(() => invoke($0, `16u_bad`, [0]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:205 +assert_trap(() => invoke($0, `16s_bad`, [0]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:206 +assert_trap(() => invoke($0, `32_bad`, [0]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:208 +assert_trap(() => invoke($0, `8u_bad`, [1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:209 +assert_trap(() => invoke($0, `8s_bad`, [1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:210 +assert_trap(() => invoke($0, `16u_bad`, [1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:211 +assert_trap(() => invoke($0, `16s_bad`, [1]), `out of bounds memory access`); + +// ./test/core/multi-memory/address0.wast:212 +assert_trap(() => invoke($0, `32_bad`, [1]), `out of bounds memory access`); |