diff --git a/test/inspector/cpu-profiler/console-profile-wasm-expected.txt b/test/inspector/cpu-profiler/console-profile-wasm-expected.txt index c5b427f475..ad1d9db168 100644 --- a/test/inspector/cpu-profiler/console-profile-wasm-expected.txt +++ b/test/inspector/cpu-profiler/console-profile-wasm-expected.txt @@ -1,4 +1,4 @@ Test that console profiles contain wasm function names. Compiling wasm. Running fib with increasing input until it shows up in the profile. -Found expected functions in profile. +Found fib in profile. diff --git a/test/inspector/cpu-profiler/console-profile-wasm.js b/test/inspector/cpu-profiler/console-profile-wasm.js index 5f92f5ef58..0541ce02bb 100644 --- a/test/inspector/cpu-profiler/console-profile-wasm.js +++ b/test/inspector/cpu-profiler/console-profile-wasm.js @@ -7,10 +7,8 @@ let {session, contextGroup, Protocol} = InspectorTest.start( utils.load('test/mjsunit/wasm/wasm-module-builder.js'); -// Add fibonacci function, calling back and forth between JS and Wasm to also -// check for the occurrence of the wrappers. +// Add fibonacci function. var builder = new WasmModuleBuilder(); -const imp_index = builder.addImport('q', 'f', kSig_i_i); builder.addFunction('fib', kSig_i_i) .addBody([ kExprLocalGet, 0, @@ -19,9 +17,9 @@ builder.addFunction('fib', kSig_i_i) kExprI32LeS, // i < 2 ? kExprBrIf, 0, // --> return i kExprI32Const, 1, kExprI32Sub, // i - 1 - kExprCallFunction, imp_index, // imp(i - 1) + kExprCallFunction, 0, // fib(i - 1) kExprLocalGet, 0, kExprI32Const, 2, kExprI32Sub, // i - 2 - kExprCallFunction, imp_index, // imp(i - 2) + kExprCallFunction, 0, // fib(i - 2) kExprI32Add ]) .exportFunc(); @@ -34,38 +32,28 @@ function compile(bytes) { view[i] = bytes[i] | 0; } let module = new WebAssembly.Module(buffer); - let fib = undefined; - function imp(i) { return fib(i); } - let instance = new WebAssembly.Instance(module, {q: {f: imp}}); - fib = instance.exports.fib; + let instance = new WebAssembly.Instance(module); return instance; } -function checkError(message) { - if (!message.error) return; - InspectorTest.log('Error: '); - InspectorTest.logMessage(message); - InspectorTest.completeTest(); +function checkError(message) +{ + if (message.error) { + InspectorTest.log("Error: "); + InspectorTest.logMessage(message); + InspectorTest.completeTest(); + } } (async function test() { Protocol.Profiler.enable(); checkError(await Protocol.Profiler.start()); - let found_good_profile = false; + let found_fib_in_profile = false; let finished_profiles = 0; Protocol.Profiler.onConsoleProfileFinished(e => { ++finished_profiles; - let function_names = - e.params.profile.nodes.map(n => n.callFrame.functionName); - // InspectorTest.log(function_names.join(', ')); - // Check for at least one full cycle of - // fib -> wasm-to-js -> imp -> js-to-wasm -> fib. - const expected = ['fib', 'wasm-to-js:i:i', 'imp', 'js-to-wasm:i:i', 'fib']; - for (let i = 0; i <= function_names.length - expected.length; ++i) { - if (expected.every((val, idx) => val == function_names[i + idx])) { - found_good_profile = true; - } - } + if (e.params.profile.nodes.some(n => n.callFrame.functionName === 'fib')) + found_fib_in_profile = true; }); InspectorTest.log('Compiling wasm.'); checkError(await Protocol.Runtime.evaluate({ @@ -74,7 +62,7 @@ function checkError(message) { })); InspectorTest.log( 'Running fib with increasing input until it shows up in the profile.'); - for (let i = 1; !found_good_profile; ++i) { + for (let i = 1; !found_fib_in_profile; ++i) { checkError(await Protocol.Runtime.evaluate( {expression: 'console.profile(\'profile\');'})); checkError(await Protocol.Runtime.evaluate( @@ -87,6 +75,6 @@ function checkError(message) { finished_profiles + ')'); } } - InspectorTest.log('Found expected functions in profile.'); + InspectorTest.log('Found fib in profile.'); InspectorTest.completeTest(); })().catch(e => InspectorTest.log('caught: ' + e));