blob: 3a3df172884a6953023a18e8384696665dbacb58 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Test that tracing model correctly finds the main browser thread in the trace.\n`);
await TestRunner.loadModule('performance_test_runner');
var sessionId = 1;
var testCases = {
'chrome': [
{
'cat': '__metadata',
'name': 'process_name',
'ph': 'M',
'pid': 1,
'tid': 2,
'ts': 0,
'args': {'name': 'Renderer'}
},
{
'cat': '__metadata',
'name': 'thread_name',
'ph': 'M',
'pid': 1,
'tid': 2,
'ts': 0,
'args': {'name': 'CrRendererMain'}
},
{
'cat': 'disabled-by-default-devtools.timeline',
'ph': 'I',
'name': 'TracingStartedInPage',
'pid': 1,
'tid': 2,
'ts': 100000,
'tts': 606543,
'args': {'sessionId': sessionId, 'page': '0x4age111'}
},
{
'cat': '__metadata',
'name': 'process_name',
'ph': 'M',
'pid': 3,
'tid': 4,
'ts': 0,
'args': {'name': 'Browser'}
},
{
'cat': '__metadata',
'name': 'thread_name',
'ph': 'M',
'pid': 3,
'tid': 4,
'ts': 0,
'args': {'name': 'CrBrowserMain'}
},
{
'cat': 'disabled-by-default-devtools.timeline',
'ph': 'I',
'name': 'TracingStartedInPage',
'pid': 1,
'tid': 2,
'ts': 100000,
'tts': 606543,
'args': {'sessionId': sessionId, 'page': '0x4age111'}
},
],
'headless': [
{
'cat': '__metadata',
'name': 'process_name',
'ph': 'M',
'pid': 1,
'tid': 2,
'ts': 0,
'args': {'name': 'Renderer'}
},
{
'cat': '__metadata',
'name': 'thread_name',
'ph': 'M',
'pid': 1,
'tid': 2,
'ts': 0,
'args': {'name': 'CrRendererMain'}
},
{
'cat': 'disabled-by-default-devtools.timeline',
'ph': 'I',
'name': 'TracingStartedInPage',
'pid': 1,
'tid': 2,
'ts': 100000,
'tts': 606543,
'args': {'sessionId': sessionId, 'page': '0x4age111'}
},
{
'cat': '__metadata',
'name': 'process_name',
'ph': 'M',
'pid': 3,
'tid': 4,
'ts': 0,
'args': {'name': 'HeadlessBrowser'}
},
{
'cat': '__metadata',
'name': 'thread_name',
'ph': 'M',
'pid': 3,
'tid': 4,
'ts': 0,
'args': {'name': 'CrBrowserMain'}
},
{
'cat': 'disabled-by-default-devtools.timeline',
'ph': 'I',
'name': 'TracingStartedInPage',
'pid': 1,
'tid': 2,
'ts': 100000,
'tts': 606543,
'args': {'sessionId': sessionId, 'page': '0x4age111'}
},
],
'weird-names': [
{
'cat': '__metadata',
'name': 'process_name',
'ph': 'M',
'pid': 1,
'tid': 2,
'ts': 0,
'args': {'name': 'Renderer'}
},
{
'cat': '__metadata',
'name': 'thread_name',
'ph': 'M',
'pid': 1,
'tid': 2,
'ts': 0,
'args': {'name': 'CrRendererMain'}
},
{
'cat': 'disabled-by-default-devtools.timeline',
'ph': 'I',
'name': 'TracingStartedInPage',
'pid': 1,
'tid': 2,
'ts': 100000,
'tts': 606543,
'args': {'sessionId': sessionId, 'page': '0x4age111'}
},
{'cat': '__metadata', 'name': 'process_name', 'ph': 'M', 'pid': 3, 'tid': 4, 'ts': 0, 'args': {'name': 'Foo'}},
{'cat': '__metadata', 'name': 'thread_name', 'ph': 'M', 'pid': 3, 'tid': 4, 'ts': 0, 'args': {'name': 'Bar'}},
{
'cat': 'disabled-by-default-devtools.timeline',
'ph': 'I',
'name': 'TracingStartedInBrowser',
'pid': 3,
'tid': 4,
'ts': 100000,
'tts': 606543,
'args': {'frameTreeNodeId': 1234}
},
]
};
for (var testCase of Object.keys(testCases)) {
var model = PerformanceTestRunner.createTracingModel(testCases[testCase]);
var browserMain = SDK.TracingModel.browserMainThread(model);
if (!browserMain) {
TestRunner.addResult(`${testCase} failed, no browser main thread found`);
continue;
}
TestRunner.addResult(`${testCase}: main browser thread is ${browserMain.name()} (#${browserMain.id()})`);
}
TestRunner.completeTest();
})();