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))
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))
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'})
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))
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(), {})))
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)
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')))
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])