3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
8 <link rel="import" href="/tracing/test_utils.html">
9 <link rel="import" href="/tracing/importer/linux_perf_importer.html">
14 tvcm.unittest.testSuite(function() {
15 test('androidUserlandImport', function() {
17 'SurfaceFlinger-4831 [001] ...1 80909.598554: tracing_mark_write: B|4829|onMessageReceived', // @suppress longLineCheck
18 'SurfaceFlinger-4831 [001] ...1 80909.598572: tracing_mark_write: B|4829|handleMessageInvalidate', // @suppress longLineCheck
19 'SurfaceFlinger-4831 [001] ...1 80909.598590: tracing_mark_write: B|4829|latchBuffer', // @suppress longLineCheck
20 'SurfaceFlinger-4831 [001] ...1 80909.598604: tracing_mark_write: E',
21 'SurfaceFlinger-4831 [001] ...1 80909.598627: tracing_mark_write: B|4829|latchBuffer', // @suppress longLineCheck
22 'SurfaceFlinger-4831 [001] ...1 80909.598651: tracing_mark_write: B|4829|updateTexImage', // @suppress longLineCheck
23 'SurfaceFlinger-4831 [001] ...1 80909.598675: tracing_mark_write: B|4829|acquireBuffer', // @suppress longLineCheck
24 'SurfaceFlinger-4831 [001] ...1 80909.598695: tracing_mark_write: B|4829|' + // @suppress longLineCheck
25 'com.android.launcher/com.android.launcher2.Launcher: 0',
26 'SurfaceFlinger-4831 [001] ...1 80909.598709: tracing_mark_write: E',
27 'SurfaceFlinger-4831 [001] ...1 80909.598733: tracing_mark_write: C|4829|' + // @suppress longLineCheck
28 'com.android.launcher/com.android.launcher2.Launcher|0',
29 'SurfaceFlinger-4831 [001] ...1 80909.598746: tracing_mark_write: E',
30 'SurfaceFlinger-4831 [001] ...1 80909.598844: tracing_mark_write: B|4829|releaseBuffer', // @suppress longLineCheck
31 'SurfaceFlinger-4831 [001] ...1 80909.598862: tracing_mark_write: B|4829|' + // @suppress longLineCheck
32 'com.android.launcher/com.android.launcher2.Launcher: 2',
33 'SurfaceFlinger-4831 [001] ...1 80909.598876: tracing_mark_write: E',
34 'SurfaceFlinger-4831 [001] ...1 80909.598892: tracing_mark_write: E',
35 'SurfaceFlinger-4831 [001] ...1 80909.598925: tracing_mark_write: E',
36 'SurfaceFlinger-4831 [001] ...1 80909.598955: tracing_mark_write: E',
37 'SurfaceFlinger-4831 [001] ...1 80909.598988: tracing_mark_write: B|4829|latchBuffer', // @suppress longLineCheck
38 'SurfaceFlinger-4831 [001] ...1 80909.599001: tracing_mark_write: E',
39 'SurfaceFlinger-4831 [001] ...1 80909.599021: tracing_mark_write: B|4829|latchBuffer', // @suppress longLineCheck
40 'SurfaceFlinger-4831 [001] ...1 80909.599036: tracing_mark_write: E',
41 'SurfaceFlinger-4831 [001] ...1 80909.599068: tracing_mark_write: E',
42 'SurfaceFlinger-4831 [001] ...1 80909.599087: tracing_mark_write: E',
43 'SurfaceFlinger-4831 [001] ...1 80909.599104: tracing_mark_write: E'
45 var m = new tracing.TraceModel(lines.join('\n'), false);
46 assertFalse(m.hasImportWarnings);
48 var threads = m.getAllThreads();
49 assertEquals(1, threads.length);
51 var thread = threads[0];
52 assertEquals(4829, thread.parent.pid);
53 assertEquals(4831, thread.tid);
54 assertEquals('SurfaceFlinger', thread.name);
55 assertEquals(11, thread.sliceGroup.length);
58 test('androidUserlandImportWithSpacesInThreadName', function() {
60 'Surface Flinger -4831 [001] ...1 80909.598590: tracing_mark_write: B|4829|latchBuffer', // @suppress longLineCheck
61 'Surface Flinger -4831 [001] ...1 80909.598604: tracing_mark_write: E' // @suppress longLineCheck
63 var m = new tracing.TraceModel(lines.join('\n'), false);
64 assertFalse(m.hasImportWarnings);
66 var threads = m.getAllThreads();
67 assertEquals(1, threads.length);
69 var thread = threads[0];
70 assertEquals(4829, thread.parent.pid);
71 assertEquals(4831, thread.tid);
72 assertEquals('Surface Flinger ', thread.name);
73 assertEquals(1, thread.sliceGroup.length);
76 test('androidAsyncUserlandImport', function() {
78 'ndroid.launcher-9649 ( 9649) [000] ...1 1990280.663276: ' +
79 'tracing_mark_write: S|9649|animator:childrenOutlineAlpha|' +
81 'ndroid.launcher-9649 ( 9649) [000] ...1 1990280.781445: ' +
82 'tracing_mark_write: F|9649|animator:childrenOutlineAlpha|' +
85 var m = new tracing.TraceModel(lines.join('\n'), false);
86 assertFalse(m.hasImportWarnings);
88 var threads = m.getAllThreads();
89 assertEquals(1, threads.length);
91 var thread = threads[0];
92 assertEquals(9649, thread.parent.pid);
93 assertEquals(9649, thread.tid);
94 assertEquals('ndroid.launcher', thread.name);
95 assertEquals(0, thread.sliceGroup.length);
96 assertEquals(1, thread.asyncSliceGroup.length);
98 var slice = thread.asyncSliceGroup.slices[0];
99 assertEquals('animator:childrenOutlineAlpha', slice.title);
100 assertAlmostEquals(118.169, slice.duration);
103 test('androidUserlandLegacyKernelImport', function() {
105 'SurfaceFlinger-4831 [001] ...1 80909.598554: 0: B|4829|onMessageReceived', // @suppress longLineCheck
106 'SurfaceFlinger-4831 [001] ...1 80909.598572: 0: B|4829|handleMessageInvalidate', // @suppress longLineCheck
107 'SurfaceFlinger-4831 [001] ...1 80909.598590: 0: B|4829|latchBuffer',
108 'SurfaceFlinger-4831 [001] ...1 80909.598604: 0: E',
109 'SurfaceFlinger-4831 [001] ...1 80909.598627: 0: B|4829|latchBuffer',
110 'SurfaceFlinger-4831 [001] ...1 80909.598651: 0: B|4829|updateTexImage', // @suppress longLineCheck
111 'SurfaceFlinger-4831 [001] ...1 80909.598675: 0: B|4829|acquireBuffer', // @suppress longLineCheck
112 'SurfaceFlinger-4831 [001] ...1 80909.598695: 0: B|4829|' +
113 'com.android.launcher/com.android.launcher2.Launcher: 0',
114 'SurfaceFlinger-4831 [001] ...1 80909.598709: 0: E',
115 'SurfaceFlinger-4831 [001] ...1 80909.598733: 0: C|4829|' +
116 'com.android.launcher/com.android.launcher2.Launcher|0',
117 'SurfaceFlinger-4831 [001] ...1 80909.598746: 0: E',
118 'SurfaceFlinger-4831 [001] ...1 80909.598844: 0: B|4829|releaseBuffer', // @suppress longLineCheck
119 'SurfaceFlinger-4831 [001] ...1 80909.598862: 0: B|4829|' +
120 'com.android.launcher/com.android.launcher2.Launcher: 2',
121 'SurfaceFlinger-4831 [001] ...1 80909.598876: 0: E',
122 'SurfaceFlinger-4831 [001] ...1 80909.598892: 0: E',
123 'SurfaceFlinger-4831 [001] ...1 80909.598925: 0: E',
124 'SurfaceFlinger-4831 [001] ...1 80909.598955: 0: E',
125 'SurfaceFlinger-4831 [001] ...1 80909.598988: 0: B|4829|latchBuffer', // @suppress longLineCheck
126 'SurfaceFlinger-4831 [001] ...1 80909.599001: 0: E',
127 'SurfaceFlinger-4831 [001] ...1 80909.599021: 0: B|4829|latchBuffer', // @suppress longLineCheck
128 'SurfaceFlinger-4831 [001] ...1 80909.599036: 0: E',
129 'SurfaceFlinger-4831 [001] ...1 80909.599068: 0: E',
130 'SurfaceFlinger-4831 [001] ...1 80909.599087: 0: E',
131 'SurfaceFlinger-4831 [001] ...1 80909.599104: 0: E'
133 var m = new tracing.TraceModel(lines.join('\n'), false);
134 assertFalse(m.hasImportWarnings);
136 var threads = m.getAllThreads();
137 assertEquals(1, threads.length);
139 var thread = threads[0];
140 assertEquals(4829, thread.parent.pid);
141 assertEquals(4831, thread.tid);
142 assertEquals('SurfaceFlinger', thread.name);
143 assertEquals(11, thread.sliceGroup.length);
146 test('androidUserlandChromiumImport', function() {
148 'SandboxedProces-2894 [001] ...1 253.780659: tracing_mark_write: B|2867|DoWorkLoop|arg1=1|cat1', // @suppress longLineCheck
149 'SandboxedProces-2894 [001] ...1 253.780671: tracing_mark_write: B|2867|DeferOrRunPendingTask|source=test=test;task=xyz|cat2', // @suppress longLineCheck
150 'SandboxedProces-2894 [001] ...1 253.780671: tracing_mark_write: E|2867|DeferOrRunPendingTask||cat1', // @suppress longLineCheck
151 'SandboxedProces-2894 [001] ...1 253.780686: tracing_mark_write: B|2867|MessageLoop::RunTask|source=ipc/ipc_sync_message_filter.cc:Send|cat2', // @suppress longLineCheck
152 'SandboxedProces-2894 [001] ...1 253.780700: tracing_mark_write: E|2867|MessageLoop::RunTask||cat1', // @suppress longLineCheck
153 'SandboxedProces-2894 [001] ...1 253.780750: tracing_mark_write: C|2867|counter1|10|cat1', // @suppress longLineCheck
154 'SandboxedProces-2894 [001] ...1 253.780859: tracing_mark_write: E|2867|DoWorkLoop|arg2=2|cat2', // @suppress longLineCheck
155 'SandboxedProces-2894 [000] ...1 255.663276: tracing_mark_write: S|2867|async|1113053968|arg1=1;arg2=2|cat1', // @suppress longLineCheck
156 'SandboxedProces-2894 [000] ...1 255.663276: tracing_mark_write: F|2867|async|1113053968|arg3=3|cat1', // @suppress longLineCheck
157 'SandboxedProces-2894 [000] ...1 255.663276: tracing_mark_write: trace_event_clock_sync: parent_ts=128' // @suppress longLineCheck
159 var m = new tracing.TraceModel(lines.join('\n'), false);
160 assertFalse(m.hasImportWarnings);
162 var threads = m.getAllThreads();
163 assertEquals(1, threads.length);
165 var thread = threads[0];
166 assertEquals(2867, thread.parent.pid);
167 assertEquals(2894, thread.tid);
168 assertEquals('SandboxedProces', thread.name);
169 assertEquals(3, thread.sliceGroup.length);
171 assertEquals('1', thread.sliceGroup.slices[0].args['arg1']);
172 assertEquals('2', thread.sliceGroup.slices[0].args['arg2']);
174 assertEquals('test=test', thread.sliceGroup.slices[1].args['source']);
175 assertEquals('cat2', thread.sliceGroup.slices[1].category);
176 assertEquals('DeferOrRunPendingTask',
177 thread.sliceGroup.slices[1].title);
178 assertEquals('xyz', thread.sliceGroup.slices[1].args['task']);
180 assertEquals('ipc/ipc_sync_message_filter.cc:Send',
181 thread.sliceGroup.slices[2].args['source']);
183 assertEquals(1, thread.asyncSliceGroup.length);
184 assertEquals('1', thread.asyncSliceGroup.slices[0].args['arg1']);
185 assertEquals('2', thread.asyncSliceGroup.slices[0].args['arg2']);
186 assertEquals('3', thread.asyncSliceGroup.slices[0].args['arg3']);
188 var counters = m.getAllCounters();
189 assertEquals(1, counters.length);
190 assertEquals('cat1', counters[0].category);
191 assertEquals('counter1', counters[0].name);
193 assertEquals(1, counters[0].numSamples);
194 assertEquals(10, counters[0].getSeries(0).getSample(0).value);
196 assertEquals(Math.round((253.780659 - (255.663276 - 128)) * 1000),
197 Math.round(thread.sliceGroup.slices[0].start));