Example #1
0
    def testReadGraphJsonValueFromCAS(self):
        self.SetOutputCASContents(
            ['base_perftests', 'perf_resultst.json'],
            {'chart': {
                'traces': {
                    'trace': ['126444.869721', '0.0']
                }
            }})

        quest = read_value.ReadValue(
            results_filename='base_perftests/perf_results.json',
            results_path=['base_perftests', 'perf_resultst.json'],
            chart='chart',
            trace_or_story='trace')
        execution = quest.Start(
            None, None, None, {
                'cas_instance': 'cas instance',
                'digest': {
                    'hash': 'root hash',
                    'size_bytes': 123,
                },
            })
        execution.Poll()

        self.assertReadValueSuccess(execution)
        self.assertEqual(execution.result_values, (126444.869721, ))
Example #2
0
    def testReadHistogramsJsonValueSummaryNoHistName(self):
        samples = []
        hists = []
        for i in range(10):
            hist = histogram_module.Histogram('hist', 'count')
            hist.AddSample(0)
            hist.AddSample(1)
            hist.AddSample(2)
            hist.diagnostics[reserved_infos.STORIES.name] = (
                generic_set.GenericSet(['story%d' % i]))
            hist.diagnostics[reserved_infos.STORY_TAGS.name] = (
                generic_set.GenericSet(['group:label1']))
            hists.append(hist)
            samples.extend(hist.sample_values)

        histograms = histogram_set.HistogramSet(hists)
        histograms.AddSharedDiagnosticToAllHistograms(
            reserved_infos.STORY_TAGS.name,
            generic_set.GenericSet(['group:label']))
        self.SetOutputFileContents(histograms.AsDicts())
        quest = read_value.ReadValue(results_filename='chartjson-output.json')
        execution = quest.Start(None, 'server', 'output hash')
        execution.Poll()
        self.assertReadValueSuccess(execution)
        self.assertEqual(execution.result_values, ())
        self.assertRetrievedOutputJson()
Example #3
0
 def testReadHistogramsJsonValueMultipleHistograms(self):
     hist = histogram_module.Histogram('hist', 'count')
     hist.AddSample(0)
     hist.AddSample(1)
     hist.AddSample(2)
     hist2 = histogram_module.Histogram('hist', 'count')
     hist2.AddSample(0)
     hist2.AddSample(1)
     hist2.AddSample(2)
     hist3 = histogram_module.Histogram('some_other_histogram', 'count')
     hist3.AddSample(3)
     hist3.AddSample(4)
     hist3.AddSample(5)
     histograms = histogram_set.HistogramSet([hist, hist2, hist3])
     histograms.AddSharedDiagnosticToAllHistograms(
         reserved_infos.STORY_TAGS.name,
         generic_set.GenericSet(['group:label']))
     histograms.AddSharedDiagnosticToAllHistograms(
         reserved_infos.STORIES.name, generic_set.GenericSet(['story']))
     self.SetOutputFileContents(histograms.AsDicts())
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  metric=hist.name,
                                  grouping_label='label',
                                  trace_or_story='story')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueSuccess(execution)
     self.assertEqual(execution.result_values, (0, 1, 2, 0, 1, 2))
     self.assertRetrievedOutputJson()
Example #4
0
 def testWindows(self):
     arguments = dict(_BASE_ARGUMENTS_HISTOGRAMS)
     arguments['dimensions'] = [{'key': 'os', 'value': 'Windows-10'}]
     quest = read_value.ReadValue.FromDict(arguments)
     expected = read_value.ReadValue(
         results_filename='speedometer\\perf_results.json')
     self.assertEqual(quest, expected)
