| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- /* global assert,testRunner */ // eslint rule
- WScript.LoadScriptFile("../UnitTestFramework/UnitTestFramework.js");
- WScript.LoadScriptFile("../WasmSpec/testsuite/harness/wasm-constants.js");
- WScript.LoadScriptFile("../WasmSpec/testsuite/harness/wasm-module-builder.js");
- WScript.Flag("-off:wasmdeferred");
- function makeReservedTest(name, body, msg) {
- return {
- name,
- body() {
- const builder = new WasmModuleBuilder();
- builder.addFunction(null, kSig_v_i).addBody(body);
- try {
- new WebAssembly.Module(builder.toBuffer());
- assert.fail("Expected an exception");
- } catch (e) {
- if (!(e instanceof WebAssembly.CompileError) || RegExp(msg, "i").test(e.message)) {
- return;
- }
- assert.fail(`Expected error message: ${msg}. Got ${e.message}`);
- }
- }
- }
- }
- const tests = [
- makeReservedTest("memory.size reserved", [kExprMemorySize, 1], "memory.size reserved value must be 0"),
- makeReservedTest("memory.grow reserved", [kExprMemoryGrow, 1], "memory.grow reserved value must be 0"),
- makeReservedTest("call_indirect reserved", [kExprCallIndirect, 1], "call_indirect reserved value must be 0"),
- ];
- WScript.LoadScriptFile("../UnitTestFramework/yargs.js");
- const argv = yargsParse(WScript.Arguments, {
- boolean: ["verbose"],
- number: ["start", "end"],
- default: {
- verbose: true,
- start: 0,
- end: tests.length
- }
- }).argv;
- const todoTests = tests
- .slice(argv.start, argv.end);
- testRunner.run(todoTests, {verbose: argv.verbose});
|