Beispiel #1
0
 def testBatch(self):
   hs = histogram_set.HistogramSet([
       self._CreateHistogram(
           'measurement%d' % (i / 10), ['story%d' % (i % 10)])
       for i in range(100)])
   monolith = add_reserved_diagnostics.AddReservedDiagnostics(
       hs.AsDicts(), {})
   self.assertEqual(1, len(monolith))
   self.assertGreater(len(monolith[0]), 100)
   max_size = len(monolith[0]) / 10
   results = add_reserved_diagnostics.AddReservedDiagnostics(
       hs.AsDicts(), {}, max_size)
   self.assertGreater(len(results), 10)
   for part in results:
     self.assertGreater(max_size, len(part))
Beispiel #2
0
  def testAddReservedDiagnostics_SummaryAddedToMerged(self):
    hs = histogram_set.HistogramSet([
        self._CreateHistogram('foo1', stories=['foo1']),
        self._CreateHistogram('foo1', stories=['foo1']),
        self._CreateHistogram('bar', stories=['bar1']),
        self._CreateHistogram('bar', stories=['bar2']),
        self._CreateHistogram('blah')])

    new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
        hs.AsDicts(), {'benchmarks': 'bar'})[0]

    new_hs = histogram_set.HistogramSet()
    new_hs.ImportDicts(json.loads(new_hs_json))

    expected = [
        [u'foo1', [], [u'foo1']],
        [u'bar', [], [u'bar1']],
        [u'blah', [], []],
        [u'bar', [u'name'], [u'bar1', u'bar2']],
        [u'foo1', [u'name'], [u'foo1']],
        [u'bar', [], [u'bar2']],
    ]

    for h in new_hs:
      is_summary = sorted(
          list(h.diagnostics.get(reserved_infos.SUMMARY_KEYS.name, [])))
      stories = sorted(list(h.diagnostics.get(reserved_infos.STORIES.name, [])))
      self.assertIn([h.name, is_summary, stories], expected)
      expected.remove([h.name, is_summary, stories])

    self.assertEqual(0, len(expected))
Beispiel #3
0
  def testAddReservedDiagnostics_InvalidDiagnostic_Raises(self):
    hs = histogram_set.HistogramSet([
        self._CreateHistogram('foo')])

    with self.assertRaises(AssertionError):
      add_reserved_diagnostics.AddReservedDiagnostics(
          hs.AsDicts(), {'SOME INVALID DIAGNOSTIC': 'bar'})
Beispiel #4
0
  def testAddReservedDiagnostics_WithTags_SomeIgnored(self):
    hs = histogram_set.HistogramSet([
        self._CreateHistogram(
            'foo', stories=['story1'], tags=['t:1', 'ignored']),
        self._CreateHistogram(
            'foo', stories=['story1'], tags=['t:1']),
    ])

    new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
        hs.AsDicts(), {'benchmarks': 'bar'})[0]

    new_hs = histogram_set.HistogramSet()
    new_hs.ImportDicts(json.loads(new_hs_json))

    expected = [
        [u'foo', [u'name', u'storyTags'], [u'story1'], [u'ignored', u't:1']],
        [u'foo', [], [u'story1'], [u'ignored', u't:1']],
        [u'foo', [u'name'], [u'story1'], [u'ignored', u't:1']],
    ]

    for h in new_hs:
      is_summary = sorted(
          list(h.diagnostics.get(reserved_infos.SUMMARY_KEYS.name, [])))
      stories = sorted(list(h.diagnostics[reserved_infos.STORIES.name]))
      tags = sorted(list(h.diagnostics[reserved_infos.STORY_TAGS.name]))
      self.assertIn([h.name, is_summary, stories, tags], expected)
      expected.remove([h.name, is_summary, stories, tags])

    self.assertEqual(0, len(expected))
