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.cpu');
966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('tracing.trace_model.cpu', function() {
1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  var Cpu = tracing.trace_model.Cpu;
1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  test('cpuBounds_Empty', function() {
1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var cpu = new Cpu(undefined, 1);
1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    cpu.updateBounds();
1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(undefined, cpu.bounds.min);
1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(undefined, cpu.bounds.max);
1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  test('cpuBounds_OneSlice', function() {
2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var cpu = new Cpu(undefined, 1);
2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    cpu.slices.push(tracing.test_utils.newSlice(1, 3));
2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    cpu.updateBounds();
2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, cpu.bounds.min);
2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(4, cpu.bounds.max);
2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  test('getOrCreateCounter', function() {
2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var cpu = new Cpu(undefined, 1);
3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var ctrBar = cpu.getOrCreateCounter('foo', 'bar');
3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var ctrBar2 = cpu.getOrCreateCounter('foo', 'bar');
3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(ctrBar2, ctrBar);
3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  test('shiftTimestampsForward', function() {
3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var cpu = new Cpu(undefined, 1);
3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var ctr = cpu.getOrCreateCounter('foo', 'bar');
3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    cpu.slices.push(tracing.test_utils.newSlice(1, 3));
3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var shiftCount = 0;
4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    ctr.shiftTimestampsForward = function(ts) {
4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      if (ts == 0.32)
4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis        shiftCount++;
4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    };
4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    cpu.slices.push(tracing.test_utils.newSlice(1, 3));
4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    cpu.shiftTimestampsForward(0.32);
4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(shiftCount, 1);
4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1.32, cpu.slices[0].start);
4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis});
50