(size, load_fn, store_fn)
| 165 | })(); |
| 166 | |
| 167 | function testMemoryGrowZeroInitialSizeBase(size, load_fn, store_fn) { |
| 168 | var builder = genMemoryGrowBuilder(); |
| 169 | builder.addMemory(0, undefined); |
| 170 | var module = builder.instantiate(); |
| 171 | var offset; |
| 172 | var load = module.exports[load_fn]; |
| 173 | var store = module.exports[store_fn]; |
| 174 | function peek() { return load(offset); } |
| 175 | function poke(value) { return store(offset, value); } |
| 176 | function growMem(pages) { return module.exports.grow_memory(pages); } |
| 177 | |
| 178 | assertTraps(kTrapMemOutOfBounds, peek); |
| 179 | assertTraps(kTrapMemOutOfBounds, poke); |
| 180 | |
| 181 | assertEquals(0, growMem(1)); |
| 182 | |
| 183 | // Instead of checking every offset, check the first 5. |
| 184 | for(offset = 0; offset <= 4; offset++) { |
| 185 | poke(20); |
| 186 | assertEquals(20, peek()); |
| 187 | } |
| 188 | |
| 189 | // Check the last 5 valid ones. |
| 190 | for(offset = kPageSize - (size * 4); offset <= kPageSize - size; offset++) { |
| 191 | poke(20); |
| 192 | assertEquals(20, peek()); |
| 193 | } |
| 194 | |
| 195 | for(offset = kPageSize - (size - 1); offset <= kPageSize + 5; offset++) { |
| 196 | assertTraps(kTrapMemOutOfBounds, peek); |
| 197 | } |
| 198 | } |
| 199 | |
| 200 | (function testMemoryGrowZeroInitialSize32() { |
| 201 | print(arguments.callee.name); |
no test coverage detected