Example #5
0
 def testReadHistogramsJsonValueWithMissingFile(self):
     self.SetOutputFileContentsRaw('{"files": {}}')
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  metric='metric',
                                  grouping_label='test')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
    def testScalar(self, retrieve):
        retrieve.side_effect = (
            {
                'files': {
                    'chartjson-output.json': {
                        'h': 'chartjson hash'
                    }
                }
            },
            json.dumps({
                'charts': {
                    'metric': {
                        'test': {
                            'type': 'scalar',
                            'value': 2.5,
                        }
                    }
                }
            }),
        )

        execution = read_value.ReadValue('metric', 'test').Start('output hash')
        execution.Poll()

        self.assertEqual(execution.result_values, (2.5, ))
    def testReadValueWithNoTest(self, retrieve):
        retrieve.side_effect = (
            {
                'files': {
                    'chartjson-output.json': {
                        'h': 'chartjson hash'
                    }
                }
            },
            json.dumps({
                'charts': {
                    'metric': {
                        'summary': {
                            'type': 'list_of_scalar_values',
                            'values': [0, 1, 2],
                        }
                    }
                }
            }),
        )

        execution = read_value.ReadValue('metric', None).Start('output hash')
        execution.Poll()

        self.assertTrue(execution.completed)
        self.assertFalse(execution.failed)
        self.assertEqual(execution.result_values, (0, 1, 2))
        self.assertEqual(execution.result_arguments, {})

        expected_calls = [
            mock.call('output hash'),
            mock.call('chartjson hash')
        ]
        self.assertEqual(retrieve.mock_calls, expected_calls)
Example #8
0
 def testReadGraphJsonValueWithMissingTrace(self):
     self.SetOutputFileContents({'chart': {'traces': {}}})
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  chart='chart',
                                  trace_or_story='test')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueError(execution, 'ReadValueTraceNotFound')
Example #9
0
 def testReadHistogramsJsonValueEmptyHistogramSet(self):
     self.SetOutputFileContents([])
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  metric='metric',
                                  grouping_label='test')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueError(execution, 'ReadValueNotFound')
Example #10
0
 def testReadHistogramsJsonValueWithNoValues(self):
     hist = histogram_module.Histogram('hist', 'count')
     histograms = histogram_set.HistogramSet([hist])
     self.SetOutputFileContents(histograms.AsDicts())
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  metric='chart')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueError(execution, 'ReadValueNotFound')
Example #11
0
 def testReadHistogramsProtoValueEmptyHistogramSet(self):
     hist_set = histogram_proto.Pb2().HistogramSet()
     self.SetOutputFileContentsProto(hist_set.SerializeToString())
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  metric='metric',
                                  grouping_label='test')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueError(execution, 'ReadValueNotFound')
Example #12
0
 def testReadGraphJsonValueWithMissingFile(self):
     self.SetOutputFileContentsRaw('{"files": {}}')
     quest = read_value.ReadValue(
         results_filename='base_perftests/perf_results.json',
         chart='metric',
         trace_or_story='test')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueError(execution, 'ReadValueNoFile')
Example #13
0
 def testGraphJsonMissingChart(self):
     arguments = dict(_BASE_ARGUMENTS_GRAPH_JSON)
     del arguments['chart']
     quest = read_value.ReadValue.FromDict(arguments)
     expected = read_value.ReadValue(
         results_filename='base_perftests/perf_results.json',
         chart=None,
         trace_or_story='trace_name')
     self.assertEqual(quest, expected)
Example #14
0
 def testArgumentsWithNoChart(self):
     arguments = dict(_BASE_ARGUMENTS_HISTOGRAMS)
     arguments['story'] = 'trace_name'
     quest = read_value.ReadValue.FromDict(arguments)
     expected = read_value.ReadValue(
         results_filename='speedometer/perf_results.json',
         metric=None,
         grouping_label=None,
         trace_or_story='trace_name',
         statistic=None)
     self.assertEqual(quest, expected)
Example #15
0
 def testGraphJsonMissingTrace(self):
     arguments = dict(_BASE_ARGUMENTS_GRAPH_JSON)
     del arguments['trace']
     quest = read_value.ReadValue.FromDict(arguments)
     expected = read_value.ReadValue(
         results_filename='base_perftests/perf_results.json',
         results_path=['base_perftests', 'perf_results.json'],
         chart='chart_name',
         metric='chart_name',
         trace_or_story=None)
     self.assertEqual(quest, expected)
Example #16
0
 def testArgumentsWithStoryInsteadOfTrace(self):
     arguments = dict(_BASE_ARGUMENTS_HISTOGRAMS)
     arguments['chart'] = 'timeToFirst'
     arguments['grouping_label'] = 'pcv1-cold'
     arguments['story'] = 'trace_name'
     arguments['statistic'] = 'avg'
     quest = read_value.ReadValue.FromDict(arguments)
     expected = read_value.ReadValue(
         results_filename='speedometer/perf_results.json',
         metric='timeToFirst',
         grouping_label='pcv1-cold',
         trace_or_story='trace_name',
         statistic='avg',
         chart='timeToFirst')
     self.assertEqual(quest, expected)
