tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

custom-page-sizes.wast.js (7970B)


      1 /* Copyright 2021 Mozilla Foundation
      2 *
      3 * Licensed under the Apache License, Version 2.0 (the "License");
      4 * you may not use this file except in compliance with the License.
      5 * You may obtain a copy of the License at
      6 *
      7 *     http://www.apache.org/licenses/LICENSE-2.0
      8 *
      9 * Unless required by applicable law or agreed to in writing, software
     10 * distributed under the License is distributed on an "AS IS" BASIS,
     11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 * See the License for the specific language governing permissions and
     13 * limitations under the License.
     14 */
     15 
     16 // ./test/core/custom-page-sizes/custom-page-sizes.wast
     17 
     18 // ./test/core/custom-page-sizes/custom-page-sizes.wast:2
     19 let $0 = instantiate(`(module (memory 1 (pagesize 1)))`);
     20 
     21 // ./test/core/custom-page-sizes/custom-page-sizes.wast:3
     22 let $1 = instantiate(`(module (memory 1 (pagesize 65536)))`);
     23 
     24 // ./test/core/custom-page-sizes/custom-page-sizes.wast:6
     25 let $2 = instantiate(`(module (memory 1 2 (pagesize 1)))`);
     26 
     27 // ./test/core/custom-page-sizes/custom-page-sizes.wast:7
     28 let $3 = instantiate(`(module (memory 1 2 (pagesize 65536)))`);
     29 
     30 // ./test/core/custom-page-sizes/custom-page-sizes.wast:10
     31 let $4 = instantiate(`(module
     32  (memory 0 (pagesize 1))
     33  (func (export "size") (result i32)
     34    memory.size
     35  )
     36  (func (export "grow") (param i32) (result i32)
     37    (memory.grow (local.get 0))
     38  )
     39  (func (export "load") (param i32) (result i32)
     40    (i32.load8_u (local.get 0))
     41  )
     42  (func (export "store") (param i32 i32)
     43    (i32.store8 (local.get 0) (local.get 1))
     44  )
     45 )`);
     46 
     47 // ./test/core/custom-page-sizes/custom-page-sizes.wast:26
     48 assert_return(() => invoke($4, `size`, []), [value("i32", 0)]);
     49 
     50 // ./test/core/custom-page-sizes/custom-page-sizes.wast:27
     51 assert_trap(() => invoke($4, `load`, [0]), `out of bounds memory access`);
     52 
     53 // ./test/core/custom-page-sizes/custom-page-sizes.wast:29
     54 assert_return(() => invoke($4, `grow`, [65536]), [value("i32", 0)]);
     55 
     56 // ./test/core/custom-page-sizes/custom-page-sizes.wast:30
     57 assert_return(() => invoke($4, `size`, []), [value("i32", 65536)]);
     58 
     59 // ./test/core/custom-page-sizes/custom-page-sizes.wast:31
     60 assert_return(() => invoke($4, `load`, [65535]), [value("i32", 0)]);
     61 
     62 // ./test/core/custom-page-sizes/custom-page-sizes.wast:32
     63 assert_return(() => invoke($4, `store`, [65535, 1]), []);
     64 
     65 // ./test/core/custom-page-sizes/custom-page-sizes.wast:33
     66 assert_return(() => invoke($4, `load`, [65535]), [value("i32", 1)]);
     67 
     68 // ./test/core/custom-page-sizes/custom-page-sizes.wast:34
     69 assert_trap(() => invoke($4, `load`, [65536]), `out of bounds memory access`);
     70 
     71 // ./test/core/custom-page-sizes/custom-page-sizes.wast:36
     72 assert_return(() => invoke($4, `grow`, [65536]), [value("i32", 65536)]);
     73 
     74 // ./test/core/custom-page-sizes/custom-page-sizes.wast:37
     75 assert_return(() => invoke($4, `size`, []), [value("i32", 131072)]);
     76 
     77 // ./test/core/custom-page-sizes/custom-page-sizes.wast:38
     78 assert_return(() => invoke($4, `load`, [131071]), [value("i32", 0)]);
     79 
     80 // ./test/core/custom-page-sizes/custom-page-sizes.wast:39
     81 assert_return(() => invoke($4, `store`, [131071, 1]), []);
     82 
     83 // ./test/core/custom-page-sizes/custom-page-sizes.wast:40
     84 assert_return(() => invoke($4, `load`, [131071]), [value("i32", 1)]);
     85 
     86 // ./test/core/custom-page-sizes/custom-page-sizes.wast:41
     87 assert_trap(() => invoke($4, `load`, [131072]), `out of bounds memory access`);
     88 
     89 // ./test/core/custom-page-sizes/custom-page-sizes.wast:46
     90 let $5 = instantiate(`(module
     91  (memory 0 (pagesize 65536))
     92  (func (export "size") (result i32)
     93    memory.size
     94  )
     95  (func (export "grow") (param i32) (result i32)
     96    (memory.grow (local.get 0))
     97  )
     98 )`);
     99 
    100 // ./test/core/custom-page-sizes/custom-page-sizes.wast:55
    101 assert_return(() => invoke($5, `size`, []), [value("i32", 0)]);
    102 
    103 // ./test/core/custom-page-sizes/custom-page-sizes.wast:56
    104 assert_return(() => invoke($5, `grow`, [65537]), [value("i32", -1)]);
    105 
    106 // ./test/core/custom-page-sizes/custom-page-sizes.wast:57
    107 assert_return(() => invoke($5, `size`, []), [value("i32", 0)]);
    108 
    109 // ./test/core/custom-page-sizes/custom-page-sizes.wast:60
    110 let $6 = instantiate(`(module
    111  (memory \$small 10 (pagesize 1))
    112  (memory \$large 1 (pagesize 65536))
    113 
    114  (data (memory \$small) (i32.const 0) "\\11\\22\\33\\44")
    115  (data (memory \$large) (i32.const 0) "\\55\\66\\77\\88")
    116 
    117  (func (export "copy-small-to-large") (param i32 i32 i32)
    118    (memory.copy \$large \$small (local.get 0) (local.get 1) (local.get 2))
    119  )
    120 
    121  (func (export "copy-large-to-small") (param i32 i32 i32)
    122    (memory.copy \$small \$large (local.get 0) (local.get 1) (local.get 2))
    123  )
    124 
    125  (func (export "load8-small") (param i32) (result i32)
    126    (i32.load8_u \$small (local.get 0))
    127  )
    128 
    129  (func (export "load8-large") (param i32) (result i32)
    130    (i32.load8_u \$large (local.get 0))
    131  )
    132 )`);
    133 
    134 // ./test/core/custom-page-sizes/custom-page-sizes.wast:84
    135 assert_return(() => invoke($6, `copy-small-to-large`, [6, 0, 2]), []);
    136 
    137 // ./test/core/custom-page-sizes/custom-page-sizes.wast:85
    138 assert_return(() => invoke($6, `load8-large`, [6]), [value("i32", 17)]);
    139 
    140 // ./test/core/custom-page-sizes/custom-page-sizes.wast:86
    141 assert_return(() => invoke($6, `load8-large`, [7]), [value("i32", 34)]);
    142 
    143 // ./test/core/custom-page-sizes/custom-page-sizes.wast:88
    144 assert_return(() => invoke($6, `copy-large-to-small`, [4, 1, 3]), []);
    145 
    146 // ./test/core/custom-page-sizes/custom-page-sizes.wast:89
    147 assert_return(() => invoke($6, `load8-small`, [4]), [value("i32", 102)]);
    148 
    149 // ./test/core/custom-page-sizes/custom-page-sizes.wast:90
    150 assert_return(() => invoke($6, `load8-small`, [5]), [value("i32", 119)]);
    151 
    152 // ./test/core/custom-page-sizes/custom-page-sizes.wast:91
    153 assert_return(() => invoke($6, `load8-small`, [6]), [value("i32", 136)]);
    154 
    155 // ./test/core/custom-page-sizes/custom-page-sizes.wast:96
    156 let $7 = instantiate(`(module \$m
    157  (memory (export "small-pages-memory") 0 (pagesize 1))
    158  (memory (export "large-pages-memory") 0 (pagesize 65536))
    159 )`);
    160 let $m = $7;
    161 
    162 // ./test/core/custom-page-sizes/custom-page-sizes.wast:100
    163 register($m, `m`);
    164 
    165 // ./test/core/custom-page-sizes/custom-page-sizes.wast:102
    166 let $8 = instantiate(`(module
    167  (memory (import "m" "small-pages-memory") 0 (pagesize 1))
    168 )`);
    169 
    170 // ./test/core/custom-page-sizes/custom-page-sizes.wast:106
    171 let $9 = instantiate(`(module
    172  (memory (import "m" "large-pages-memory") 0 (pagesize 65536))
    173 )`);
    174 
    175 // ./test/core/custom-page-sizes/custom-page-sizes.wast:113
    176 assert_malformed(
    177  () => instantiate(`(memory (pagesize 0) (data)) `),
    178  `invalid custom page size`,
    179 );
    180 
    181 // ./test/core/custom-page-sizes/custom-page-sizes.wast:116
    182 let $10 = instantiate(`(module
    183  (memory (pagesize 1) (data "xyz"))
    184  (func (export "size") (result i32)
    185    memory.size)
    186  (func (export "grow") (param i32) (result i32)
    187    (memory.grow (local.get 0)))
    188  (func (export "load") (param i32) (result i32)
    189    (i32.load8_u (local.get 0))))`);
    190 
    191 // ./test/core/custom-page-sizes/custom-page-sizes.wast:125
    192 assert_return(() => invoke($10, `size`, []), [value("i32", 3)]);
    193 
    194 // ./test/core/custom-page-sizes/custom-page-sizes.wast:126
    195 assert_return(() => invoke($10, `load`, [0]), [value("i32", 120)]);
    196 
    197 // ./test/core/custom-page-sizes/custom-page-sizes.wast:127
    198 assert_return(() => invoke($10, `load`, [1]), [value("i32", 121)]);
    199 
    200 // ./test/core/custom-page-sizes/custom-page-sizes.wast:128
    201 assert_return(() => invoke($10, `load`, [2]), [value("i32", 122)]);
    202 
    203 // ./test/core/custom-page-sizes/custom-page-sizes.wast:129
    204 assert_trap(() => invoke($10, `load`, [3]), `out of bounds memory access`);
    205 
    206 // ./test/core/custom-page-sizes/custom-page-sizes.wast:130
    207 assert_return(() => invoke($10, `grow`, [1]), [value("i32", -1)]);
    208 
    209 // ./test/core/custom-page-sizes/custom-page-sizes.wast:133
    210 let $11 = instantiate(`(module
    211  (memory (pagesize 65536) (data "xyz"))
    212  (func (export "size") (result i32)
    213        memory.size))`);
    214 
    215 // ./test/core/custom-page-sizes/custom-page-sizes.wast:138
    216 assert_return(() => invoke($11, `size`, []), [value("i32", 1)]);