wasm-reset-context-group.js 1.62 KB
Newer Older
1 2 3 4
// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5
utils.load('test/inspector/wasm-inspector-test.js');
6

7
InspectorTest.log('Checks resetting context group with wasm.');
8 9 10 11 12 13 14

var builder = new WasmModuleBuilder();

// wasm_B calls wasm_A <param0> times.
builder.addFunction('wasm_func', kSig_i_i)
    .addBody([
      // clang-format off
15
        kExprLocalGet, 0,
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
        kExprI32Const, 1,
        kExprI32Sub,
      // clang-format on
    ])
    .exportAs('main');


var module_bytes = builder.toArray();

var contextGroup1 = new InspectorTest.ContextGroup();
var session1 = contextGroup1.connect();
session1.setupScriptMap();

let contextGroup2 = new InspectorTest.ContextGroup();
let session2 = contextGroup2.connect();
session2.setupScriptMap();

33 34 35 36
InspectorTest.runAsyncTestSuite([
  async function test() {
    await session1.Protocol.Debugger.enable();
    await session2.Protocol.Debugger.enable();
37

38 39
    session1.Protocol.Runtime.evaluate({
      expression: `var instance = (${WasmInspectorTest.instantiateFromBuffer})(${JSON.stringify(module_bytes)})`});
40

41 42
    session2.Protocol.Runtime.evaluate({
      expression: `var instance = (${WasmInspectorTest.instantiateFromBuffer})(${JSON.stringify(module_bytes)})`});
43

44
    contextGroup2.reset();
45

46 47 48 49 50
    await session1.Protocol.Debugger.onceScriptParsed(2);
    InspectorTest.logMessage(await session1.Protocol.Runtime.evaluate({expression: 'instance.exports.main(4)'}));
    InspectorTest.logMessage(await session2.Protocol.Runtime.evaluate({expression: 'instance.exports.main(5)'}));
  }
]);