| OLD | NEW |
| 1 # Copyright 2017 The Chromium Authors. All rights reserved. | 1 # Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import json | 5 import json |
| 6 import math | 6 import math |
| 7 import time | 7 import time |
| 8 import unittest | 8 import unittest |
| 9 | 9 |
| 10 from tracing.value import histogram | 10 from tracing.value import histogram |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 clone = diagnostic.Diagnostic.FromDict(d) | 648 clone = diagnostic.Diagnostic.FromDict(d) |
| 649 self.assertEqual(ToJSON(d), ToJSON(clone.AsDict())) | 649 self.assertEqual(ToJSON(d), ToJSON(clone.AsDict())) |
| 650 self.assertEqual(len(events), 1) | 650 self.assertEqual(len(events), 1) |
| 651 event = list(events)[0] | 651 event = list(events)[0] |
| 652 self.assertEqual(event['stableId'], '0.0') | 652 self.assertEqual(event['stableId'], '0.0') |
| 653 self.assertEqual(event['title'], 'foo') | 653 self.assertEqual(event['title'], 'foo') |
| 654 self.assertEqual(event['start'], 0) | 654 self.assertEqual(event['start'], 0) |
| 655 self.assertEqual(event['duration'], 1) | 655 self.assertEqual(event['duration'], 1) |
| 656 | 656 |
| 657 | 657 |
| 658 class RelatedHistogramBreakdownUnittest(unittest.TestCase): | |
| 659 def testRoundtrip(self): | |
| 660 breakdown = histogram.RelatedHistogramBreakdown() | |
| 661 hista = histogram.Histogram('a', 'unitless') | |
| 662 histb = histogram.Histogram('b', 'unitless') | |
| 663 breakdown.Add(hista) | |
| 664 breakdown.Add(histb) | |
| 665 d = breakdown.AsDict() | |
| 666 clone = diagnostic.Diagnostic.FromDict(d) | |
| 667 self.assertEqual(ToJSON(d), ToJSON(clone.AsDict())) | |
| 668 self.assertEqual(hista.guid, clone.Get('a').guid) | |
| 669 self.assertEqual(histb.guid, clone.Get('b').guid) | |
| 670 | |
| 671 | |
| 672 class DateRangeUnittest(unittest.TestCase): | 658 class DateRangeUnittest(unittest.TestCase): |
| 673 def testRoundtrip(self): | 659 def testRoundtrip(self): |
| 674 dr = histogram.DateRange(1496693745000) | 660 dr = histogram.DateRange(1496693745000) |
| 675 dr.AddDiagnostic(histogram.DateRange(1496693746000)) | 661 dr.AddDiagnostic(histogram.DateRange(1496693746000)) |
| 676 self.assertEqual(time.mktime(dr.min_date.timetuple()), 1496693745) | 662 self.assertEqual(time.mktime(dr.min_date.timetuple()), 1496693745) |
| 677 self.assertEqual(time.mktime(dr.max_date.timetuple()), 1496693746) | 663 self.assertEqual(time.mktime(dr.max_date.timetuple()), 1496693746) |
| 678 clone = diagnostic.Diagnostic.FromDict(dr.AsDict()) | 664 clone = diagnostic.Diagnostic.FromDict(dr.AsDict()) |
| 679 self.assertEqual(clone.min_date, dr.min_date) | 665 self.assertEqual(clone.min_date, dr.min_date) |
| 680 self.assertEqual(clone.max_date, dr.max_date) | 666 self.assertEqual(clone.max_date, dr.max_date) |
| 681 | 667 |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 def testMerge(self): | 796 def testMerge(self): |
| 811 events = histogram.RelatedEventSet() | 797 events = histogram.RelatedEventSet() |
| 812 events.Add({ | 798 events.Add({ |
| 813 'stableId': '0.0', | 799 'stableId': '0.0', |
| 814 'title': 'foo', | 800 'title': 'foo', |
| 815 'start': 0, | 801 'start': 0, |
| 816 'duration': 1, | 802 'duration': 1, |
| 817 }) | 803 }) |
| 818 generic = histogram.GenericSet(['generic diagnostic']) | 804 generic = histogram.GenericSet(['generic diagnostic']) |
| 819 generic2 = histogram.GenericSet(['generic diagnostic 2']) | 805 generic2 = histogram.GenericSet(['generic diagnostic 2']) |
| 820 related_map = histogram.RelatedHistogramMap() | 806 date_range = histogram.DateRange(15e11) |
| 821 related_map.Set('a', histogram.Histogram('histogram', 'count')) | |
| 822 | 807 |
| 823 hist = histogram.Histogram('', 'count') | 808 hist = histogram.Histogram('', 'count') |
| 824 | 809 |
| 825 # When Histograms are merged, first an empty clone is created with an empty | 810 # When Histograms are merged, first an empty clone is created with an empty |
| 826 # DiagnosticMap. | 811 # DiagnosticMap. |
| 827 hist2 = histogram.Histogram('', 'count') | 812 hist2 = histogram.Histogram('', 'count') |
| 828 hist2.diagnostics['a'] = generic | 813 hist2.diagnostics['a'] = generic |
| 829 hist.diagnostics.Merge(hist2.diagnostics, hist, hist2) | 814 hist.diagnostics.Merge(hist2.diagnostics, hist, hist2) |
| 830 self.assertIs(generic, hist.diagnostics['a']) | 815 self.assertIs(generic, hist.diagnostics['a']) |
| 831 | 816 |
| 832 # Separate keys are not merged. | 817 # Separate keys are not merged. |
| 833 hist3 = histogram.Histogram('', 'count') | 818 hist3 = histogram.Histogram('', 'count') |
| 834 hist3.diagnostics['b'] = generic2 | 819 hist3.diagnostics['b'] = generic2 |
| 835 hist.diagnostics.Merge(hist3.diagnostics, hist, hist3) | 820 hist.diagnostics.Merge(hist3.diagnostics, hist, hist3) |
| 836 self.assertIs(generic, hist.diagnostics['a']) | 821 self.assertIs(generic, hist.diagnostics['a']) |
| 837 self.assertIs(generic2, hist.diagnostics['b']) | 822 self.assertIs(generic2, hist.diagnostics['b']) |
| 838 | 823 |
| 839 # Merging unmergeable diagnostics should produce an | 824 # Merging unmergeable diagnostics should produce an |
| 840 # UnmergeableDiagnosticSet. | 825 # UnmergeableDiagnosticSet. |
| 841 hist4 = histogram.Histogram('', 'count') | 826 hist4 = histogram.Histogram('', 'count') |
| 842 hist4.diagnostics['a'] = related_map | 827 hist4.diagnostics['a'] = date_range |
| 843 hist.diagnostics.Merge(hist4.diagnostics, hist, hist4) | 828 hist.diagnostics.Merge(hist4.diagnostics, hist, hist4) |
| 844 self.assertIsInstance( | 829 self.assertIsInstance( |
| 845 hist.diagnostics['a'], histogram.UnmergeableDiagnosticSet) | 830 hist.diagnostics['a'], histogram.UnmergeableDiagnosticSet) |
| 846 diagnostics = list(hist.diagnostics['a']) | 831 diagnostics = list(hist.diagnostics['a']) |
| 847 self.assertIs(generic, diagnostics[0]) | 832 self.assertIs(generic, diagnostics[0]) |
| 848 self.assertIs(related_map, diagnostics[1]) | 833 self.assertIs(date_range, diagnostics[1]) |
| 849 | 834 |
| 850 # UnmergeableDiagnosticSets are mergeable. | 835 # UnmergeableDiagnosticSets are mergeable. |
| 851 hist5 = histogram.Histogram('', 'count') | 836 hist5 = histogram.Histogram('', 'count') |
| 852 hist5.diagnostics['a'] = histogram.UnmergeableDiagnosticSet( | 837 hist5.diagnostics['a'] = histogram.UnmergeableDiagnosticSet( |
| 853 [events, generic2]) | 838 [events, generic2]) |
| 854 hist.diagnostics.Merge(hist5.diagnostics, hist, hist5) | 839 hist.diagnostics.Merge(hist5.diagnostics, hist, hist5) |
| 855 self.assertIsInstance( | 840 self.assertIsInstance( |
| 856 hist.diagnostics['a'], histogram.UnmergeableDiagnosticSet) | 841 hist.diagnostics['a'], histogram.UnmergeableDiagnosticSet) |
| 857 diagnostics = list(hist.diagnostics['a']) | 842 diagnostics = list(hist.diagnostics['a']) |
| 858 self.assertIs(generic, diagnostics[0]) | 843 self.assertIs(generic, diagnostics[0]) |
| 859 self.assertIs(related_map, diagnostics[1]) | 844 self.assertIs(date_range, diagnostics[1]) |
| 860 self.assertIs(events, diagnostics[2]) | 845 self.assertIs(events, diagnostics[2]) |
| 861 self.assertIs(generic2, diagnostics[3]) | 846 self.assertIs(generic2, diagnostics[3]) |
| OLD | NEW |