OLD | NEW |
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 23 matching lines...) Expand all Loading... |
34 histograms2.importDicts(histograms.asDicts()); | 34 histograms2.importDicts(histograms.asDicts()); |
35 assert.isDefined(histograms2.getHistogramNamed('foo')); | 35 assert.isDefined(histograms2.getHistogramNamed('foo')); |
36 const v = histograms2.getHistogramNamed('foo'); | 36 const v = histograms2.getHistogramNamed('foo'); |
37 assert.lengthOf(v.getBinForValue(10).diagnosticMaps, 1); | 37 assert.lengthOf(v.getBinForValue(10).diagnosticMaps, 1); |
38 const dm = v.getBinForValue(10).diagnosticMaps[0]; | 38 const dm = v.getBinForValue(10).diagnosticMaps[0]; |
39 assert.strictEqual(dm.size, 1); | 39 assert.strictEqual(dm.size, 1); |
40 assert.instanceOf(dm.get('bar'), tr.v.d.GenericSet); | 40 assert.instanceOf(dm.get('bar'), tr.v.d.GenericSet); |
41 assert.strictEqual(tr.b.getOnlyElement(dm.get('bar')), 'baz'); | 41 assert.strictEqual(tr.b.getOnlyElement(dm.get('bar')), 'baz'); |
42 }); | 42 }); |
43 | 43 |
44 test('relatedHistogramMapDiagnostic', function() { | |
45 const unit = tr.b.Unit.byName.unitlessNumber; | |
46 const a = new tr.v.Histogram('a', unit); | |
47 const b = new tr.v.Histogram('b', unit); | |
48 const c = new tr.v.Histogram('c', unit); | |
49 const rvm = new tr.v.d.RelatedHistogramMap(); | |
50 rvm.set('y', b); | |
51 rvm.set('z', c); | |
52 a.diagnostics.set('rvm', rvm); | |
53 | |
54 // Don't serialize c just yet. | |
55 const histograms = new tr.v.HistogramSet([a, b]); | |
56 | |
57 const sourceHistograms = histograms.sourceHistograms; | |
58 assert.strictEqual(tr.b.getOnlyElement(sourceHistograms), a); | |
59 | |
60 const histograms2 = new tr.v.HistogramSet(); | |
61 histograms2.importDicts(histograms.asDicts()); | |
62 histograms2.resolveRelatedHistograms(); | |
63 | |
64 const a2 = histograms2.getHistogramNamed('a'); | |
65 assert.isDefined(a2); | |
66 assert.strictEqual(a2.guid, a.guid); | |
67 assert.instanceOf(a2, tr.v.Histogram); | |
68 assert.notStrictEqual(a2, a); | |
69 | |
70 const b2 = histograms2.getHistogramNamed('b'); | |
71 assert.isDefined(b2); | |
72 assert.strictEqual(b2.guid, b.guid); | |
73 assert.instanceOf(b2, tr.v.Histogram); | |
74 assert.notStrictEqual(b2, b); | |
75 | |
76 const rvm2 = a2.diagnostics.get('rvm'); | |
77 assert.instanceOf(rvm2, tr.v.d.RelatedHistogramMap); | |
78 assert.lengthOf(rvm2, 2); | |
79 | |
80 // Assert that b and c are in a2's RelatedHistogramMap. | |
81 // |c| should still be a HistogramRef since it wasn't in histograms2. | |
82 assert.strictEqual(rvm2.get('y'), b2); | |
83 assert.instanceOf(rvm2.get('z'), tr.v.d.HistogramRef); | |
84 | |
85 // Now serialize c and add it to histograms2. | |
86 // Related Histogram resolution is idempotent. | |
87 // Old histograms can refer to new histograms. | |
88 histograms2.importDicts([c.asDict()]); | |
89 histograms2.resolveRelatedHistograms(); | |
90 | |
91 const c2 = histograms2.getHistogramNamed('c'); | |
92 assert.isDefined(c2); | |
93 assert.strictEqual(c2.guid, c.guid); | |
94 assert.instanceOf(c2, tr.v.Histogram); | |
95 assert.notStrictEqual(c2, c); | |
96 | |
97 // b2 should still be in a2's RelatedHistogramMap. | |
98 assert.strictEqual(rvm2.get('y'), b2); | |
99 | |
100 // Now a real c2 Histogram should be in a2's RelatedHistogramMap. | |
101 assert.strictEqual(rvm2.get('z'), c2); | |
102 }); | |
103 | |
104 test('sourceHistogramsWithSampleDiagnostic', function() { | |
105 const unit = tr.b.Unit.byName.unitlessNumber; | |
106 const aHist = new tr.v.Histogram('a', unit); | |
107 aHist.addSample(1); | |
108 | |
109 const bHist = new tr.v.Histogram('b', tr.b.Unit.byName.unitlessNumber); | |
110 const related = new tr.v.d.RelatedHistogramMap(); | |
111 related.set('0', aHist); | |
112 bHist.addSample(1, {related}); | |
113 | |
114 const histograms = new tr.v.HistogramSet([aHist, bHist]); | |
115 assert.strictEqual(tr.b.getOnlyElement(histograms.sourceHistograms), bHist); | |
116 }); | |
117 | |
118 test('sharedDiagnostic', function() { | 44 test('sharedDiagnostic', function() { |
119 // Make a single Histogram, add a shared Diagnostic. | 45 // Make a single Histogram, add a shared Diagnostic. |
120 const aHist = new tr.v.Histogram('aHist', tr.b.Unit.byName.count); | 46 const aHist = new tr.v.Histogram('aHist', tr.b.Unit.byName.count); |
121 const histograms = new tr.v.HistogramSet([aHist]); | 47 const histograms = new tr.v.HistogramSet([aHist]); |
122 const diagnostic = new tr.v.d.GenericSet(['shared']); | 48 const diagnostic = new tr.v.d.GenericSet(['shared']); |
123 histograms.addSharedDiagnostic('generic', diagnostic); | 49 histograms.addSharedDiagnostic('generic', diagnostic); |
124 | 50 |
125 // Serializing a single Histogram with a single shared diagnostic should | 51 // Serializing a single Histogram with a single shared diagnostic should |
126 // produce 2 dicts. | 52 // produce 2 dicts. |
127 const dicts = histograms.asDicts(); | 53 const dicts = histograms.asDicts(); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 const groupings = histograms.buildGroupingsFromTags([ | 163 const groupings = histograms.buildGroupingsFromTags([ |
238 tr.v.d.RESERVED_NAMES.STORY_TAGS]); | 164 tr.v.d.RESERVED_NAMES.STORY_TAGS]); |
239 assert.lengthOf(groupings, 2); | 165 assert.lengthOf(groupings, 2); |
240 assert.strictEqual(groupings[0].callback(aHist), 'a'); | 166 assert.strictEqual(groupings[0].callback(aHist), 'a'); |
241 assert.strictEqual(groupings[0].callback(bHist), '~a'); | 167 assert.strictEqual(groupings[0].callback(bHist), '~a'); |
242 assert.strictEqual(groupings[1].callback(aHist), '~b'); | 168 assert.strictEqual(groupings[1].callback(aHist), '~b'); |
243 assert.strictEqual(groupings[1].callback(bHist), 'b'); | 169 assert.strictEqual(groupings[1].callback(bHist), 'b'); |
244 }); | 170 }); |
245 }); | 171 }); |
246 </script> | 172 </script> |
OLD | NEW |