MCPcopy Create free account
hub / github.com/nodejs/node / testMemoryGrowZeroInitialSizeBase

Function testMemoryGrowZeroInitialSizeBase

deps/v8/test/mjsunit/wasm/grow-memory.js:167–198  ·  view source on GitHub ↗
(size, load_fn, store_fn)

Source from the content-addressed store, hash-verified

165})();
166
167function 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);

Callers 1

grow-memory.jsFile · 0.70

Calls 8

genMemoryGrowBuilderFunction · 0.70
assertTrapsFunction · 0.70
growMemFunction · 0.70
pokeFunction · 0.70
peekFunction · 0.70
assertEqualsFunction · 0.50
addMemoryMethod · 0.45
instantiateMethod · 0.45

Tested by

no test coverage detected