OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <!-- | |
3 Copyright 2017 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/core/test_utils.html"> | |
9 <link rel="import" href="/tracing/value/diagnostics/generic_set.html"> | |
10 <link rel="import" href="/tracing/value/diagnostics/merged_telemetry_info.html"> | |
11 <link rel="import" href="/tracing/value/diagnostics/telemetry_info.html"> | |
12 | |
13 <script> | |
14 'use strict'; | |
15 | |
16 tr.b.unittest.testSuite(function() { | |
17 test('merge', function() { | |
18 const t0 = new tr.v.d.TelemetryInfo({ | |
19 benchmarkName: 'bm0', | |
20 benchmarkStartMs: 0, | |
21 label: 'label0', | |
22 storyDisplayName: 'story0', | |
23 storyGroupingKeys: {a: 'b', c: 'd'}, | |
24 storysetRepeatCounter: 0, | |
25 legacyTIRLabel: 'tir0', | |
26 }); | |
27 | |
28 const t1 = new tr.v.d.TelemetryInfo({ | |
29 benchmarkName: 'bm1', | |
30 benchmarkStartMs: 1, | |
31 label: 'label1', | |
32 storyDisplayName: 'story1', | |
33 storyGroupingKeys: {a: 'e', f: 'g'}, | |
34 storysetRepeatCounter: 1, | |
35 legacyTIRLabel: 'tir1', | |
36 }); | |
37 | |
38 assert.isFalse(t0.canAddDiagnostic(new tr.v.d.GenericSet())); | |
39 assert.isFalse(t0.canAddDiagnostic(t1)); | |
40 | |
41 const m0 = t0.clone(); | |
42 assert.instanceOf(m0, tr.v.d.MergedTelemetryInfo); | |
43 assert.isFalse(m0.canAddDiagnostic(new tr.v.d.GenericSet())); | |
44 assert.isTrue(m0.canAddDiagnostic(t1)); | |
45 | |
46 m0.addDiagnostic(t1); | |
47 | |
48 const m1 = t1.clone(); | |
49 m1.addDiagnostic(t0); | |
50 | |
51 assert.isTrue(m1.equals(m0)); | |
52 assert.isTrue(m0.equals(m1)); | |
53 | |
54 // Test round-tripping. | |
55 const clone = tr.v.d.Diagnostic.fromDict(m0.asDict()); | |
56 | |
57 assert.deepEqual(Array.from(clone.benchmarkNames), ['bm0', 'bm1']); | |
58 assert.deepEqual( | |
59 Array.from(clone.benchmarkStarts).map(d => d.getTime()), [0, 1]); | |
60 assert.deepEqual(Array.from(clone.labels), ['label0', 'label1']); | |
61 assert.deepEqual(Array.from(clone.legacyTIRLabels), ['tir0', 'tir1']); | |
62 assert.deepEqual( | |
63 Array.from(clone.storyGroupingKeys.keys()), ['a', 'c', 'f']); | |
64 assert.deepEqual(Array.from(clone.storyGroupingKeys.get('a')), ['b', 'e']); | |
65 assert.deepEqual(Array.from(clone.storyGroupingKeys.get('c')), ['d']); | |
66 assert.deepEqual(Array.from(clone.storyGroupingKeys.get('f')), ['g']); | |
67 assert.deepEqual(Array.from(clone.storyDisplayNames), ['story0', 'story1']); | |
68 assert.deepEqual(Array.from(clone.storysetRepeatCounters), [0, 1]); | |
69 }); | |
70 | |
71 test('mergeSameBenchmarkStarts', function() { | |
72 const t0 = new tr.v.d.TelemetryInfo({ | |
73 benchmarkStartMs: 0, | |
74 }); | |
75 const t1 = new tr.v.d.TelemetryInfo({ | |
76 benchmarkStartMs: 0, | |
77 }); | |
78 const merged = t0.clone(); | |
79 merged.addDiagnostic(t1); | |
80 const startDate = tr.b.getOnlyElement(merged.benchmarkStarts); | |
81 assert.strictEqual(startDate.getTime(), 0); | |
82 }); | |
83 }); | |
84 </script> | |
OLD | NEW |