Chromium Code Reviews| Index: test/mjsunit/wasm/grow-memory.js |
| diff --git a/test/mjsunit/wasm/grow-memory.js b/test/mjsunit/wasm/grow-memory.js |
| index ecc105ee0d1d589f85f08689446c8791a5b8cfe9..c17180ba7b1591e1eef1fa06e1664e9e2f54d97a 100644 |
| --- a/test/mjsunit/wasm/grow-memory.js |
| +++ b/test/mjsunit/wasm/grow-memory.js |
| @@ -179,7 +179,7 @@ function testGrowMemoryReadWrite8() { |
| testGrowMemoryReadWrite8(); |
| -function testGrowMemoryZeroInitialSize() { |
| +function testGrowMemoryZeroInitialSize32() { |
| var builder = genGrowMemoryBuilder(); |
| var module = builder.instantiate(); |
| var offset; |
| @@ -197,14 +197,62 @@ function testGrowMemoryZeroInitialSize() { |
| assertEquals(20, peek()); |
| } |
| - //TODO(gdeepti): Fix tests with correct write boundaries |
| - //when runtime function is fixed. |
| + for(offset = kPageSize - 3; offset <= kPageSize + 5; offset++) { |
| + assertTraps(kTrapMemOutOfBounds, peek); |
| + } |
| +} |
| + |
| +testGrowMemoryZeroInitialSize32(); |
| + |
| +function testGrowMemoryZeroInitialSize16() { |
|
bradn
2016/10/12 18:50:45
Might be worth programatically generating all the
gdeepti
2016/10/13 08:43:00
Added a TODO for now as I have to look into what n
|
| + var builder = genGrowMemoryBuilder(); |
| + var module = builder.instantiate(); |
| + var offset; |
| + function peek() { return module.exports.load16(offset); } |
| + function poke(value) { return module.exports.store16(offset, value); } |
| + function growMem(pages) { return module.exports.grow_memory(pages); } |
| + |
| + assertTraps(kTrapMemOutOfBounds, peek); |
| + assertTraps(kTrapMemOutOfBounds, poke); |
| + |
| + assertEquals(0, growMem(1)); |
| + |
| + for(offset = 0; offset <= kPageSize - 2; offset++) { |
| + poke(20); |
| + assertEquals(20, peek()); |
| + } |
| + |
| + for(offset = kPageSize - 1; offset <= kPageSize + 5; offset++) { |
| + assertTraps(kTrapMemOutOfBounds, peek); |
| + } |
| +} |
| + |
| +testGrowMemoryZeroInitialSize16(); |
| + |
| +function testGrowMemoryZeroInitialSize8() { |
| + var builder = genGrowMemoryBuilder(); |
| + var module = builder.instantiate(); |
| + var offset; |
| + function peek() { return module.exports.load8(offset); } |
| + function poke(value) { return module.exports.store8(offset, value); } |
| + function growMem(pages) { return module.exports.grow_memory(pages); } |
| + |
| + assertTraps(kTrapMemOutOfBounds, peek); |
| + assertTraps(kTrapMemOutOfBounds, poke); |
| + |
| + assertEquals(0, growMem(1)); |
| + |
| + for(offset = 0; offset <= kPageSize - 1; offset++) { |
| + poke(20); |
| + assertEquals(20, peek()); |
| + } |
| + |
| for(offset = kPageSize; offset <= kPageSize + 5; offset++) { |
| assertTraps(kTrapMemOutOfBounds, peek); |
| } |
| } |
| -testGrowMemoryZeroInitialSize(); |
| +testGrowMemoryZeroInitialSize8(); |
| function testGrowMemoryTrapMaxPagesZeroInitialMemory() { |
| var builder = genGrowMemoryBuilder(); |