block_page_measurement_results.py revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4import os
5
6from telemetry.results import page_measurement_results
7
8class BlockPageMeasurementResults(
9    page_measurement_results.PageMeasurementResults):
10  def __init__(self, output_stream):
11    super(BlockPageMeasurementResults, self).__init__(output_stream)
12
13  def DidMeasurePage(self):
14    try:
15      values = self.page_specific_values_for_current_page
16      if not values:
17        # Do not output if no results were added on this page.
18        return
19      lines = ['name: %s' % values[0].page.display_name]
20      for value in sorted(values, key=lambda x: x.name):
21        lines.append('%s (%s): %s' %
22                     (value.name,
23                      value.units,
24                      value.GetRepresentativeString()))
25      for line in lines:
26        self._output_stream.write(line)
27        self._output_stream.write(os.linesep)
28      self._output_stream.write(os.linesep)
29      self._output_stream.flush()
30    finally:
31      super(BlockPageMeasurementResults, self).DidMeasurePage()
32