blob: d365a201b2c2fafd272ad9460c185a4153ea87a6 [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 processes trace events.\n`);
await TestRunner.loadModule('performance_test_runner');
var mainThread = 1;
var pid = 100;
var testData = [
{
'name': 'NonAscii',
'ts': 10000,
args: {'nonascii': '\u043b\u0435\u0442 \u043c\u0438 \u0441\u043f\u0438\u043a \u0444\u0440\u043e\u043c \u043c\u0430\u0439 \u0445\u0430\u0440\u0442'},
'dur': 1000,
'ph': 'X',
'tid': mainThread,
'pid': 100,
'cat': 'test'
},
{
'name': 'NonAsciiSnapshot',
'ts': 20000,
args: {'snapshot': '\u0442\u0435\u0441\u0442'},
'dur': 1000,
'ph': 'O',
'tid': mainThread,
'pid': 100,
'cat': 'test'
},
{
'name': 'ShortSnapshot',
'ts': 20000,
args: {'snapshot': 'short snapshot data'},
'dur': 1000,
'ph': 'O',
'tid': mainThread,
'pid': 100,
'cat': 'test'
},
{
'name': 'LongSnapshot',
'ts': 20000,
args: {'snapshot': 'abcdef'.repeat(10000)},
'dur': 1000,
'ph': 'O',
'tid': mainThread,
'pid': 100,
'cat': 'test'
}
];
function getEventByName(name) {
return thread.events().filter(function(event) {
return event.name === name;
})[0];
}
var model = PerformanceTestRunner.createTracingModel(testData);
var process = model.sortedProcesses()[0];
var thread = process.sortedThreads()[0];
TestRunner.assertEquals('\u043b\u0435\u0442 \u043c\u0438 \u0441\u043f\u0438\u043a \u0444\u0440\u043e\u043c \u043c\u0430\u0439 \u0445\u0430\u0440\u0442', getEventByName('NonAscii').args['nonascii']);
getEventByName('ShortSnapshot').requestObject(step1);
function step1(object) {
TestRunner.assertEquals('short snapshot data', object);
getEventByName('LongSnapshot').requestObject(step2);
}
function step2(object) {
TestRunner.assertEquals('abcdef'.repeat(10000), object);
getEventByName('NonAsciiSnapshot').requestObject(step3);
}
function step3(object) {
TestRunner.assertEquals('\u0442\u0435\u0441\u0442', object);
TestRunner.addResult('DONE');
TestRunner.completeTest();
}
})();