Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(964)

Side by Side Diff: tracing/tracing/value/diagnostics/diagnostic_map_test.html

Issue 2998043002: Remove RelatedHistogramSet. (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <!-- 2 <!--
3 Copyright 2016 The Chromium Authors. All rights reserved. 3 Copyright 2016 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be 4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file. 5 found in the LICENSE file.
6 --> 6 -->
7 7
8 <link rel="import" href="/tracing/core/test_utils.html"> 8 <link rel="import" href="/tracing/core/test_utils.html">
9 <link rel="import" href="/tracing/value/diagnostics/diagnostic_map.html"> 9 <link rel="import" href="/tracing/value/diagnostics/diagnostic_map.html">
10 <link rel="import" href="/tracing/value/histogram_set.html"> 10 <link rel="import" href="/tracing/value/histogram_set.html">
11 11
12 <script> 12 <script>
13 'use strict'; 13 'use strict';
14 14
15 tr.b.unittest.testSuite(function() { 15 tr.b.unittest.testSuite(function() {
16 test('clone', function() { 16 test('clone', function() {
17 const diagnostics = new tr.v.d.DiagnosticMap(); 17 const diagnostics = new tr.v.d.DiagnosticMap();
18 diagnostics.set('generic', new tr.v.d.GenericSet([{a: ['b', 3]}])); 18 diagnostics.set('generic', new tr.v.d.GenericSet([{a: ['b', 3]}]));
19 diagnostics.set('breakdown', new tr.v.d.Breakdown()); 19 diagnostics.set('breakdown', new tr.v.d.Breakdown());
20 diagnostics.set('events', new tr.v.d.RelatedEventSet()); 20 diagnostics.set('events', new tr.v.d.RelatedEventSet());
21 diagnostics.set('set', new tr.v.d.RelatedHistogramSet());
22 diagnostics.set('map', new tr.v.d.RelatedHistogramMap()); 21 diagnostics.set('map', new tr.v.d.RelatedHistogramMap());
23 diagnostics.set('histogram breakdown', 22 diagnostics.set('histogram breakdown',
24 new tr.v.d.RelatedHistogramBreakdown()); 23 new tr.v.d.RelatedHistogramBreakdown());
25 24
26 const clone = tr.v.d.DiagnosticMap.fromDict(diagnostics.asDict()); 25 const clone = tr.v.d.DiagnosticMap.fromDict(diagnostics.asDict());
27 assert.instanceOf(clone.get('generic'), tr.v.d.GenericSet); 26 assert.instanceOf(clone.get('generic'), tr.v.d.GenericSet);
28 assert.deepEqual(tr.b.getOnlyElement(clone.get('generic')), 27 assert.deepEqual(tr.b.getOnlyElement(clone.get('generic')),
29 tr.b.getOnlyElement(diagnostics.get('generic'))); 28 tr.b.getOnlyElement(diagnostics.get('generic')));
30 assert.instanceOf(clone.get('breakdown'), tr.v.d.Breakdown); 29 assert.instanceOf(clone.get('breakdown'), tr.v.d.Breakdown);
31 assert.instanceOf(clone.get('events'), tr.v.d.RelatedEventSet); 30 assert.instanceOf(clone.get('events'), tr.v.d.RelatedEventSet);
32 assert.instanceOf(clone.get('set'), tr.v.d.RelatedHistogramSet);
33 assert.instanceOf(clone.get('map'), tr.v.d.RelatedHistogramMap); 31 assert.instanceOf(clone.get('map'), tr.v.d.RelatedHistogramMap);
34 assert.instanceOf(clone.get('histogram breakdown'), 32 assert.instanceOf(clone.get('histogram breakdown'),
35 tr.v.d.RelatedHistogramBreakdown); 33 tr.v.d.RelatedHistogramBreakdown);
36 }); 34 });
37 35
38 test('cloneWithRef', function() { 36 test('cloneWithRef', function() {
39 const diagnostics = new tr.v.d.DiagnosticMap(); 37 const diagnostics = new tr.v.d.DiagnosticMap();
40 diagnostics.set('ref', new tr.v.d.DiagnosticRef('abc')); 38 diagnostics.set('ref', new tr.v.d.DiagnosticRef('abc'));
41 39
42 const clone = tr.v.d.DiagnosticMap.fromDict(diagnostics.asDict()); 40 const clone = tr.v.d.DiagnosticMap.fromDict(diagnostics.asDict());
(...skipping 19 matching lines...) Expand all
62 duration: 1, 60 duration: 1,
63 }); 61 });
64 event.parentContainer = { 62 event.parentContainer = {
65 sliceGroup: { 63 sliceGroup: {
66 stableId: 'fake_thread', 64 stableId: 'fake_thread',
67 slices: [event], 65 slices: [event],
68 }, 66 },
69 }; 67 };
70 const generic = new tr.v.d.GenericSet(['generic diagnostic']); 68 const generic = new tr.v.d.GenericSet(['generic diagnostic']);
71 const generic2 = new tr.v.d.GenericSet(['generic diagnostic 2']); 69 const generic2 = new tr.v.d.GenericSet(['generic diagnostic 2']);
72 const relatedSet = new tr.v.d.RelatedHistogramSet(); 70 const relatedMap = new tr.v.d.RelatedHistogramMap();
73 const events = new tr.v.d.RelatedEventSet([event]); 71 const events = new tr.v.d.RelatedEventSet([event]);
74 72
75 // When Histograms are merged, first an empty clone is created with an empty 73 // When Histograms are merged, first an empty clone is created with an empty
76 // DiagnosticMap. 74 // DiagnosticMap.
77 const hist = new tr.v.Histogram('', tr.b.Unit.byName.count); 75 const hist = new tr.v.Histogram('', tr.b.Unit.byName.count);
78 76
79 const hist2 = new tr.v.Histogram('', tr.b.Unit.byName.count); 77 const hist2 = new tr.v.Histogram('', tr.b.Unit.byName.count);
80 hist2.diagnostics.set('a', generic); 78 hist2.diagnostics.set('a', generic);
81 hist.diagnostics.addDiagnostics(hist2.diagnostics); 79 hist.diagnostics.addDiagnostics(hist2.diagnostics);
82 assert.strictEqual(tr.b.getOnlyElement(generic), 80 assert.strictEqual(tr.b.getOnlyElement(generic),
83 tr.b.getOnlyElement(hist.diagnostics.get('a'))); 81 tr.b.getOnlyElement(hist.diagnostics.get('a')));
84 82
85 // Separate keys are not merged. 83 // Separate keys are not merged.
86 const hist3 = new tr.v.Histogram('', tr.b.Unit.byName.count); 84 const hist3 = new tr.v.Histogram('', tr.b.Unit.byName.count);
87 hist3.diagnostics.set('b', generic2); 85 hist3.diagnostics.set('b', generic2);
88 hist.diagnostics.addDiagnostics(hist3.diagnostics); 86 hist.diagnostics.addDiagnostics(hist3.diagnostics);
89 assert.strictEqual( 87 assert.strictEqual(
90 tr.b.getOnlyElement(generic), 88 tr.b.getOnlyElement(generic),
91 tr.b.getOnlyElement(hist.diagnostics.get('a'))); 89 tr.b.getOnlyElement(hist.diagnostics.get('a')));
92 assert.strictEqual( 90 assert.strictEqual(
93 tr.b.getOnlyElement(generic2), 91 tr.b.getOnlyElement(generic2),
94 tr.b.getOnlyElement(hist.diagnostics.get('b'))); 92 tr.b.getOnlyElement(hist.diagnostics.get('b')));
95 93
96 // Merging unmergeable diagnostics should produce an 94 // Merging unmergeable diagnostics should produce an
97 // UnmergeableDiagnosticSet. 95 // UnmergeableDiagnosticSet.
98 const hist4 = new tr.v.Histogram('', tr.b.Unit.byName.count); 96 const hist4 = new tr.v.Histogram('', tr.b.Unit.byName.count);
99 hist4.diagnostics.set('a', relatedSet); 97 hist4.diagnostics.set('a', relatedMap);
100 hist.diagnostics.addDiagnostics(hist4.diagnostics); 98 hist.diagnostics.addDiagnostics(hist4.diagnostics);
101 assert.instanceOf(hist.diagnostics.get('a'), 99 assert.instanceOf(hist.diagnostics.get('a'),
102 tr.v.d.UnmergeableDiagnosticSet); 100 tr.v.d.UnmergeableDiagnosticSet);
103 let diagnostics = Array.from(hist.diagnostics.get('a')); 101 let diagnostics = Array.from(hist.diagnostics.get('a'));
104 assert.strictEqual( 102 assert.strictEqual(
105 tr.b.getOnlyElement(generic), tr.b.getOnlyElement(diagnostics[0])); 103 tr.b.getOnlyElement(generic), tr.b.getOnlyElement(diagnostics[0]));
106 // Don't test merging relationships here. 104 // Don't test merging relationships here.
107 assert.instanceOf(diagnostics[1], tr.v.d.RelatedHistogramSet); 105 assert.instanceOf(diagnostics[1], tr.v.d.RelatedHistogramMap);
108 106
109 // UnmergeableDiagnosticSets are mergeable. 107 // UnmergeableDiagnosticSets are mergeable.
110 const hist5 = new tr.v.Histogram('', tr.b.Unit.byName.count); 108 const hist5 = new tr.v.Histogram('', tr.b.Unit.byName.count);
111 hist5.diagnostics.set('a', new tr.v.d.UnmergeableDiagnosticSet([ 109 hist5.diagnostics.set('a', new tr.v.d.UnmergeableDiagnosticSet([
112 events, generic2])); 110 events, generic2]));
113 hist.diagnostics.addDiagnostics(hist5.diagnostics); 111 hist.diagnostics.addDiagnostics(hist5.diagnostics);
114 assert.instanceOf(hist.diagnostics.get('a'), 112 assert.instanceOf(hist.diagnostics.get('a'),
115 tr.v.d.UnmergeableDiagnosticSet); 113 tr.v.d.UnmergeableDiagnosticSet);
116 diagnostics = Array.from(hist.diagnostics.get('a')); 114 diagnostics = Array.from(hist.diagnostics.get('a'));
117 assert.lengthOf(diagnostics, 3); 115 assert.lengthOf(diagnostics, 3);
118 assert.instanceOf(diagnostics[0], tr.v.d.GenericSet); 116 assert.instanceOf(diagnostics[0], tr.v.d.GenericSet);
119 assert.deepEqual(Array.from(diagnostics[0]), [...generic, ...generic2]); 117 assert.deepEqual(Array.from(diagnostics[0]), [...generic, ...generic2]);
120 assert.instanceOf(diagnostics[1], tr.v.d.RelatedHistogramSet); 118 assert.instanceOf(diagnostics[1], tr.v.d.RelatedHistogramMap);
121 assert.instanceOf(diagnostics[2], tr.v.d.CollectedRelatedEventSet); 119 assert.instanceOf(diagnostics[2], tr.v.d.CollectedRelatedEventSet);
122 }); 120 });
123 121
124 test('mergeRelationships', function() { 122 test('mergeRelationships', function() {
125 const aHist0 = new tr.v.Histogram('a', tr.b.Unit.byName.count); 123 const aHist0 = new tr.v.Histogram('a', tr.b.Unit.byName.count);
126 const bHist0 = new tr.v.Histogram('b', tr.b.Unit.byName.count); 124 const bHist0 = new tr.v.Histogram('b', tr.b.Unit.byName.count);
127 125
128 aHist0.diagnostics.set('set', new tr.v.d.RelatedHistogramSet([bHist0]));
129 let map = new tr.v.d.RelatedHistogramMap(); 126 let map = new tr.v.d.RelatedHistogramMap();
130 map.set('c', bHist0); 127 map.set('c', bHist0);
131 aHist0.diagnostics.set('map', map); 128 aHist0.diagnostics.set('map', map);
132 let breakdown = new tr.v.d.RelatedHistogramBreakdown(); 129 let breakdown = new tr.v.d.RelatedHistogramBreakdown();
133 breakdown.set('d', bHist0); 130 breakdown.set('d', bHist0);
134 aHist0.diagnostics.set('breakdown', breakdown); 131 aHist0.diagnostics.set('breakdown', breakdown);
135 aHist0.diagnostics.set('unmergeable', 132 aHist0.diagnostics.set('unmergeable',
136 new tr.v.d.GenericSet(['unmergeable'])); 133 new tr.v.d.GenericSet(['unmergeable']));
137 134
138 const histograms0 = new tr.v.HistogramSet([aHist0, bHist0]); 135 const histograms0 = new tr.v.HistogramSet([aHist0, bHist0]);
139 136
140 histograms0.addSharedDiagnostic( 137 histograms0.addSharedDiagnostic(
141 tr.v.d.RESERVED_NAMES.LABELS, new tr.v.d.GenericSet(['0'])); 138 tr.v.d.RESERVED_NAMES.LABELS, new tr.v.d.GenericSet(['0']));
142 139
143 const aHist1 = new tr.v.Histogram('a', tr.b.Unit.byName.count); 140 const aHist1 = new tr.v.Histogram('a', tr.b.Unit.byName.count);
144 const bHist1 = new tr.v.Histogram('b', tr.b.Unit.byName.count); 141 const bHist1 = new tr.v.Histogram('b', tr.b.Unit.byName.count);
145 142
146 aHist1.diagnostics.set('set', new tr.v.d.RelatedHistogramSet([bHist1]));
147 map = new tr.v.d.RelatedHistogramMap(); 143 map = new tr.v.d.RelatedHistogramMap();
148 map.set('c', bHist1); 144 map.set('c', bHist1);
149 aHist1.diagnostics.set('map', map); 145 aHist1.diagnostics.set('map', map);
150 breakdown = new tr.v.d.RelatedHistogramBreakdown(); 146 breakdown = new tr.v.d.RelatedHistogramBreakdown();
151 breakdown.set('d', bHist1); 147 breakdown.set('d', bHist1);
152 aHist1.diagnostics.set('breakdown', breakdown); 148 aHist1.diagnostics.set('breakdown', breakdown);
153 aHist1.diagnostics.set('unmergeable', new tr.v.d.RelatedHistogramSet( 149 aHist1.diagnostics.set('unmergeable', new tr.v.d.RelatedHistogramMap());
154 [bHist1]));
155 150
156 const histograms1 = new tr.v.HistogramSet([aHist1, bHist1]); 151 const histograms1 = new tr.v.HistogramSet([aHist1, bHist1]);
157 152
158 histograms1.addSharedDiagnostic( 153 histograms1.addSharedDiagnostic(
159 tr.v.d.RESERVED_NAMES.LABELS, new tr.v.d.GenericSet(['1'])); 154 tr.v.d.RESERVED_NAMES.LABELS, new tr.v.d.GenericSet(['1']));
160 155
161 const aMergedHist = aHist0.clone(); 156 const aMergedHist = aHist0.clone();
162 aMergedHist.addHistogram(aHist1); 157 aMergedHist.addHistogram(aHist1);
163 new tr.v.d.GroupingPath([]).addToHistogram(aMergedHist); 158 new tr.v.d.GroupingPath([]).addToHistogram(aMergedHist);
164 159
165 const bMergedHist = bHist0.clone(); 160 const bMergedHist = bHist0.clone();
166 bMergedHist.addHistogram(bHist1); 161 bMergedHist.addHistogram(bHist1);
167 new tr.v.d.GroupingPath([]).addToHistogram(bMergedHist); 162 new tr.v.d.GroupingPath([]).addToHistogram(bMergedHist);
168 163
169 const mergedHists = new tr.v.HistogramSet([aMergedHist, bMergedHist]); 164 const mergedHists = new tr.v.HistogramSet([aMergedHist, bMergedHist]);
170 mergedHists.deduplicateDiagnostics(); 165 mergedHists.deduplicateDiagnostics();
171 166
172 aMergedHist.diagnostics.mergeRelationships(aMergedHist); 167 aMergedHist.diagnostics.mergeRelationships(aMergedHist);
173 bMergedHist.diagnostics.mergeRelationships(bMergedHist); 168 bMergedHist.diagnostics.mergeRelationships(bMergedHist);
174 169
175 const aMergedSet = aMergedHist.diagnostics.get('set');
176 assert.instanceOf(aMergedSet, tr.v.d.RelatedHistogramSet);
177 assert.strictEqual(bMergedHist, tr.b.getOnlyElement(aMergedSet));
178
179 const aMergedMap = aMergedHist.diagnostics.get('map'); 170 const aMergedMap = aMergedHist.diagnostics.get('map');
180 assert.instanceOf(aMergedMap, tr.v.d.RelatedHistogramMap); 171 assert.instanceOf(aMergedMap, tr.v.d.RelatedHistogramMap);
181 assert.lengthOf(aMergedMap, 1); 172 assert.lengthOf(aMergedMap, 1);
182 assert.strictEqual(bMergedHist, aMergedMap.get('c')); 173 assert.strictEqual(bMergedHist, aMergedMap.get('c'));
183 174
184 const aMergedBreakdown = aMergedHist.diagnostics.get('breakdown'); 175 const aMergedBreakdown = aMergedHist.diagnostics.get('breakdown');
185 assert.instanceOf(aMergedBreakdown, tr.v.d.RelatedHistogramBreakdown); 176 assert.instanceOf(aMergedBreakdown, tr.v.d.RelatedHistogramBreakdown);
186 assert.lengthOf(aMergedBreakdown, 1); 177 assert.lengthOf(aMergedBreakdown, 1);
187 assert.strictEqual(bMergedHist, aMergedBreakdown.get('d')); 178 assert.strictEqual(bMergedHist, aMergedBreakdown.get('d'));
188 179
189 const aMergedUnmergeable = aMergedHist.diagnostics.get('unmergeable'); 180 const aMergedUnmergeable = aMergedHist.diagnostics.get('unmergeable');
190 assert.instanceOf(aMergedUnmergeable, tr.v.d.UnmergeableDiagnosticSet); 181 assert.instanceOf(aMergedUnmergeable, tr.v.d.UnmergeableDiagnosticSet);
191 }); 182 });
192 183
193 test('validateDiagnosticTypes', function() { 184 test('validateDiagnosticTypes', function() {
194 const hist = new tr.v.Histogram('', tr.b.Unit.byName.count); 185 const hist = new tr.v.Histogram('', tr.b.Unit.byName.count);
195 function addInvalidDiagnosticType() { 186 function addInvalidDiagnosticType() {
196 hist.diagnostics.set( 187 hist.diagnostics.set(
197 tr.v.d.RESERVED_NAMES.GROUPING_PATH, new tr.v.d.GenericSet()); 188 tr.v.d.RESERVED_NAMES.GROUPING_PATH, new tr.v.d.GenericSet());
198 } 189 }
199 assert.throw(addInvalidDiagnosticType, Error, 190 assert.throw(addInvalidDiagnosticType, Error,
200 `Diagnostics named "${tr.v.d.RESERVED_NAMES.GROUPING_PATH}" must be ` + 191 `Diagnostics named "${tr.v.d.RESERVED_NAMES.GROUPING_PATH}" must be ` +
201 'GroupingPath, not GenericSet'); 192 'GroupingPath, not GenericSet');
202 }); 193 });
203 }); 194 });
204 </script> 195 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/value/diagnostics/diagnostic_map.html ('k') | tracing/tracing/value/diagnostics/related_histogram_map.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698