Example #17
0
    def testReadHistogramsProtoValue(self):
        hist_set = histogram_proto.Pb2().HistogramSet()
        hist = hist_set.histograms.add()
        hist.name = 'hist'
        hist.unit.unit = histogram_proto.Pb2().COUNT
        hist.all_bins[0].bin_count = 1
        map1 = hist.all_bins[0].diagnostic_maps.add().diagnostic_map
        map1['test'].generic_set.values.append('metric')

        self.SetOutputFileContentsProto(hist_set.SerializeToString())
        quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                     metric='metric',
                                     grouping_label='test')
        execution = quest.Start(None, 'server', 'output hash')
        execution.Poll()
        self.assertReadValueSuccess(execution)
Example #18
0
 def testReadHistogramsTraceUrls(self):
     hist = histogram_module.Histogram('hist', 'count')
     hist.AddSample(0)
     hist.diagnostics[reserved_infos.TRACE_URLS.name] = (
         generic_set.GenericSet(['trace_url1', 'trace_url2']))
     hist2 = histogram_module.Histogram('hist2', 'count')
     hist2.diagnostics[reserved_infos.TRACE_URLS.name] = (
         generic_set.GenericSet(['trace_url3']))
     hist3 = histogram_module.Histogram('hist3', 'count')
     hist3.diagnostics[reserved_infos.TRACE_URLS.name] = (
         generic_set.GenericSet(['trace_url2']))
     histograms = histogram_set.HistogramSet([hist, hist2, hist3])
     histograms.AddSharedDiagnosticToAllHistograms(
         reserved_infos.STORIES.name, generic_set.GenericSet(['story']))
     self.SetOutputFileContents(histograms.AsDicts())
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  results_path=['chartjson-output.json'],
                                  metric=hist.name)
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueSuccess(execution)
     self.assertEqual(execution.result_values, (0, ))
     self.assertEqual(
         {
             'completed':
             True,
             'exception':
             None,
             'details': [
                 {
                     'key': 'trace',
                     'value': 'story',
                     'url': 'trace_url1',
                 },
                 {
                     'key': 'trace',
                     'value': 'story',
                     'url': 'trace_url2',
                 },
                 {
                     'key': 'trace',
                     'value': 'story',
                     'url': 'trace_url3',
                 },
             ],
         }, execution.AsDict())
     self.assertRetrievedOutputJson()
Example #19
0
    def testReadGraphJsonValue(self):
        self.SetOutputFileContents(
            {'chart': {
                'traces': {
                    'trace': ['126444.869721', '0.0']
                }
            }})

        quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                     chart='chart',
                                     trace_or_story='trace')
        execution = quest.Start(None, 'server', 'output hash')
        execution.Poll()

        self.assertReadValueSuccess(execution)
        self.assertEqual(execution.result_values, (126444.869721, ))
        self.assertRetrievedOutputJson()
Example #20
0
 def testReadHistogramsJsonValueWithNoStory(self):
     hist = histogram_module.Histogram('hist', 'count')
     hist.AddSample(0)
     hist.AddSample(1)
     hist.AddSample(2)
     histograms = histogram_set.HistogramSet([hist])
     histograms.AddSharedDiagnosticToAllHistograms(
         reserved_infos.STORIES.name, generic_set.GenericSet(['story']))
     self.SetOutputFileContents(histograms.AsDicts())
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  metric=hist.name,
                                  trace_or_story='story')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueSuccess(execution)
     self.assertEqual(execution.result_values, (0, 1, 2))
     self.assertRetrievedOutputJson()
Example #21
0
 def testReadGraphJsonValueWithMissingFileFromCAS(self):
     self.SetOutputFileContentsRaw('{"files": {}}')
     self.SetOutputCASContents(['base_perftests', 'missing.json'], {})
     quest = read_value.ReadValue(
         results_filename='base_perftests/perf_results.json',
         results_path=['base_perftests', 'chartjson-output.json'],
         chart='metric',
         trace_or_story='test')
     execution = quest.Start(
         None, None, None, {
             'cas_instance': 'cas instance',
             'digest': {
                 'hash': 'root hash',
                 'size_bytes': 123,
             },
         })
     execution.Poll()
     self.assertReadValueError(execution, 'ReadValueNoFile')
