/* 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`);