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