From d3ee991e4f9ac29350ceb112012123c8d9d766a8 Mon Sep 17 00:00:00 2001 From: "rmcilroy@chromium.org" Date: Mon, 7 Oct 2013 11:47:00 +0000 Subject: [PATCH] Telemetry: Check in PrintPerfResult that the flattened list is also non-zero. BUG=304335 Review URL: https://codereview.chromium.org/25999004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227271 0039d316-1c4b-4281-b951-d872f2087c98 --- build/util/lib/common/perf_tests_results_helper.py | 9 +++++---- .../telemetry/page/buildbot_page_measurement_results.py | 5 +++-- tools/telemetry/telemetry/page/perf_tests_helper.py | 2 ++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build/util/lib/common/perf_tests_results_helper.py b/build/util/lib/common/perf_tests_results_helper.py index cec4f6950b1edb..9012f18cb45e5c 100644 --- a/build/util/lib/common/perf_tests_results_helper.py +++ b/build/util/lib/common/perf_tests_results_helper.py @@ -25,12 +25,12 @@ def _EscapePerfResult(s): return re.sub('[\:|=/#&,]', '_', s) -def _Flatten(values): +def FlattenList(values): """Returns a simple list without sub-lists.""" ret = [] for entry in values: if isinstance(entry, list): - ret.extend(_Flatten(entry)) + ret.extend(FlattenList(entry)) else: ret.append(entry) return ret @@ -120,9 +120,10 @@ def PrintPerfResult(measurement, trace, values, units, result_type == perf_result_data_type.DEFAULT or result_type == perf_result_data_type.INFORMATIONAL): assert isinstance(values, list) - assert len(values) assert '/' not in measurement - value, avg, sd = _MeanAndStdDevFromList(_Flatten(values)) + flattened_values = FlattenList(values) + assert len(flattened_values) + value, avg, sd = _MeanAndStdDevFromList(flattened_values) output = '%s%s: %s%s%s %s' % ( RESULT_TYPES[result_type], _EscapePerfResult(measurement), diff --git a/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py b/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py index 434b8147567b77..73a58aa732cd7d 100644 --- a/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py +++ b/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py @@ -89,10 +89,11 @@ def PrintSummary(self): continue name_value_map[name].append(value) for name in unique_pages: - if not len(name_value_map[name]): + values = perf_tests_helper.FlattenList(name_value_map[name]) + if not len(values): continue self._PrintPerfResult(measurement + '_by_url', name, - name_value_map[name], units, by_name_data_type) + values, units, by_name_data_type) # If there were no page failures, print the average data. # For histograms, we don't print the average data, only the _by_name, diff --git a/tools/telemetry/telemetry/page/perf_tests_helper.py b/tools/telemetry/telemetry/page/perf_tests_helper.py index 651d157eecef63..cf5744e32c0d07 100644 --- a/tools/telemetry/telemetry/page/perf_tests_helper.py +++ b/tools/telemetry/telemetry/page/perf_tests_helper.py @@ -10,6 +10,8 @@ import perf_tests_results_helper # pylint: disable=F0401 +FlattenList = \ + perf_tests_results_helper.FlattenList GeomMeanAndStdDevFromHistogram = \ perf_tests_results_helper.GeomMeanAndStdDevFromHistogram PrintPerfResult = \