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

Side by Side Diff: tracing/tracing/value/histogram_set_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 unittest 5 import unittest
6 6
7 from tracing.value import histogram 7 from tracing.value import histogram
8 from tracing.value import histogram_set 8 from tracing.value import histogram_set
9 from tracing.value.diagnostics import diagnostic_ref 9 from tracing.value.diagnostics import diagnostic_ref
10 10
11 11
12 class HistogramSetUnittest(unittest.TestCase): 12 class HistogramSetUnittest(unittest.TestCase):
13 13
14 def testRelatedHistogramMap(self):
15 a = histogram.Histogram('a', 'unitless')
16 b = histogram.Histogram('b', 'unitless')
17 c = histogram.Histogram('c', 'unitless')
18 rhm = histogram.RelatedHistogramMap()
19 rhm.Set('y', b)
20 rhm.Set('z', c)
21 a.diagnostics['rhm'] = rhm
22
23 # Don't serialize c yet.
24 hists = histogram_set.HistogramSet([a, b])
25 hists2 = histogram_set.HistogramSet()
26 hists2.ImportDicts(hists.AsDicts())
27 hists2.ResolveRelatedHistograms()
28 a2 = hists2.GetHistogramsNamed('a')
29 self.assertEqual(len(a2), 1)
30 a2 = a2[0]
31 self.assertEqual(a2.guid, a.guid)
32 self.assertIsInstance(a2, histogram.Histogram)
33 self.assertIsNot(a2, a)
34 b2 = hists2.GetHistogramsNamed('b')
35 self.assertEqual(len(b2), 1)
36 b2 = b2[0]
37 self.assertEqual(b2.guid, b.guid)
38 self.assertIsInstance(b2, histogram.Histogram)
39 self.assertIsNot(b2, b)
40 rhm2 = a2.diagnostics['rhm']
41 self.assertIsInstance(rhm2, histogram.RelatedHistogramMap)
42 self.assertEqual(len(rhm2), 2)
43
44 # Assert that b and c are in a2's RelatedHistogramMap, rhm2.
45 self.assertIs(b2, rhm2.Get('y'))
46 self.assertIsInstance(rhm2.Get('z'), histogram.HistogramRef)
47
48 # Now serialize c and add it to hists2.
49 hists2.ImportDicts([c.AsDict()])
50 hists2.ResolveRelatedHistograms()
51
52 c2 = hists2.GetHistogramsNamed('c')
53 self.assertEqual(len(c2), 1)
54 c2 = c2[0]
55 self.assertEqual(c2.guid, c.guid)
56 self.assertIsNot(c2, c)
57
58 self.assertIs(b2, rhm2.Get('y'))
59 self.assertIs(c2, rhm2.Get('z'))
60
61 def testGetSharedDiagnosticsOfType(self): 14 def testGetSharedDiagnosticsOfType(self):
62 d0 = histogram.GenericSet(['foo']) 15 d0 = histogram.GenericSet(['foo'])
63 d1 = histogram.DateRange(0) 16 d1 = histogram.DateRange(0)
64 hs = histogram_set.HistogramSet() 17 hs = histogram_set.HistogramSet()
65 hs.AddSharedDiagnostic('generic', d0) 18 hs.AddSharedDiagnostic('generic', d0)
66 hs.AddSharedDiagnostic('generic', d1) 19 hs.AddSharedDiagnostic('generic', d1)
67 diagnostics = hs.GetSharedDiagnosticsOfType(histogram.GenericSet) 20 diagnostics = hs.GetSharedDiagnosticsOfType(histogram.GenericSet)
68 self.assertEqual(len(diagnostics), 1) 21 self.assertEqual(len(diagnostics), 1)
69 self.assertIsInstance(diagnostics[0], histogram.GenericSet) 22 self.assertIsInstance(diagnostics[0], histogram.GenericSet)
70 23
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 diag0 = histogram.GenericSet(['shared0']) 93 diag0 = histogram.GenericSet(['shared0'])
141 diag1 = histogram.GenericSet(['shared1']) 94 diag1 = histogram.GenericSet(['shared1'])
142 hists.AddSharedDiagnostic('generic0', diag0) 95 hists.AddSharedDiagnostic('generic0', diag0)
143 96
144 guid0 = diag0.guid 97 guid0 = diag0.guid
145 guid1 = diag1.guid 98 guid1 = diag1.guid
146 99
147 hists.ReplaceSharedDiagnostic(guid0, diag1) 100 hists.ReplaceSharedDiagnostic(guid0, diag1)
148 101
149 self.assertIsNotNone(hists.LookupDiagnostic(guid1)) 102 self.assertIsNotNone(hists.LookupDiagnostic(guid1))
OLDNEW
« no previous file with comments | « tracing/tracing/value/histogram_set_test.html ('k') | tracing/tracing/value/histogram_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698