Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / importer / linux_perf / android_parser_test.html
1 <!DOCTYPE html>
2 <!--
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.
6 -->
7
8 <link rel="import" href="/tracing/test_utils.html">
9 <link rel="import" href="/tracing/importer/linux_perf_importer.html">
10
11 <script>
12 'use strict';
13
14 tvcm.unittest.testSuite(function() {
15   test('androidUserlandImport', function() {
16     var lines = [
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'
44     ];
45     var m = new tracing.TraceModel(lines.join('\n'), false);
46     assertFalse(m.hasImportWarnings);
47
48     var threads = m.getAllThreads();
49     assertEquals(1, threads.length);
50
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);
56   });
57
58   test('androidUserlandImportWithSpacesInThreadName', function() {
59     var lines = [
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
62     ];
63     var m = new tracing.TraceModel(lines.join('\n'), false);
64     assertFalse(m.hasImportWarnings);
65
66     var threads = m.getAllThreads();
67     assertEquals(1, threads.length);
68
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);
74   });
75
76   test('androidAsyncUserlandImport', function() {
77     var lines = [
78       'ndroid.launcher-9649  ( 9649) [000] ...1 1990280.663276: ' +
79           'tracing_mark_write: S|9649|animator:childrenOutlineAlpha|' +
80           '1113053968',
81       'ndroid.launcher-9649  ( 9649) [000] ...1 1990280.781445: ' +
82           'tracing_mark_write: F|9649|animator:childrenOutlineAlpha|' +
83           '1113053968'
84     ];
85     var m = new tracing.TraceModel(lines.join('\n'), false);
86     assertFalse(m.hasImportWarnings);
87
88     var threads = m.getAllThreads();
89     assertEquals(1, threads.length);
90
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);
97
98     var slice = thread.asyncSliceGroup.slices[0];
99     assertEquals('animator:childrenOutlineAlpha', slice.title);
100     assertAlmostEquals(118.169, slice.duration);
101   });
102
103   test('androidUserlandLegacyKernelImport', function() {
104     var lines = [
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'
132     ];
133     var m = new tracing.TraceModel(lines.join('\n'), false);
134     assertFalse(m.hasImportWarnings);
135
136     var threads = m.getAllThreads();
137     assertEquals(1, threads.length);
138
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);
144   });
145
146   test('androidUserlandChromiumImport', function() {
147     var lines = [
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
158     ];
159     var m = new tracing.TraceModel(lines.join('\n'), false);
160     assertFalse(m.hasImportWarnings);
161
162     var threads = m.getAllThreads();
163     assertEquals(1, threads.length);
164
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);
170
171     assertEquals('1', thread.sliceGroup.slices[0].args['arg1']);
172     assertEquals('2', thread.sliceGroup.slices[0].args['arg2']);
173
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']);
179
180     assertEquals('ipc/ipc_sync_message_filter.cc:Send',
181                  thread.sliceGroup.slices[2].args['source']);
182
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']);
187
188     var counters = m.getAllCounters();
189     assertEquals(1, counters.length);
190     assertEquals('cat1', counters[0].category);
191     assertEquals('counter1', counters[0].name);
192
193     assertEquals(1, counters[0].numSamples);
194     assertEquals(10, counters[0].getSeries(0).getSample(0).value);
195
196     assertEquals(Math.round((253.780659 - (255.663276 - 128)) * 1000),
197                  Math.round(thread.sliceGroup.slices[0].start));
198   });
199 });
200 </script>
201