| 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 | 
|---|