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

Unified Diff: test/mjsunit/wasm/start-function.js

Issue 1770913002: [wasm] Use the JavaScript WasmModuleBuilder utility in JS tests. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 months 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/wasm/stackwalk.js ('k') | test/mjsunit/wasm/unreachable.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/wasm/start-function.js
diff --git a/test/mjsunit/wasm/start-function.js b/test/mjsunit/wasm/start-function.js
index 409857de345f7a307097b76f1417b7d6e5621dcf..c5077bcf93f92969e026bae7ad19dd3fac48a883 100644
--- a/test/mjsunit/wasm/start-function.js
+++ b/test/mjsunit/wasm/start-function.js
@@ -5,38 +5,17 @@
// Flags: --expose-wasm
load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
function instantiate(sig, body) {
- var module = new Array();
- module = module.concat([
- // -- header
- kWasmH0, kWasmH1, kWasmH2, kWasmH3,
- kWasmV0, kWasmV1, kWasmV2, kWasmV3
- ]);
- module = module.concat([
- // -- signatures
- kDeclSignatures, 1,
- ]);
- module = module.concat(sig);
- module = module.concat([
- // -- functions
- kDeclFunctions, 1,
- 0, // decl flags
- 0, 0, // signature
- body.length, 0, // body size
- ]);
- module = module.concat(body);
- module = module.concat([
- // -- declare start function
- kDeclStartFunction,
- 0
- ]);
-
- var data = bytes.apply(this, module);
- print(module);
- print(data instanceof ArrayBuffer);
- print(data.byteLength);
- return _WASMEXP_.instantiateModule(data);
+ var builder = new WasmModuleBuilder();
+
+ var func = builder.addFunction("", sig)
+ .addBody(body);
+
+ builder.addStart(func.index);
+
+ return builder.instantiate();
}
function assertFails(sig, body) {
@@ -58,120 +37,75 @@ function assertVerifies(sig, body) {
return module;
}
-assertVerifies([0, kAstStmt], [kExprNop]);
-assertVerifies([0, kAstI32], [kExprI8Const, 0]);
+assertVerifies([kAstStmt], [kExprNop]);
+assertVerifies([kAstI32], [kExprI8Const, 0]);
// Arguments aren't allow to start functions.
-assertFails([1, kAstI32, kAstI32], [kExprGetLocal, 0]);
-assertFails([2, kAstI32, kAstI32, kAstF32], [kExprGetLocal, 0]);
-assertFails([3, kAstI32, kAstI32, kAstF32, kAstF64], [kExprGetLocal, 0]);
+assertFails([kAstI32, kAstI32], [kExprGetLocal, 0]);
+assertFails([kAstI32, kAstI32, kAstF32], [kExprGetLocal, 0]);
+assertFails([kAstI32, kAstI32, kAstF32, kAstF64], [kExprGetLocal, 0]);
(function testInvalidIndex() {
- var kBodySize = 1;
- var data = bytesWithHeader(
- // -- signatures
- kDeclSignatures, 1,
- 0, kAstStmt,
- // -- functions
- kDeclFunctions, 1,
- 0, // decl flags
- 0, 0, // signature
- kBodySize, 0, // body size
- kExprNop, // body
- // -- declare start function
- kDeclStartFunction,
- 1
- );
-
- assertThrows(function() { _WASMEXP_.instantiateModule(data); });
+ print("testInvalidIndex");
+ var builder = new WasmModuleBuilder();
+
+ var func = builder.addFunction("", [kAstStmt])
+ .addBody([kExprNop]);
+
+ builder.addStart(func.index + 1);
+
+ assertThrows(builder.instantiate);
})();
(function testTwoStartFuncs() {
- var kBodySize = 1;
- var data = bytesWithHeader(
- // -- signatures
- kDeclSignatures, 1,
- 0, kAstStmt,
- // -- functions
- kDeclFunctions, 1,
- 0, // decl flags
- 0, 0, // signature
- kBodySize, 0, // body size
- kExprNop, // body
- // -- declare start function
- kDeclStartFunction,
- 0,
- // -- declare start function
- kDeclStartFunction,
- 0
- );
-
- assertThrows(function() { _WASMEXP_.instantiateModule(data); });
+ print("testTwoStartFuncs");
+ var builder = new WasmModuleBuilder();
+
+ var func = builder.addFunction("", [kAstStmt])
+ .addBody([kExprNop]);
+
+ builder.addExplicitSection([kDeclStartFunction, 0]);
+ builder.addExplicitSection([kDeclStartFunction, 0]);
+
+ assertThrows(builder.instantiate);
})();
(function testRun() {
- var kBodySize = 6;
-
- var data = bytesWithHeader(
- kDeclMemory,
- 12, 12, 1, // memory
- // -- signatures
- kDeclSignatures, 1,
- 0, kAstStmt,
- // -- start function
- kDeclFunctions, 1,
- 0, // decl flags
- 0, 0, // signature
- kBodySize, 0, // code size
- // -- start body
- kExprI32StoreMem, 0, kExprI8Const, 0, kExprI8Const, 77,
- // -- declare start function
- kDeclStartFunction,
- 0
- );
-
- var module = _WASMEXP_.instantiateModule(data);
+ print("testRun");
+ var builder = new WasmModuleBuilder();
+
+ builder.addMemory(12, 12, true);
+
+ var func = builder.addFunction("", [kAstStmt])
+ .addBody([kExprI32StoreMem, 0, kExprI8Const, 0, kExprI8Const, 77]);
+
+ builder.addStart(func.index);
+
+ var module = builder.instantiate();
var memory = module.memory;
var view = new Int8Array(memory);
assertEquals(77, view[0]);
})();
(function testStartFFI() {
- var kBodySize = 2;
- var kNameOffset = kHeaderSize + 4 + 9 + 7 + 3;
-
- var data = bytesWithHeader(
- // -- signatures
- kDeclSignatures, 1,
- 0, kAstStmt,
- // -- imported function
- kDeclFunctions, 2,
- kDeclFunctionImport | kDeclFunctionName, // decl flags
- 0, 0, // signature
- kNameOffset, 0, 0, 0,
- // -- start function
- 0, // decl flags
- 0, 0, // signature
- kBodySize, 0, // code size
- // -- start body
- kExprCallFunction, 0,
- // -- declare start function
- kDeclStartFunction,
- 1,
- kDeclEnd,
- 'f', 'o', 'o', 0
- );
-
+ print("testStartFFI");
var ranned = false;
- var ffi = new Object();
- ffi.foo = function() {
+ var ffi = { foo : function() {
print("we ranned at stert!");
ranned = true;
- }
- var module = _WASMEXP_.instantiateModule(data, ffi);
- var memory = module.memory;
- var view = new Int8Array(memory);
+ }};
+
+ var builder = new WasmModuleBuilder();
+ var sig_index = builder.addSignature([kAstStmt]);
+
+ builder.addImport("foo", sig_index);
+ var func = builder.addFunction("", sig_index)
+ .addBody([kExprCallImport, 0]);
+
+ builder.addStart(func.index);
+
+ var module = builder.instantiate(ffi);
assertTrue(ranned);
})();
« no previous file with comments | « test/mjsunit/wasm/stackwalk.js ('k') | test/mjsunit/wasm/unreachable.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698