Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Unified Diff: test/mjsunit/wasm/grow-memory.js

Issue 2474333003: [wasm] Exported memory should set maximum property when maximum is defined. (Closed)
Patch Set: Remove large allocation, fails on mac Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/regress/wasm/regression-651961.js ('k') | test/mjsunit/wasm/import-memory.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/wasm/grow-memory.js
diff --git a/test/mjsunit/wasm/grow-memory.js b/test/mjsunit/wasm/grow-memory.js
index c50bb3831f66b2eccd2b6f1541163090ffd485e3..37289a5b77d8a143d3cbd208e4737f3f651a9275 100644
--- a/test/mjsunit/wasm/grow-memory.js
+++ b/test/mjsunit/wasm/grow-memory.js
@@ -8,6 +8,7 @@ load("test/mjsunit/wasm/wasm-constants.js");
load("test/mjsunit/wasm/wasm-module-builder.js");
var kPageSize = 0x10000;
+var kV8MaxPages = 16384;
function genGrowMemoryBuilder() {
var builder = new WasmModuleBuilder();
@@ -42,7 +43,7 @@ function genGrowMemoryBuilder() {
// current implementation.
function testGrowMemoryReadWrite32() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset;
function peek() { return module.exports.load(offset); }
@@ -89,7 +90,7 @@ testGrowMemoryReadWrite32();
function testGrowMemoryReadWrite16() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset;
function peek() { return module.exports.load16(offset); }
@@ -136,7 +137,7 @@ testGrowMemoryReadWrite16();
function testGrowMemoryReadWrite8() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset;
function peek() { return module.exports.load8(offset); }
@@ -323,7 +324,7 @@ testGrowMemoryTrapsWithNonSmiInput();
function testGrowMemoryCurrentMemory() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
builder.addFunction("memory_size", kSig_i_v)
.addBody([kExprMemorySize, kMemoryZero])
.exportFunc();
@@ -339,7 +340,7 @@ testGrowMemoryCurrentMemory();
function testGrowMemoryPreservesDataMemOp32() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset, val;
function peek() { return module.exports.load(offset); }
@@ -362,7 +363,7 @@ testGrowMemoryPreservesDataMemOp32();
function testGrowMemoryPreservesDataMemOp16() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset, val;
function peek() { return module.exports.load16(offset); }
@@ -385,7 +386,7 @@ testGrowMemoryPreservesDataMemOp16();
function testGrowMemoryPreservesDataMemOp8() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset, val = 0;
function peek() { return module.exports.load8(offset); }
@@ -412,7 +413,7 @@ testGrowMemoryPreservesDataMemOp8();
function testGrowMemoryOutOfBoundsOffset() {
var builder = genGrowMemoryBuilder();
- builder.addMemory(1, 1, false);
+ builder.addMemory(1, kV8MaxPages, false);
var module = builder.instantiate();
var offset, val;
function peek() { return module.exports.load(offset); }
@@ -458,3 +459,31 @@ function testGrowMemoryOutOfBoundsOffset2() {
}
testGrowMemoryOutOfBoundsOffset2();
+
+function testGrowMemoryDeclaredMaxTraps() {
+ var builder = genGrowMemoryBuilder();
+ builder.addMemory(1, 16, false);
+ var module = builder.instantiate();
+ function growMem(pages) { return module.exports.grow_memory(pages); }
+ assertEquals(1, growMem(5));
+ assertEquals(6, growMem(5));
+ assertEquals(-1, growMem(6));
+}
+
+testGrowMemoryDeclaredMaxTraps();
+
+function testGrowMemoryDeclaredSpecMaxTraps() {
+ // The spec maximum is higher than the internal V8 maximum. This test only
+ // checks that grow_memory does not grow past the internally defined maximum
+ // to reflect the currentl implementation.
+ var builder = genGrowMemoryBuilder();
+ var kSpecMaxPages = 65535;
+ builder.addMemory(1, kSpecMaxPages, false);
+ var module = builder.instantiate();
+ function poke(value) { return module.exports.store(offset, value); }
+ function growMem(pages) { return module.exports.grow_memory(pages); }
+ assertEquals(1, growMem(20));
+ assertEquals(-1, growMem(kV8MaxPages - 20));
+}
+
+testGrowMemoryDeclaredSpecMaxTraps();
« no previous file with comments | « test/mjsunit/regress/wasm/regression-651961.js ('k') | test/mjsunit/wasm/import-memory.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698