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