From 3bb42ef0d6fbdf04fc5609c4902072c82db3aee6 Mon Sep 17 00:00:00 2001 From: "phoglund@webrtc.org" Date: Mon, 10 Dec 2012 10:08:00 +0000 Subject: [PATCH] Made e2e audio quality test write its results to perf. The https://chromereviews.googleplex.com/5573026/ patch will mark the test step as perf-printing - this cl will make the test actually print perf lines. TEST=Ran locally. Review URL: https://webrtc-codereview.appspot.com/933036 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3252 4adac7df-926f-26a2-2b94-8c16560cd09d --- tools/e2e_quality/audio/perf | 1 + tools/e2e_quality/audio/run_audio_test.py | 9 ++++++- tools/perf/__init__.py | 0 tools/perf/perf | 1 + tools/perf/perf_utils.py | 31 +++++++++++++++++++++++ 5 files changed, 41 insertions(+), 1 deletion(-) create mode 120000 tools/e2e_quality/audio/perf create mode 100644 tools/perf/__init__.py create mode 120000 tools/perf/perf create mode 100644 tools/perf/perf_utils.py diff --git a/tools/e2e_quality/audio/perf b/tools/e2e_quality/audio/perf new file mode 120000 index 000000000..5a5ba365c --- /dev/null +++ b/tools/e2e_quality/audio/perf @@ -0,0 +1 @@ +../../perf \ No newline at end of file diff --git a/tools/e2e_quality/audio/run_audio_test.py b/tools/e2e_quality/audio/run_audio_test.py index 9e52df3e8..da780144f 100755 --- a/tools/e2e_quality/audio/run_audio_test.py +++ b/tools/e2e_quality/audio/run_audio_test.py @@ -26,6 +26,8 @@ import sys import threading import time +import perf.perf_utils + def main(argv): parser = optparse.OptionParser() usage = 'Usage: %prog [options]' @@ -117,7 +119,12 @@ def main(argv): return proc.returncode # The list should only contain one item. - print ''.join(re.findall(options.regexp, output)) + value = ''.join(re.findall(options.regexp, output)) + + perf.perf_utils.PrintPerfResult(graph_name='audio_e2e_score', + series_name='e2e score', + data_point=value, + units='MOS') # Assuming we run PESQ. return 0 diff --git a/tools/perf/__init__.py b/tools/perf/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tools/perf/perf b/tools/perf/perf new file mode 120000 index 000000000..5a5ba365c --- /dev/null +++ b/tools/perf/perf @@ -0,0 +1 @@ +../../perf \ No newline at end of file diff --git a/tools/perf/perf_utils.py b/tools/perf/perf_utils.py new file mode 100644 index 000000000..77eda1e7a --- /dev/null +++ b/tools/perf/perf_utils.py @@ -0,0 +1,31 @@ +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Copied from /src/chrome/test/pyautolib/pyauto_utils.py in Chromium. + +import sys + +def PrintPerfResult(graph_name, series_name, data_point, units, + show_on_waterfall=False): + """Prints a line to stdout that is specially formatted for the perf bots. + + Args: + graph_name: String name for the graph on which to plot the data. + series_name: String name for the series (line on the graph) associated with + the data. This is also the string displayed on the waterfall + if |show_on_waterfall| is True. + data_point: Numeric data value to plot on the graph for the current build. + This can be a single value or an array of values. If an array, + the graph will plot the average of the values, along with error + bars. + units: The string unit of measurement for the given |data_point|. + show_on_waterfall: Whether or not to display this result directly on the + buildbot waterfall itself (in the buildbot step running + this test on the waterfall page, not the stdio page). + """ + waterfall_indicator = ['', '*'][show_on_waterfall] + print '%sRESULT %s: %s= %s %s' % ( + waterfall_indicator, graph_name, series_name, + str(data_point).replace(' ', ''), units) + sys.stdout.flush() \ No newline at end of file