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

Side by Side Diff: tracing/tracing/value/histogram_set_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/base/math/range.html"> 8 <link rel="import" href="/tracing/base/math/range.html">
9 <link rel="import" href="/tracing/base/unit.html"> 9 <link rel="import" href="/tracing/base/unit.html">
10 <link rel="import" href="/tracing/value/diagnostics/diagnostic_map.html"> 10 <link rel="import" href="/tracing/value/diagnostics/diagnostic_map.html">
(...skipping 24 matching lines...) Expand all
35 histograms2.importDicts(histograms.asDicts()); 35 histograms2.importDicts(histograms.asDicts());
36 assert.isDefined(histograms2.getHistogramNamed('foo')); 36 assert.isDefined(histograms2.getHistogramNamed('foo'));
37 const v = histograms2.getHistogramNamed('foo'); 37 const v = histograms2.getHistogramNamed('foo');
38 assert.lengthOf(v.getBinForValue(10).diagnosticMaps, 1); 38 assert.lengthOf(v.getBinForValue(10).diagnosticMaps, 1);
39 const dm = v.getBinForValue(10).diagnosticMaps[0]; 39 const dm = v.getBinForValue(10).diagnosticMaps[0];
40 assert.strictEqual(dm.size, 1); 40 assert.strictEqual(dm.size, 1);
41 assert.instanceOf(dm.get('bar'), tr.v.d.GenericSet); 41 assert.instanceOf(dm.get('bar'), tr.v.d.GenericSet);
42 assert.strictEqual(tr.b.getOnlyElement(dm.get('bar')), 'baz'); 42 assert.strictEqual(tr.b.getOnlyElement(dm.get('bar')), 'baz');
43 }); 43 });
44 44
45 test('relatedHistogramSetDiagnostic', function() {
46 const unit = tr.b.Unit.byName.unitlessNumber;
47 const a = new tr.v.Histogram('a', unit);
48 const b = new tr.v.Histogram('b', unit);
49 const c = new tr.v.Histogram('c', unit);
50 a.diagnostics.set('rvs', new tr.v.d.RelatedHistogramSet([b, c]));
51
52 // Don't serialize c just yet.
53 const histograms = new tr.v.HistogramSet([a, b]);
54
55 const sourceHistograms = histograms.sourceHistograms;
56 assert.strictEqual(tr.b.getOnlyElement(sourceHistograms), a);
57
58 const histograms2 = new tr.v.HistogramSet();
59 histograms2.importDicts(histograms.asDicts());
60 histograms2.resolveRelatedHistograms();
61
62 const a2 = histograms2.getHistogramNamed('a');
63 assert.isDefined(a2);
64 assert.strictEqual(a2.guid, a.guid);
65 assert.instanceOf(a2, tr.v.Histogram);
66 assert.notStrictEqual(a2, a);
67
68 const b2 = histograms2.getHistogramNamed('b');
69 assert.isDefined(b2);
70 assert.strictEqual(b2.guid, b.guid);
71 assert.instanceOf(b2, tr.v.Histogram);
72 assert.notStrictEqual(b2, b);
73
74 const rvs2 = a2.diagnostics.get('rvs');
75 assert.instanceOf(rvs2, tr.v.d.RelatedHistogramSet);
76 assert.lengthOf(rvs2, 2);
77
78 // Assert that b and c are in a2's RelatedHistogramSet.
79 let rvs2vs = [...rvs2];
80 let rvs2guids = rvs2vs.map(v => v.guid);
81 let b2i = rvs2guids.indexOf(b.guid);
82 assert.strictEqual(rvs2vs[b2i], b2);
83
84 let c2i = rvs2guids.indexOf(c.guid);
85 assert.strictEqual(rvs2vs[c2i].guid, c.guid);
86 assert.instanceOf(rvs2vs[c2i], tr.v.d.HistogramRef);
87
88 // Now serialize c and add it to histograms2.
89 // Related Histogram resolution is idempotent.
90 // Old histograms can refer to new histograms.
91 histograms2.importDicts([c.asDict()]);
92 histograms2.resolveRelatedHistograms();
93
94 const c2 = histograms2.getHistogramNamed('c');
95 assert.isDefined(c2);
96 assert.strictEqual(c2.guid, c.guid);
97 assert.notStrictEqual(c2, c);
98
99 // Now a real c2 Histogram should be in a2's RelatedHistogramSet.
100 rvs2vs = [...rvs2];
101 rvs2guids = rvs2vs.map(v => v.guid);
102 b2i = rvs2guids.indexOf(b.guid);
103 c2i = rvs2guids.indexOf(c.guid);
104 assert.strictEqual(b2, rvs2vs[b2i]);
105 assert.strictEqual(c2, rvs2vs[c2i]);
106 });
107
108 test('relatedHistogramMapDiagnostic', function() { 45 test('relatedHistogramMapDiagnostic', function() {
109 const unit = tr.b.Unit.byName.unitlessNumber; 46 const unit = tr.b.Unit.byName.unitlessNumber;
110 const a = new tr.v.Histogram('a', unit); 47 const a = new tr.v.Histogram('a', unit);
111 const b = new tr.v.Histogram('b', unit); 48 const b = new tr.v.Histogram('b', unit);
112 const c = new tr.v.Histogram('c', unit); 49 const c = new tr.v.Histogram('c', unit);
113 const rvm = new tr.v.d.RelatedHistogramMap(); 50 const rvm = new tr.v.d.RelatedHistogramMap();
114 rvm.set('y', b); 51 rvm.set('y', b);
115 rvm.set('z', c); 52 rvm.set('z', c);
116 a.diagnostics.set('rvm', rvm); 53 a.diagnostics.set('rvm', rvm);
117 54
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 // Now a real c2 Histogram should be in a2's RelatedHistogramMap. 101 // Now a real c2 Histogram should be in a2's RelatedHistogramMap.
165 assert.strictEqual(rvm2.get('z'), c2); 102 assert.strictEqual(rvm2.get('z'), c2);
166 }); 103 });
167 104
168 test('sourceHistogramsWithSampleDiagnostic', function() { 105 test('sourceHistogramsWithSampleDiagnostic', function() {
169 const unit = tr.b.Unit.byName.unitlessNumber; 106 const unit = tr.b.Unit.byName.unitlessNumber;
170 const aHist = new tr.v.Histogram('a', unit); 107 const aHist = new tr.v.Histogram('a', unit);
171 aHist.addSample(1); 108 aHist.addSample(1);
172 109
173 const bHist = new tr.v.Histogram('b', tr.b.Unit.byName.unitlessNumber); 110 const bHist = new tr.v.Histogram('b', tr.b.Unit.byName.unitlessNumber);
174 bHist.addSample(1, {rvs: new tr.v.d.RelatedHistogramSet([aHist])}); 111 const related = new tr.v.d.RelatedHistogramMap();
112 related.set('0', aHist);
113 bHist.addSample(1, {related});
175 114
176 const histograms = new tr.v.HistogramSet([aHist, bHist]); 115 const histograms = new tr.v.HistogramSet([aHist, bHist]);
177 assert.strictEqual(tr.b.getOnlyElement(histograms.sourceHistograms), bHist); 116 assert.strictEqual(tr.b.getOnlyElement(histograms.sourceHistograms), bHist);
178 }); 117 });
179 118
180 test('sharedDiagnostic', function() { 119 test('sharedDiagnostic', function() {
181 // Make a single Histogram, add a shared Diagnostic. 120 // Make a single Histogram, add a shared Diagnostic.
182 const aHist = new tr.v.Histogram('aHist', tr.b.Unit.byName.count); 121 const aHist = new tr.v.Histogram('aHist', tr.b.Unit.byName.count);
183 const histograms = new tr.v.HistogramSet([aHist]); 122 const histograms = new tr.v.HistogramSet([aHist]);
184 const diagnostic = new tr.v.d.GenericSet(['shared']); 123 const diagnostic = new tr.v.d.GenericSet(['shared']);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 const groupings = histograms.buildGroupingsFromTags([ 238 const groupings = histograms.buildGroupingsFromTags([
300 tr.v.d.RESERVED_NAMES.STORY_TAGS]); 239 tr.v.d.RESERVED_NAMES.STORY_TAGS]);
301 assert.lengthOf(groupings, 2); 240 assert.lengthOf(groupings, 2);
302 assert.strictEqual(groupings[0].callback(aHist), 'a'); 241 assert.strictEqual(groupings[0].callback(aHist), 'a');
303 assert.strictEqual(groupings[0].callback(bHist), '~a'); 242 assert.strictEqual(groupings[0].callback(bHist), '~a');
304 assert.strictEqual(groupings[1].callback(aHist), '~b'); 243 assert.strictEqual(groupings[1].callback(aHist), '~b');
305 assert.strictEqual(groupings[1].callback(bHist), 'b'); 244 assert.strictEqual(groupings[1].callback(bHist), 'b');
306 }); 245 });
307 }); 246 });
308 </script> 247 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/value/histogram_set_hierarchy.html ('k') | tracing/tracing/value/histogram_set_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698