1<!DOCTYPE html> 2<html> 3<!-- 4Copyright (c) 2012 The Chromium Authors. All rights reserved. 5Use of this source code is governed by a BSD-style license that can be 6found in the LICENSE file. 7--> 8<head> 9<title>importer.linux_perf.CpufreqParser tests</title> 10<script src="../../base.js"></script> 11</head> 12<body> 13<script> 14'use strict'; 15 16base.require('unittest'); 17base.require('test_utils'); 18base.require('importer.linux_perf_importer'); 19 20function testCpuFreqTargetImport() { 21 var lines = [ 22 '<idle>-0 [000] ..s3 1043.718825: cpufreq_interactive_target: ' + 23 'cpu=0 load=2 cur=2000000 targ=300000\n', 24 '<idle>-0 [000] ..s3 1043.718825: cpufreq_interactive_target: ' + 25 'cpu=0 load=12 cur=1000000 actual=1000000 targ=200000\n' 26 ]; 27 var m = new tracing.Model(lines.join('\n'), false); 28 assertEquals(0, m.importErrors.length); 29 30 var threads = m.getAllThreads(); 31 assertEquals(1, threads.length); 32 33 var thread = threads[0]; 34 assertEquals(0, thread.slices[0].args['cpu']); 35 assertEquals(2, thread.slices[0].args['load']); 36 assertEquals(2000000, thread.slices[0].args['cur']); 37 assertEquals(300000, thread.slices[0].args['targ']); 38 39 assertEquals(0, thread.slices[1].args['cpu']); 40 assertEquals(12, thread.slices[1].args['load']); 41 assertEquals(1000000, thread.slices[1].args['cur']); 42 assertEquals(1000000, thread.slices[1].args['actual']); 43 assertEquals(200000, thread.slices[1].args['targ']); 44} 45 46function testCpuFreqNotYetImport() { 47 var lines = [ 48 '<idle>-0 [001] ..s3 1043.718832: cpufreq_interactive_notyet: ' + 49 'cpu=1 load=10 cur=700000 targ=200000\n', 50 '<idle>-0 [001] ..s3 1043.718832: cpufreq_interactive_notyet: ' + 51 'cpu=1 load=10 cur=700000 actual=1000000 targ=200000\n' 52 ]; 53 var m = new tracing.Model(lines.join('\n'), false); 54 assertEquals(0, m.importErrors.length); 55 56 var threads = m.getAllThreads(); 57 assertEquals(1, threads.length); 58 59 var thread = threads[0]; 60 assertEquals(1, thread.slices[0].args['cpu']); 61 assertEquals(10, thread.slices[0].args['load']); 62 assertEquals(700000, thread.slices[0].args['cur']); 63 assertEquals(200000, thread.slices[0].args['targ']); 64 65 assertEquals(1, thread.slices[1].args['cpu']); 66 assertEquals(10, thread.slices[1].args['load']); 67 assertEquals(700000, thread.slices[1].args['cur']); 68 assertEquals(1000000, thread.slices[1].args['actual']); 69 assertEquals(200000, thread.slices[1].args['targ']); 70} 71 72function testCpuFreqSetSpeedImport() { 73 var lines = [ 74 'cfinteractive-23 [001] ...1 1043.719688: ' + 75 'cpufreq_interactive_setspeed: cpu=0 targ=200000 actual=700000\n' 76 ]; 77 var m = new tracing.Model(lines.join('\n'), false); 78 assertEquals(0, m.importErrors.length); 79 80 var threads = m.getAllThreads(); 81 assertEquals(1, threads.length); 82 83 var thread = threads[0]; 84 assertEquals(0, thread.slices[0].args['cpu']); 85 assertEquals(200000, thread.slices[0].args['targ']); 86 assertEquals(700000, thread.slices[0].args['actual']); 87} 88 89function testCpuFreqAlreadyImport() { 90 var lines = [ 91 '<idle>-0 [000] ..s3 1043.738822: cpufreq_interactive_already: ' + 92 'cpu=0 load=18 cur=200000 actual=700000 targ=200000\n' 93 ]; 94 var m = new tracing.Model(lines.join('\n'), false); 95 assertEquals(0, m.importErrors.length); 96 97 var threads = m.getAllThreads(); 98 assertEquals(1, threads.length); 99 100 var thread = threads[0]; 101 assertEquals(0, thread.slices[0].args['cpu']); 102 assertEquals(18, thread.slices[0].args['load']); 103 assertEquals(200000, thread.slices[0].args['cur']); 104 assertEquals(700000, thread.slices[0].args['actual']); 105 assertEquals(200000, thread.slices[0].args['targ']); 106} 107 108function testCpuFreqBoostImport() { 109 var lines = [ 110 'InputDispatcher-465 [001] ...1 1044.213948: ' + 111 'cpufreq_interactive_boost: pulse\n' 112 ]; 113 var m = new tracing.Model(lines.join('\n'), false); 114 assertEquals(0, m.importErrors.length); 115 116 var threads = m.getAllThreads(); 117 assertEquals(1, threads.length); 118 119 var thread = threads[0]; 120 assertEquals('pulse', thread.slices[0].args['type']); 121} 122 123function testsCpuFreqUnBoostImport() { 124 var lines = [ 125 'InputDispatcher-465 [001] ...1 1044.213948: ' + 126 'cpufreq_interactive_unboost: pulse\n' 127 ]; 128 var m = new tracing.Model(lines.join('\n'), false); 129 assertEquals(0, m.importErrors.length); 130 131 var threads = m.getAllThreads(); 132 assertEquals(1, threads.length); 133 134 var thread = threads[0]; 135 assertEquals('pulse', thread.slices[0].args['type']); 136} 137 138function testCpuFreqUpImport() { 139 var lines = [ 140 'kinteractive-69 [003] .... 414324.164432: ' + 141 'cpufreq_interactive_up: cpu=1 targ=1400000 actual=800000' 142 ]; 143 var m = new tracing.Model(lines.join('\n'), false); 144 assertEquals(0, m.importErrors.length); 145 146 var threads = m.getAllThreads(); 147 assertEquals(1, threads.length); 148 149 var thread = threads[0]; 150 assertEquals(1, thread.slices[0].args['cpu']); 151 assertEquals(1400000, thread.slices[0].args['targ']); 152 assertEquals(800000, thread.slices[0].args['actual']); 153} 154 155function testCpuFreqDownImport() { 156 var lines = [ 157 'kinteractive-69 [003] .... 414365.834193: cpufreq_interactive_down: ' + 158 'cpu=3 targ=800000 actual=1000000' 159 ]; 160 var m = new tracing.Model(lines.join('\n'), false); 161 assertEquals(0, m.importErrors.length); 162 163 var threads = m.getAllThreads(); 164 assertEquals(1, threads.length); 165 166 var thread = threads[0]; 167 assertEquals(3, thread.slices[0].args['cpu']); 168 assertEquals(800000, thread.slices[0].args['targ']); 169 assertEquals(1000000, thread.slices[0].args['actual']); 170} 171 172</script> 173</body> 174</html> 175