Example #22
0
    def testReadHistogramsJsonValueStatisticNoSamples(self):
        hist = histogram_module.Histogram('hist', 'count')
        histograms = histogram_set.HistogramSet([hist])
        histograms.AddSharedDiagnosticToAllHistograms(
            reserved_infos.STORY_TAGS.name,
            generic_set.GenericSet(['group:label']))
        histograms.AddSharedDiagnosticToAllHistograms(
            reserved_infos.STORIES.name, generic_set.GenericSet(['story']))
        self.SetOutputFileContents(histograms.AsDicts())
        quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                     metric=hist.name,
                                     grouping_label='label',
                                     trace_or_story='story',
                                     statistic='avg')
        execution = quest.Start(None, 'server', 'output hash')
        execution.Poll()

        self.assertReadValueError(execution, 'ReadValueNoValues')
Example #23
0
 def testReadHistogramsJsonValueHistogramNameNeedsEscape(self):
     hist = histogram_module.Histogram('hist:name:has:colons', 'count')
     hist.AddSample(0)
     hist.AddSample(1)
     hist.AddSample(2)
     histograms = histogram_set.HistogramSet([hist])
     histograms.AddSharedDiagnosticToAllHistograms(
         reserved_infos.STORY_TAGS.name,
         generic_set.GenericSet(['group:label']))
     histograms.AddSharedDiagnosticToAllHistograms(
         reserved_infos.STORIES.name,
         generic_set.GenericSet(['story:has:colons:too']))
     self.SetOutputFileContents(histograms.AsDicts())
     quest = read_value.ReadValue(results_filename='chartjson-output.json',
                                  results_path=['chartjson-output.json'],
                                  metric=hist.name,
                                  grouping_label='label',
                                  trace_or_story='story:has:colons:too')
     execution = quest.Start(None, 'server', 'output hash')
     execution.Poll()
     self.assertReadValueSuccess(execution)
     self.assertEqual(execution.result_values, (0, 1, 2))
     self.assertRetrievedOutputJson()
    def testHistogramWithLargeSample(self, retrieve):
        retrieve.side_effect = (
            {
                'files': {
                    'chartjson-output.json': {
                        'h': 'chartjson hash'
                    }
                }
            },
            json.dumps({
                'charts': {
                    'metric': {
                        'test': {
                            'type':
                            'histogram',
                            'buckets': [
                                {
                                    'low': 0,
                                    'count': 20000
                                },
                                {
                                    'low': 0,
                                    'high': 2,
                                    'count': 30000
                                },
                            ],
                        }
                    }
                }
            }),
        )

        execution = read_value.ReadValue('metric', 'test').Start('output hash')
        execution.Poll()

        self.assertEqual(execution.result_values,
                         tuple([0] * 4000 + [1] * 6000))
    def testHistogram(self, retrieve):
        retrieve.side_effect = (
            {
                'files': {
                    'chartjson-output.json': {
                        'h': 'chartjson hash'
                    }
                }
            },
            json.dumps({
                'charts': {
                    'metric': {
                        'test': {
                            'type':
                            'histogram',
                            'buckets': [
                                {
                                    'low': 0,
                                    'count': 2
                                },
                                {
                                    'low': 0,
                                    'high': 2,
                                    'count': 3
                                },
                            ],
                        }
                    }
                }
            }),
        )

        execution = read_value.ReadValue('metric', 'test').Start('output hash')
        execution.Poll()

        self.assertEqual(execution.result_values, (0, 0, 1, 1, 1))
Example #26
0
 def testMinimumArguments(self):
     quest = read_value.ReadValue.FromDict(_BASE_ARGUMENTS_HISTOGRAMS)
     expected = read_value.ReadValue(
         results_filename='speedometer/perf_results.json')
     self.assertEqual(quest, expected)
Example #27
0
 def testMetricPropertyReturnsChart(self):
     quest = read_value.ReadValue(results_filename='somefile.json',
                                  chart='somechart',
                                  trace_or_story='trace')
     self.assertEqual(quest.metric, 'somechart')