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.importer.linux_perf_importer'); 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('tracing.importer.linux_perf.power_parser', function() { 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('powerFrequencyImport', function() { 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var lines = [ 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/0:3-6880 [000] 2784.783015: power_frequency: ' + 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'type=2 state=1000000 cpu_id=0', 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/1:2-7269 [001] 2784.788993: power_frequency: ' + 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'type=2 state=800000 cpu_id=1', 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/1:2-7269 [001] 2784.993120: power_frequency: ' + 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'type=2 state=1300000 cpu_id=1' 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ]; 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var m = new tracing.TraceModel(lines.join('\n'), false); 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, m.importErrors.length); 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = m.kernel.cpus[0]; 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, c0.slices.length); 256833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis assertEquals(1, c0.counters['Clock Frequency'].series[0].samples.length); 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c1 = m.kernel.cpus[1]; 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, c1.slices.length); 296833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis assertEquals(2, c1.counters['Clock Frequency'].series[0].samples.length); 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('cpuFrequencyImport', function() { 3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var lines = [ 3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/1:0-9665 [001] 15051.007301: cpu_frequency: ' + 3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=800000 cpu_id=1', 3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/1:0-9665 [001] 15051.010278: cpu_frequency: ' + 3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=1300000 cpu_id=1', 3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/0:2-7972 [000] 15051.010278: cpu_frequency: ' + 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=1000000 cpu_id=0', 4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' kworker/0:2-7972 [000] 15051.020304: cpu_frequency: ' + 4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=800000 cpu_id=0' 4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ]; 4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var m = new tracing.TraceModel(lines.join('\n'), false); 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, m.importErrors.length); 4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = m.kernel.cpus[0]; 4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, c0.slices.length); 486833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis assertEquals(2, c0.counters['Clock Frequency'].series[0].samples.length); 4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 5066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c1 = m.kernel.cpus[1]; 5166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, c1.slices.length); 526833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis assertEquals(2, c1.counters['Clock Frequency'].series[0].samples.length); 5366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 5566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('cpuIdleImport', function() { 5666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var lines = [ 5766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' <idle>-0 [000] 15050.992883: cpu_idle: ' + 5866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=1 cpu_id=0', 5966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' <idle>-0 [000] 15050.993027: cpu_idle: ' + 6066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=4294967295 cpu_id=0', 6166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' <idle>-0 [001] 15050.993132: cpu_idle: ' + 6266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=1 cpu_id=1', 6366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' <idle>-0 [001] 15050.993276: cpu_idle: ' + 6466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=4294967295 cpu_id=1', 6566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' <idle>-0 [001] 15050.993279: cpu_idle: ' + 6666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=3 cpu_id=1', 6766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ' <idle>-0 [001] 15050.993457: cpu_idle: ' + 6866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 'state=4294967295 cpu_id=1' 6966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ]; 7066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var m = new tracing.TraceModel(lines.join('\n'), false); 7166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, m.importErrors.length); 7266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 7366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = m.kernel.cpus[0]; 7466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, c0.slices.length); 756833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis assertEquals(2, c0.counters['C-State'].series[0].samples.length); 7666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 7766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c1 = m.kernel.cpus[1]; 7866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals(0, c1.slices.length); 796833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis assertEquals(4, c1.counters['C-State'].series[0].samples.length); 8066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 8166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis}); 82