Beispiel #5
0
    def testAddReservedDiagnostics_TagmapsMerged(self):
        hs1 = histogram_set.HistogramSet([self._CreateHistogram('foo1')])
        hs1.AddSharedDiagnosticToAllHistograms(
            reserved_infos.TAG_MAP.name,
            tag_map.TagMap({'tagsToStoryNames': {
                'foo1': ['bar1']
            }}))
        hs2 = histogram_set.HistogramSet([self._CreateHistogram('foo1')])
        hs2.AddSharedDiagnosticToAllHistograms(
            reserved_infos.TAG_MAP.name,
            tag_map.TagMap({'tagsToStoryNames': {
                'foo1': ['bar2']
            }}))

        hs = histogram_set.HistogramSet()
        hs.ImportDicts(hs1.AsDicts())
        hs.ImportDicts(hs2.AsDicts())

        new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
            hs.AsDicts(), {'benchmarks': 'bar'})

        new_hs = histogram_set.HistogramSet()
        new_hs.ImportDicts(json.loads(new_hs_json))

        d = [h.diagnostics[reserved_infos.TAG_MAP.name] for h in new_hs]
        self.assertEqual(d[0], d[1])
 def testEmpty(self):
     hs = histogram_set.HistogramSet()
     self.assertEqual(
         0,
         len(
             add_reserved_diagnostics.AddReservedDiagnostics(
                 hs.AsDicts(), {})))
Beispiel #7
0
  def testAddReservedDiagnostics_OmitsSummariesIfHadFailures(self):
    hs = histogram_set.HistogramSet([
        self._CreateHistogram('foo', ['bar'], had_failures=True)])

    new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
        hs.AsDicts(), {'benchmarks': 'bar'})[0]

    new_hs = histogram_set.HistogramSet()
    new_hs.ImportDicts(json.loads(new_hs_json))

    self.assertEqual(len(new_hs), 1)

    h = new_hs.GetFirstHistogram()
    self.assertEqual(h.name, 'foo')
    self.assertNotIn(reserved_infos.SUMMARY_KEYS.name, h.diagnostics)
    self.assertNotIn(reserved_infos.HAD_FAILURES.name, h.diagnostics)
Beispiel #8
0
  def testAddReservedDiagnostics_NoStories_Unmerged(self):
    hs = histogram_set.HistogramSet([
        self._CreateHistogram('foo'),
        self._CreateHistogram('foo'),
        self._CreateHistogram('bar')])

    new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
        hs.AsDicts(), {'benchmarks': 'bar'})[0]

    new_hs = histogram_set.HistogramSet()
    new_hs.ImportDicts(json.loads(new_hs_json))

    for h in new_hs:
      self.assertNotIn(reserved_infos.SUMMARY_KEYS.name, h.diagnostics)

    self.assertEqual(2, len(new_hs.GetHistogramsNamed('foo')))
    self.assertEqual(1, len(new_hs.GetHistogramsNamed('bar')))
Beispiel #9
0
  def testAddReservedDiagnostics_DiagnosticsAdded(self):
    hs = histogram_set.HistogramSet([
        self._CreateHistogram('foo1', stories=['foo1']),
        self._CreateHistogram('foo1', stories=['foo1']),
        self._CreateHistogram('bar', stories=['bar1']),
        self._CreateHistogram('bar', stories=['bar2']),
        self._CreateHistogram('blah')])

    new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
        hs.AsDicts(), {'benchmarks': 'bar'})[0]

    new_hs = histogram_set.HistogramSet()
    new_hs.ImportDicts(json.loads(new_hs_json))

    for h in new_hs:
      self.assertIn('benchmarks', h.diagnostics)
      benchmarks = list(h.diagnostics['benchmarks'])
      self.assertEqual(['bar'], benchmarks)
    def testAddReservedDiagnostics_Repeats_Merged(self):
        hs = histogram_set.HistogramSet([
            self._CreateHistogram('foo1', stories=['foo1']),
            self._CreateHistogram('foo1', stories=['foo1']),
            self._CreateHistogram('foo2', stories=['foo2'])
        ])

        new_hs_json = add_reserved_diagnostics.AddReservedDiagnostics(
            hs.AsDicts(), {'benchmarks': 'bar'})

        new_hs = histogram_set.HistogramSet()
        new_hs.ImportDicts(json.loads(new_hs_json))

        expected = [['foo1', True], ['foo1', False], ['foo2', True],
                    ['foo2', False]]

        for h in new_hs:
            is_summary = reserved_infos.IS_SUMMARY.name in h.diagnostics
            self.assertIn([h.name, is_summary], expected)
            expected.remove([h.name, is_summary])