1 <!DOCTYPE html> 2 <!-- 3 Copyright (c) 2013 The Chromium Authors. All rights reserved. 4 Use of this source code is governed by a BSD-style license that can be 5 found in the LICENSE file. 6 --> 7 8 <link rel="import" href="/perf_insights/mre/mre_result.html"> 9 <link rel="import" href="/tracing/core/test_utils.html"> 10 <link rel="import" href="/tracing/extras/chrome/chrome_test_utils.html"> 11 12 <script> 13 'use strict'; 14 15 tr.b.unittest.testSuite(function() { 16 var test_utils = tr.c.TestUtils; 17 test('basicChrome', function() { 18 var m = tr.e.chrome.ChromeTestUtils.newChromeModel(function(m) { 19 // Browser. 20 m.browserMain.sliceGroup.pushSlice(test_utils.newSliceEx({ 21 name: 'BrowserSlice', 22 start: 0, duration: 10 23 })); 24 25 // Renderer. 26 m.rendererMain.sliceGroup.pushSlice(test_utils.newSliceEx({ 27 name: 'RendererSlice', 28 start: 0, duration: 10 29 })); 30 31 // Something else else. 32 m.otherProcess = m.getOrCreateProcess(20); 33 m.otherProcessMain = m.otherProcess.getOrCreateThread(21); 34 m.otherProcessMain.sliceGroup.pushSlice(test_utils.newSliceEx({ 35 name: 'RendererSlice', 36 start: 0, duration: 10 37 })); 38 }); 39 40 var tg = new pi.m.ThreadGrouping(); 41 tg.autoInitUsingHelpers(m); 42 43 var allSlices = new tr.model.EventSet(); 44 for (var e of m.getDescendantEvents()) 45 if (e instanceof tr.model.Slice) 46 allSlices.push(e); 47 var groups = tg.divideEventSetIntoSubGroups(allSlices); 48 var numGrouped = 0; 49 tr.b.iterItems(groups, function(groupName, eventSet) { 50 numGrouped += eventSet.length; 51 }); 52 assert.equal(numGrouped, allSlices.length); 53 assert.equal(groups.Browser.length, 1); 54 assert.equal(groups.Renderer.length, 1); 55 assert.equal(groups.Other.length, 1); 56 }); 57 }); 58 </script> 59