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

Side by Side Diff: tracing/tracing/value/histogram_unittest.py

Issue 3009553002: Refactor Histogram relationship diagnostics. (Closed)
Patch Set: Created 3 years, 3 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 # 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
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
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])
OLDNEW
« no previous file with comments | « tracing/tracing/value/histogram_set_unittest.py ('k') | tracing/tracing/value/merge_histograms_cmdline.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698