Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / analysis / analyze_counters_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/analysis/analysis_view.html">
9 <link rel="import" href="/tracing/analysis/stub_analysis_results.html">
10 <link rel="import" href="/tracing/analysis/analyze_counters.html">
11 <link rel="import" href="/tracing/test_utils.html">
12 <link rel="import" href="/tracing/selection.html">
13 <link rel="import" href="/tracing/trace_model/counter.html">
14 <link rel="import" href="/tracing/trace_model/counter_series.html">
15
16 <script>
17
18 'use strict';
19
20 tvcm.unittest.testSuite(function() {
21   var Counter = tracing.trace_model.Counter;
22   var CounterSeries = tracing.trace_model.CounterSeries;
23
24   var Selection = tracing.Selection;
25   var AnalysisView = tracing.analysis.AnalysisView;
26   var StubAnalysisResults = tracing.analysis.StubAnalysisResults;
27
28   var createSelectionWithCounters = function(numSamples) {
29     if (numSamples > 2 || numSamples < 1)
30       throw new Error('This function only supports 1 or 2 samples');
31
32     var ctr = new Counter(null, 0, '', 'ctr');
33     var series = new CounterSeries('value', 0);
34     ctr.addSeries(series);
35
36     series.addCounterSample(0, 0);
37     series.addCounterSample(10, 10);
38
39     var selection = new Selection();
40     var t1track = {};
41     selection.push(ctr.getSeries(0).samples[1]);
42
43     if (numSamples === 1)
44       return selection;
45
46     selection.push(ctr.getSeries(0).samples[0]);
47     return selection;
48   };
49
50   function createSeries(ctr) {
51     var allocatedSeries = new CounterSeries('bytesallocated', 0);
52     var freeSeries = new CounterSeries('bytesfree', 1);
53
54     ctr.addSeries(allocatedSeries);
55     ctr.addSeries(freeSeries);
56
57     allocatedSeries.addCounterSample(0, 0);
58     allocatedSeries.addCounterSample(10, 25);
59     allocatedSeries.addCounterSample(20, 10);
60
61     freeSeries.addCounterSample(0, 15);
62     freeSeries.addCounterSample(10, 20);
63     freeSeries.addCounterSample(20, 5);
64   }
65
66   var createSelectionWithTwoSeriesSingleCounter = function() {
67     var ctr = new Counter(null, 0, 'foo', 'ctr[0]');
68     createSeries(ctr);
69
70     var selection = new Selection();
71     var t1track = {};
72
73     selection.push(ctr.getSeries(0).samples[1]);
74     selection.push(ctr.getSeries(1).samples[1]);
75     return selection;
76   };
77
78   var createSelectionWithTwoSeriesTwoCounters = function() {
79     var ctr1 = new Counter(null, 0, '', 'ctr1');
80     createSeries(ctr1);
81
82     var ctr2 = new Counter(null, 0, '', 'ctr2');
83     createSeries(ctr2);
84
85     var selection = new Selection();
86     var t1track = {};
87
88     selection.push(ctr1.getSeries(0).samples[1]);
89     selection.push(ctr1.getSeries(1).samples[1]);
90
91
92     selection.push(ctr2.getSeries(0).samples[2]);
93     selection.push(ctr2.getSeries(1).samples[2]);
94     return selection;
95   };
96
97   var createSelectionWithTwoCountersDiffSeriesDiffEvents = function() {
98     var ctr1 = new Counter(null, 0, '', 'a');
99     var ctr1AllocatedSeries = new CounterSeries('bytesallocated', 0);
100     ctr1.addSeries(ctr1AllocatedSeries);
101
102     ctr1AllocatedSeries.addCounterSample(0, 0);
103     ctr1AllocatedSeries.addCounterSample(10, 25);
104     ctr1AllocatedSeries.addCounterSample(20, 15);
105
106     assertEquals('a', ctr1.name);
107     assertEquals(3, ctr1.numSamples);
108     assertEquals(1, ctr1.numSeries);
109
110     var ctr2 = new Counter(null, 0, '', 'b');
111     var ctr2AllocatedSeries = new CounterSeries('bytesallocated', 0);
112     var ctr2FreeSeries = new CounterSeries('bytesfree', 1);
113
114     ctr2.addSeries(ctr2AllocatedSeries);
115     ctr2.addSeries(ctr2FreeSeries);
116
117     ctr2AllocatedSeries.addCounterSample(0, 0);
118     ctr2AllocatedSeries.addCounterSample(10, 25);
119     ctr2AllocatedSeries.addCounterSample(20, 10);
120     ctr2AllocatedSeries.addCounterSample(30, 15);
121
122     ctr2FreeSeries.addCounterSample(0, 20);
123     ctr2FreeSeries.addCounterSample(10, 5);
124     ctr2FreeSeries.addCounterSample(20, 25);
125     ctr2FreeSeries.addCounterSample(30, 0);
126
127     assertEquals('b', ctr2.name);
128     assertEquals(4, ctr2.numSamples);
129     assertEquals(2, ctr2.numSeries);
130
131     var selection = new Selection();
132     var t1track = {};
133     var t2track = {};
134
135     selection.push(ctr1AllocatedSeries.samples[1]);
136     selection.push(ctr2AllocatedSeries.samples[2]);
137     selection.push(ctr2FreeSeries.samples[2]);
138
139     return selection;
140   };
141
142   test('instantiate_singleCounterWithTwoSeries', function() {
143     var selection = createSelectionWithTwoSeriesSingleCounter();
144
145     var analysisEl = new AnalysisView();
146     analysisEl.selection = selection;
147     this.addHTMLOutput(analysisEl);
148   });
149
150   test('instantiate_twoCountersWithTwoSeries', function() {
151     var selection = createSelectionWithTwoSeriesTwoCounters();
152
153     var analysisEl = new AnalysisView();
154     analysisEl.selection = selection;
155     this.addHTMLOutput(analysisEl);
156   });
157
158   test('analyzeSelectionWithSingleCounter', function() {
159     var selection = createSelectionWithCounters(1);
160
161     var results = new StubAnalysisResults();
162     tracing.analysis.analyzeSelection(results, selection);
163
164     assertEquals(1, results.tables.length);
165     assertEquals('Selected counter:', results.headers[0].label);
166     var table = results.tables[0];
167     assertEquals(3, table.rows.length);
168
169     assertEquals('Title', table.rows[0].label);
170     assertEquals('Timestamp', table.rows[1].label);
171     assertEquals('value', table.rows[2].label);
172     assertEquals(10, table.rows[2].text);
173   });
174
175   test('analyzeSelectionWithComplexSeriesTwoCounters', function() {
176     var selection = createSelectionWithTwoCountersDiffSeriesDiffEvents();
177
178     var results = new StubAnalysisResults();
179     tracing.analysis.analyzeSelection(results, selection);
180     assertEquals(2, results.tables.length);
181   });
182 });
183 </script>