コード例 #1
0
    def testBasic(self):
        formatter = html_output_formatter.HtmlOutputFormatter(
            self._output, self._benchmark_metadata, False)
        results = page_test_results.PageTestResults(
            benchmark_metadata=self._benchmark_metadata)
        results.telemetry_info.benchmark_start_epoch = 1501773200

        results.WillRunPage(self._story_set[0])
        v0 = scalar.ScalarValue(
            results.current_page,
            'foo',
            'seconds',
            3,
            improvement_direction=improvement_direction.DOWN)
        results.AddValue(v0)
        results.DidRunPage(self._story_set[0])
        results.PopulateHistogramSet()

        formatter.Format(results)
        html = self._output.getvalue()
        dicts = render_histograms_viewer.ReadExistingResults(html)
        histograms = histogram_set.HistogramSet()
        histograms.ImportDicts(dicts)

        self.assertEqual(len(histograms), 1)
        self.assertEqual(histograms.GetFirstHistogram().name, 'foo')
コード例 #2
0
ファイル: processor_test.py プロジェクト: Abhik1998/chromium
  def testHtmlOutputAppendResults(self):
    self.SerializeIntermediateResults([])

    processor.main([
        '--output-format', 'html',
        '--output-dir', self.output_dir,
        '--intermediate-dir', self.intermediate_dir,
        '--results-label', 'label1',
    ])

    processor.main([
        '--output-format', 'html',
        '--output-dir', self.output_dir,
        '--intermediate-dir', self.intermediate_dir,
        '--results-label', 'label2',
    ])

    with open(os.path.join(
        self.output_dir, html_output.OUTPUT_FILENAME)) as f:
      results = render_histograms_viewer.ReadExistingResults(f.read())

    out_histograms = histogram_set.HistogramSet()
    out_histograms.ImportDicts(results)
    diag_values = [list(v) for v in  out_histograms.shared_diagnostics]
    self.assertIn(['label1'], diag_values)
    self.assertIn(['label2'], diag_values)
コード例 #3
0
    def testBasic(self):
        value0 = {'foo': 0}
        value0_json = json.dumps(value0, separators=(',', ':'))

        render_histograms_viewer.RenderHistogramsViewer([], self.output_stream,
                                                        False)
        self.output_stream.seek(0)
        self.assertCountEqual([],
                              render_histograms_viewer.ReadExistingResults(
                                  self.output_stream.read()))
        render_histograms_viewer.RenderHistogramsViewer([value0],
                                                        self.output_stream,
                                                        False)
        self.output_stream.seek(0)
        self.assertCountEqual([value0],
                              render_histograms_viewer.ReadExistingResults(
                                  self.output_stream.read()))
        self.assertIn(value0_json, self.GetOutputFileContent())
コード例 #4
0
    def testBasicWithSeparatorOften(self):
        data_list = [{'foo': i} for i in range(11)]
        render_histograms_viewer.RenderHistogramsViewer([], self.output_stream,
                                                        False)
        self.output_stream.seek(0)
        self.assertCountEqual([],
                              render_histograms_viewer.ReadExistingResults(
                                  self.output_stream.read()))
        # Write payload, forcing a new chunk after ever single item
        render_histograms_viewer.RenderHistogramsViewer(
            data_list, self.output_stream, False, max_chunk_size_hint_bytes=1)
        self.output_stream.seek(0)
        self.assertCountEqual(
            data_list,
            render_histograms_viewer.ReadExistingResults(
                self.output_stream.read()))

        for data in data_list:
            data_json = json.dumps(data, separators=(',', ':'))
            self.assertIn(data_json, self.GetOutputFileContent())
コード例 #5
0
ファイル: processor_test.py プロジェクト: tt20050510/chromium
    def testHtmlOutput(self):
        hist_file = os.path.join(self.output_dir,
                                 compute_metrics.HISTOGRAM_DICTS_FILE)
        with open(hist_file, 'w') as f:
            json.dump([histogram.Histogram('a', 'unitless').AsDict()], f)

        self.SerializeIntermediateResults(
            test_results=[
                testing.TestResult(
                    'benchmark/story',
                    output_artifacts={
                        'histogram_dicts.json': testing.Artifact(hist_file)
                    },
                ),
            ],
            diagnostics={
                'benchmarks': ['benchmark'],
                'osNames': ['linux'],
                'documentationUrls': [['documentation', 'url']],
            },
            start_time='2009-02-13T23:31:30.987000Z',
        )

        processor.main([
            '--output-format',
            'html',
            '--output-dir',
            self.output_dir,
            '--intermediate-dir',
            self.intermediate_dir,
            '--results-label',
            'label',
        ])

        with open(os.path.join(self.output_dir,
                               html_output.OUTPUT_FILENAME)) as f:
            results = render_histograms_viewer.ReadExistingResults(f.read())

        out_histograms = histogram_set.HistogramSet()
        out_histograms.ImportDicts(results)
        self.assertEqual(len(out_histograms), 1)
        self.assertEqual(out_histograms.GetFirstHistogram().name, 'a')
        self.assertEqual(out_histograms.GetFirstHistogram().unit, 'unitless')

        diag_values = [list(v) for v in out_histograms.shared_diagnostics]
        self.assertEqual(len(diag_values), 4)
        self.assertIn(['benchmark'], diag_values)
        self.assertIn(['linux'], diag_values)
        self.assertIn([['documentation', 'url']], diag_values)
        self.assertIn(['label'], diag_values)
