166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved. 266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be 366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file. 466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.test_utils'); 866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model'); 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model.process'); 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('tracing.trace_model.process', function() { 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('getOrCreateCounter', function() { 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var process = new tracing.trace_model.Process(model, 7); 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var ctrBar = process.getOrCreateCounter('foo', 'bar'); 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var ctrBar2 = process.getOrCreateCounter('foo', 'bar'); 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(ctrBar2, ctrBar); 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('shiftTimestampsForward', function() { 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var process = new tracing.trace_model.Process(model, 7); 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var ctr = process.getOrCreateCounter('foo', 'bar'); 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var thread = process.getOrCreateThread(1); 2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var shiftCount = 0; 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis thread.shiftTimestampsForward = function(ts) { 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if (ts == 0.32) 2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis shiftCount++; 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }; 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ctr.shiftTimestampsForward = function(ts) { 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if (ts == 0.32) 3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis shiftCount++; 3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }; 3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis process.shiftTimestampsForward(0.32); 3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(2, shiftCount); 3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('compareOnPID', function() { 4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p1 = new tracing.trace_model.Process(model, 1); 4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p1.name = 'Renderer'; 4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p2 = new tracing.trace_model.Process(model, 2); 4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p2.name = 'Renderer'; 4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(p1.compareTo(p2) < 0); 4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 5166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('compareOnSortIndex', function() { 5266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 5366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p1 = new tracing.trace_model.Process(model, 1); 5466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p1.name = 'Renderer'; 5566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p1.sortIndex = 1; 5666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 5766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p2 = new tracing.trace_model.Process(model, 2); 5866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p2.name = 'Renderer'; 5966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 6066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(p1.compareTo(p2) > 0); 6166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 6266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 6366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('compareOnName', function() { 6466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 6566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p1 = new tracing.trace_model.Process(model, 1); 6666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p1.name = 'Browser'; 6766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 6866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p2 = new tracing.trace_model.Process(model, 2); 6966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p2.name = 'Renderer'; 7066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 7166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(p1.compareTo(p2) < 0); 7266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 7366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 7466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('compareOnLabels', function() { 7566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var model = new tracing.TraceModel(); 7666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p1 = new tracing.trace_model.Process(model, 1); 7766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p1.name = 'Renderer'; 7866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p1.labels = ['a']; 7966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 8066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var p2 = new tracing.trace_model.Process(model, 2); 8166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p2.name = 'Renderer'; 8266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis p2.labels = ['b']; 8366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 8466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(p1.compareTo(p2) < 0); 8566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 8666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 8766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis}); 88