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

Side by Side Diff: tracing/tracing/metrics/tracing_metric_test.html

Issue 2424933003: Rename ValueSet* to HistogramSet*. (Closed)
Patch Set: fix Created 4 years, 2 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/extras/importer/trace_event_importer.html"> 9 <link rel="import" href="/tracing/extras/importer/trace_event_importer.html">
10 <link rel="import" href="/tracing/metrics/tracing_metric.html"> 10 <link rel="import" href="/tracing/metrics/tracing_metric.html">
11 <link rel="import" href="/tracing/model/memory_dump_test_utils.html"> 11 <link rel="import" href="/tracing/model/memory_dump_test_utils.html">
12 <link rel="import" href="/tracing/value/value_set.html"> 12 <link rel="import" href="/tracing/value/histogram_set.html">
13 13
14 <script> 14 <script>
15 'use strict'; 15 'use strict';
16 16
17 tr.b.unittest.testSuite(function() { 17 tr.b.unittest.testSuite(function() {
18 18
19 function makeModel(events, opt_track) { 19 function makeModel(events, opt_track) {
20 return tr.c.TestUtils.newModelWithEvents([events], { 20 return tr.c.TestUtils.newModelWithEvents([events], {
21 trackDetailedModelStats: opt_track 21 trackDetailedModelStats: opt_track
22 }); 22 });
23 } 23 }
24 24
25 function getEventStringSize(events, indices) { 25 function getEventStringSize(events, indices) {
26 return indices.reduce(function(sum, index) { 26 return indices.reduce(function(sum, index) {
27 return sum + JSON.stringify(events[index]).length; 27 return sum + JSON.stringify(events[index]).length;
28 }, 0); 28 }, 0);
29 } 29 }
30 30
31 function checkDurationValue(allValues, metricName, expected) { 31 function checkDurationValue(allValues, metricName, expected) {
32 var value = tr.b.getOnlyElement(allValues.getValuesNamed(metricName)); 32 var value = tr.b.getOnlyElement(allValues.getValuesNamed(metricName));
33 assert.closeTo(1000 * value.average, expected, 0.1); 33 assert.closeTo(1000 * value.average, expected, 0.1);
34 } 34 }
35 35
36 test('hasEventSizesInBytes', function() { 36 test('hasEventSizesInBytes', function() {
37 var allValues = new tr.v.ValueSet(); 37 var allValues = new tr.v.HistogramSet();
38 var events = [ 38 var events = [
39 {name: 'a', args: {}, pid: 52, ts: 524, cat: 'foo', tid: 53, ph: 'B'}, 39 {name: 'a', args: {}, pid: 52, ts: 524, cat: 'foo', tid: 53, ph: 'B'},
40 {name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'B'} 40 {name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'B'}
41 ]; 41 ];
42 42
43 var model = makeModel(JSON.stringify(events), false); 43 var model = makeModel(JSON.stringify(events), false);
44 assert.isFalse(model.importOptions.trackDetailedModelStats); 44 assert.isFalse(model.importOptions.trackDetailedModelStats);
45 assert.throws(function() { 45 assert.throws(function() {
46 tr.metrics.tracingMetric(allValues, model); 46 tr.metrics.tracingMetric(allValues, model);
47 }, 'Please enable ImportOptions.trackDetailedModelStats.'); 47 }, 'Please enable ImportOptions.trackDetailedModelStats.');
48 48
49 model = makeModel(JSON.stringify(events), true); 49 model = makeModel(JSON.stringify(events), true);
50 assert.isTrue(model.importOptions.trackDetailedModelStats); 50 assert.isTrue(model.importOptions.trackDetailedModelStats);
51 tr.metrics.tracingMetric(allValues, model); 51 tr.metrics.tracingMetric(allValues, model);
52 }); 52 });
53 53
54 test('totalTraceSize', function() { 54 test('totalTraceSize', function() {
55 var allValues = new tr.v.ValueSet(); 55 var allValues = new tr.v.HistogramSet();
56 var events = [ 56 var events = [
57 {name: 'a', args: {}, pid: 52, ts: 524, cat: 'foo', tid: 53, ph: 'B'}, 57 {name: 'a', args: {}, pid: 52, ts: 524, cat: 'foo', tid: 53, ph: 'B'},
58 {name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'B'} 58 {name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'B'}
59 ]; 59 ];
60 var model = makeModel(JSON.stringify(events), true); 60 var model = makeModel(JSON.stringify(events), true);
61 tr.metrics.tracingMetric(allValues, model); 61 tr.metrics.tracingMetric(allValues, model);
62 62
63 var eventStringSize = getEventStringSize(events, [0, 1]); 63 var eventStringSize = getEventStringSize(events, [0, 1]);
64 var value = tr.b.getOnlyElement(allValues.getValuesNamed( 64 var value = tr.b.getOnlyElement(allValues.getValuesNamed(
65 'Total trace size in bytes')); 65 'Total trace size in bytes'));
66 assert.strictEqual(value.average, eventStringSize); 66 assert.strictEqual(value.average, eventStringSize);
67 }); 67 });
68 68
69 test('maxValuePerSec', function() { 69 test('maxValuePerSec', function() {
70 var ONE_SEC_IN_US = 1000000; 70 var ONE_SEC_IN_US = 1000000;
71 var events = [ 71 var events = [
72 {name: 'a', pid: 52, ts: 1, cat: 'foo', ph: 'B'}, 72 {name: 'a', pid: 52, ts: 1, cat: 'foo', ph: 'B'},
73 {name: 'a', pid: 52, ts: ONE_SEC_IN_US + 1, cat: 'foo', ph: 'B'}, 73 {name: 'a', pid: 52, ts: ONE_SEC_IN_US + 1, cat: 'foo', ph: 'B'},
74 {name: 'a', pid: 52, ts: 2 * ONE_SEC_IN_US + 1, cat: 'foo', ph: 'B'}, 74 {name: 'a', pid: 52, ts: 2 * ONE_SEC_IN_US + 1, cat: 'foo', ph: 'B'},
75 {name: 'a', pid: 52, ts: 2 * ONE_SEC_IN_US + 3, cat: 'foo', ph: 'B'}, 75 {name: 'a', pid: 52, ts: 2 * ONE_SEC_IN_US + 3, cat: 'foo', ph: 'B'},
76 {name: 'a', pid: 52, ts: ONE_SEC_IN_US + 2, cat: 'foo', ph: 'B'}, 76 {name: 'a', pid: 52, ts: ONE_SEC_IN_US + 2, cat: 'foo', ph: 'B'},
77 {name: 'a', pid: 52, ts: 2 * ONE_SEC_IN_US + 2, cat: 'foo', ph: 'B'} 77 {name: 'a', pid: 52, ts: 2 * ONE_SEC_IN_US + 2, cat: 'foo', ph: 'B'}
78 ]; 78 ];
79 var model = makeModel(JSON.stringify(events), true); 79 var model = makeModel(JSON.stringify(events), true);
80 var allValues = new tr.v.ValueSet(); 80 var allValues = new tr.v.HistogramSet();
81 tr.metrics.tracingMetric(allValues, model); 81 tr.metrics.tracingMetric(allValues, model);
82 82
83 var maxEventCountPerSec = 3; 83 var maxEventCountPerSec = 3;
84 var value = tr.b.getOnlyElement(allValues.getValuesNamed( 84 var value = tr.b.getOnlyElement(allValues.getValuesNamed(
85 'Max number of events per second')); 85 'Max number of events per second'));
86 assert.strictEqual(value.average, maxEventCountPerSec); 86 assert.strictEqual(value.average, maxEventCountPerSec);
87 87
88 var maxEventBytesPerSec = getEventStringSize(events, [2, 3, 5]); 88 var maxEventBytesPerSec = getEventStringSize(events, [2, 3, 5]);
89 value = tr.b.getOnlyElement(allValues.getValuesNamed( 89 value = tr.b.getOnlyElement(allValues.getValuesNamed(
90 'Max event size in bytes per second')); 90 'Max event size in bytes per second'));
91 assert.strictEqual(value.average, maxEventBytesPerSec); 91 assert.strictEqual(value.average, maxEventBytesPerSec);
92 }); 92 });
93 93
94 test('diagnostics', function() { 94 test('diagnostics', function() {
95 var allValues = new tr.v.ValueSet(); 95 var allValues = new tr.v.HistogramSet();
96 var events = [ 96 var events = [
97 {name: 'a', args: {}, pid: 52, ts: 524, cat: 'foo', tid: 53, ph: 'B'}, 97 {name: 'a', args: {}, pid: 52, ts: 524, cat: 'foo', tid: 53, ph: 'B'},
98 {name: 'a', args: {}, pid: 52, ts: 535, cat: 'foo', tid: 53, ph: 'B'}, 98 {name: 'a', args: {}, pid: 52, ts: 535, cat: 'foo', tid: 53, ph: 'B'},
99 {name: 'bb', args: {}, pid: 52, ts: 546, cat: 'bar', tid: 53, ph: 'E'}, 99 {name: 'bb', args: {}, pid: 52, ts: 546, cat: 'bar', tid: 53, ph: 'E'},
100 {name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'B'}, 100 {name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'B'},
101 {name: 'bb', args: {}, pid: 52, ts: 578, cat: 'bar', tid: 53, ph: 'E'} 101 {name: 'bb', args: {}, pid: 52, ts: 578, cat: 'bar', tid: 53, ph: 'E'}
102 ]; 102 ];
103 var model = makeModel(JSON.stringify(events), true); 103 var model = makeModel(JSON.stringify(events), true);
104 tr.metrics.tracingMetric(allValues, model); 104 tr.metrics.tracingMetric(allValues, model);
105 105
106 for (var value of allValues) { 106 for (var value of allValues) {
107 var d = value.diagnostics.get('category_with_max_event_size').value; 107 var d = value.diagnostics.get('category_with_max_event_size').value;
108 assert.strictEqual(d.name, 'foo'); 108 assert.strictEqual(d.name, 'foo');
109 assert.strictEqual(d.size_in_bytes, getEventStringSize( 109 assert.strictEqual(d.size_in_bytes, getEventStringSize(
110 events, [0, 1, 3])); 110 events, [0, 1, 3]));
111 } 111 }
112 }); 112 });
113 113
114 test('testMemoryInfraTracingMetrics', function() { 114 test('testMemoryInfraTracingMetrics', function() {
115 var MEMORY_INFRA_TRACING_CATEGORY = 115 var MEMORY_INFRA_TRACING_CATEGORY =
116 tr.metrics.MEMORY_INFRA_TRACING_CATEGORY; 116 tr.metrics.MEMORY_INFRA_TRACING_CATEGORY;
117 var allValues = new tr.v.ValueSet(); 117 var allValues = new tr.v.HistogramSet();
118 var events = [ 118 var events = [
119 {name: 'OnMemoryDump', pid: 1, ts: 510, tid: 1, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp1'}, dur: 4}, // @suppress l ongLineCheck 119 {name: 'OnMemoryDump', pid: 1, ts: 510, tid: 1, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp1'}, dur: 4}, // @suppress l ongLineCheck
120 {name: 'OnMemoryDump', pid: 1, ts: 520, tid: 7, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp2'}, dur: 15}, // @suppress longLineCheck 120 {name: 'OnMemoryDump', pid: 1, ts: 520, tid: 7, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp2'}, dur: 15}, // @suppress longLineCheck
121 {name: 'OnMemoryDump', pid: 1, ts: 530, tid: 7, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp3'}, dur: 5}, // @suppress l ongLineCheck 121 {name: 'OnMemoryDump', pid: 1, ts: 530, tid: 7, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp3'}, dur: 5}, // @suppress l ongLineCheck
122 {name: 'OnMemoryDump', pid: 2, ts: 510, tid: 2, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp1'}, dur: 9}, // @suppress l ongLineCheck 122 {name: 'OnMemoryDump', pid: 2, ts: 510, tid: 2, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp1'}, dur: 9}, // @suppress l ongLineCheck
123 {name: 'OnMemoryDump', pid: 2, ts: 520, tid: 8, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp2'}, dur: 17}, // @suppress longLineCheck 123 {name: 'OnMemoryDump', pid: 2, ts: 520, tid: 8, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp2'}, dur: 17}, // @suppress longLineCheck
124 {name: 'OnMemoryDump', pid: 2, ts: 530, tid: 8, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp3'}, dur: 7}, // @suppress l ongLineCheck 124 {name: 'OnMemoryDump', pid: 2, ts: 530, tid: 8, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp3'}, dur: 7}, // @suppress l ongLineCheck
125 {name: 'OnMemoryDump', pid: 2, ts: 540, tid: 3, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp4'}, dur: 8}, // @suppress l ongLineCheck 125 {name: 'OnMemoryDump', pid: 2, ts: 540, tid: 3, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {'dump_provider.name': 'mdp4'}, dur: 8}, // @suppress l ongLineCheck
126 {name: 'ProcessDumps', pid: 1, ts: 550, tid: 1, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {guid: 4}, dur: 8}, // @suppress longLineCheck 126 {name: 'ProcessDumps', pid: 1, ts: 550, tid: 1, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {guid: 4}, dur: 8}, // @suppress longLineCheck
127 {name: 'ProcessDumps', pid: 2, ts: 540, tid: 2, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {guid: 4}, dur: 18}, // @suppress longLineCheck 127 {name: 'ProcessDumps', pid: 2, ts: 540, tid: 2, ph: 'X', cat: MEMORY_INFRA _TRACING_CATEGORY, args: {guid: 4}, dur: 18}, // @suppress longLineCheck
(...skipping 29 matching lines...) Expand all
157 checkDurationValue(allValues, 157 checkDurationValue(allValues,
158 'Average CPU overhead on non-memory-infra threads per memory-infra ' + 158 'Average CPU overhead on non-memory-infra threads per memory-infra ' +
159 'dump', 159 'dump',
160 47); 160 47);
161 checkDurationValue(allValues, 161 checkDurationValue(allValues,
162 'Average CPU overhead on all threads per memory-infra dump', 91); 162 'Average CPU overhead on all threads per memory-infra dump', 91);
163 }); 163 });
164 164
165 }); 165 });
166 </script> 166 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698