コード例 #6
0
    def testHtmlOutput(self):
        self.SerializeIntermediateResults(
            testing.TestResult(
                'benchmark/story',
                output_artifacts=[
                    self.CreateHistogramsArtifact(
                        histogram.Histogram('a', 'unitless')),
                    self.CreateDiagnosticsArtifact(
                        benchmarks=['benchmark'],
                        osNames=['linux'],
                        documentationUrls=[['documentation', 'url']]),
                ],
                start_time='2009-02-13T23:31:30.987000Z',
            ), )

        processor.main([
            '--output-format',
            'html',
            '--output-dir',
            self.output_dir,
            '--intermediate-dir',
            self.intermediate_dir,
            '--results-label',
            'label',
        ])

        with open(os.path.join(self.output_dir,
                               html_output.OUTPUT_FILENAME)) as f:
            results = render_histograms_viewer.ReadExistingResults(f.read())

        out_histograms = histogram_set.HistogramSet()
        out_histograms.ImportDicts(results)
        self.assertEqual(len(out_histograms), 1)

        hist = out_histograms.GetFirstHistogram()
        self.assertEqual(hist.name, 'a')
        self.assertEqual(hist.unit, 'unitless')

        self.assertEqual(hist.diagnostics['benchmarks'],
                         generic_set.GenericSet(['benchmark']))
        self.assertEqual(hist.diagnostics['osNames'],
                         generic_set.GenericSet(['linux']))
        self.assertEqual(hist.diagnostics['documentationUrls'],
                         generic_set.GenericSet([['documentation', 'url']]))
        self.assertEqual(hist.diagnostics['labels'],
                         generic_set.GenericSet(['label']))
        self.assertEqual(hist.diagnostics['benchmarkStart'],
                         date_range.DateRange(1234567890987))
コード例 #7
0
    def testHtmlOutputAppendResults(self):
        self.SerializeIntermediateResults(
            testing.TestResult(
                'benchmark/story',
                output_artifacts=[
                    self.CreateHtmlTraceArtifact(),
                ],
                tags=['tbmv2:sampleMetric'],
            ), )

        processor.main([
            '--is-unittest',
            '--output-format',
            'html',
            '--output-dir',
            self.output_dir,
            '--intermediate-dir',
            self.intermediate_dir,
            '--results-label',
            'label1',
        ])

        processor.main([
            '--is-unittest',
            '--output-format',
            'html',
            '--output-dir',
            self.output_dir,
            '--intermediate-dir',
            self.intermediate_dir,
            '--results-label',
            'label2',
        ])

        with open(os.path.join(self.output_dir,
                               html_output.OUTPUT_FILENAME)) as f:
            results = render_histograms_viewer.ReadExistingResults(f.read())

        out_histograms = histogram_set.HistogramSet()
        out_histograms.ImportDicts(results)
        sample_histograms = out_histograms.GetHistogramsNamed(
            SAMPLE_HISTOGRAM_NAME)
        self.assertEqual(len(sample_histograms), 2)

        expected_labels = set(['label1', 'label2'])
        observed_labels = set(label for hist in sample_histograms
                              for label in hist.diagnostics['labels'])
        self.assertEqual(observed_labels, expected_labels)
コード例 #8
0
    def testBasic(self):
        formatter = html_output_formatter.HtmlOutputFormatter(
            self._output, reset_results=False)
        results = page_test_results.PageTestResults()

        results.WillRunPage(self._story_set[0])
        results.AddMeasurement('foo', 'seconds', 3)
        results.DidRunPage(self._story_set[0])
        results.PopulateHistogramSet()

        formatter.Format(results)
        html = self._output.getvalue()
        dicts = render_histograms_viewer.ReadExistingResults(html)
        histograms = histogram_set.HistogramSet()
        histograms.ImportDicts(dicts)

        self.assertEqual(len(histograms), 1)
        self.assertEqual(histograms.GetFirstHistogram().name, 'foo')
コード例 #9
0
    def testHtmlOutputAppendResults(self):
        self.SerializeIntermediateResults(
            testing.TestResult(
                'benchmark/story',
                output_artifacts=[
                    self.CreateHistogramsArtifact(
                        histogram.Histogram('a', 'unitless')),
                ],
            ), )

        processor.main([
            '--output-format',
            'html',
            '--output-dir',
            self.output_dir,
            '--intermediate-dir',
            self.intermediate_dir,
            '--results-label',
            'label1',
        ])

        processor.main([
            '--output-format',
            'html',
            '--output-dir',
            self.output_dir,
            '--intermediate-dir',
            self.intermediate_dir,
            '--results-label',
            'label2',
        ])

        with open(os.path.join(self.output_dir,
                               html_output.OUTPUT_FILENAME)) as f:
            results = render_histograms_viewer.ReadExistingResults(f.read())

        out_histograms = histogram_set.HistogramSet()
        out_histograms.ImportDicts(results)
        self.assertEqual(len(out_histograms), 2)

        expected_labels = set(['label1', 'label2'])
        observed_labels = set(label for hist in out_histograms
                              for label in hist.diagnostics['labels'])
        self.assertEqual(observed_labels, expected_labels)
コード例 #10
0
    def testExistingResultsReset(self):
        value0 = {'foo': 0}
        value0_json = json.dumps(value0, separators=(',', ':'))

        value1 = {'bar': 1}
        value1_json = json.dumps(value1, separators=(',', ':'))

        render_histograms_viewer.RenderHistogramsViewer([value0],
                                                        self.output_stream,
                                                        False)
        render_histograms_viewer.RenderHistogramsViewer([value1],
                                                        self.output_stream,
                                                        True)
        self.output_stream.seek(0)
        self.assertEquals(
            sorted([value1]),
            sorted(
                render_histograms_viewer.ReadExistingResults(
                    self.output_stream.read())))
        self.assertNotIn(value0_json, self.GetOutputFileContent())
        self.assertIn(value1_json, self.GetOutputFileContent())