Index: build/android/pylib/perf_tests_helper.py |
diff --git a/build/android/pylib/perf_tests_helper.py b/build/android/pylib/perf_tests_helper.py |
index 0952beb274e26fdeb59880d3efd189373a0565b3..193442ede9dd1df3783defe5fbe1cac45856404e 100644 |
--- a/build/android/pylib/perf_tests_helper.py |
+++ b/build/android/pylib/perf_tests_helper.py |
@@ -5,6 +5,12 @@ |
import re |
+# Valid values of result type. |
+RESULT_TYPES = {'unimportant': 'RESULT ', |
+ 'default': '*RESULT ', |
+ 'informational': ''} |
+ |
+ |
def _EscapePerfResult(s): |
"""Escapes |s| for use in a perf result.""" |
# Colons (:) and equal signs (=) are not allowed, and we chose an arbitrary |
@@ -12,7 +18,7 @@ def _EscapePerfResult(s): |
return re.sub(':|=', '_', s[:40]) |
-def PrintPerfResult(measurement, trace, values, units, important=True, |
+def PrintPerfResult(measurement, trace, values, units, result_type='default', |
print_to_stdout=True): |
"""Prints numerical data to stdout in the format required by perf tests. |
@@ -24,13 +30,16 @@ def PrintPerfResult(measurement, trace, values, units, important=True, |
trace: A description of the particular data point, e.g. "reference". |
values: A list of numeric measured values. |
units: A description of the units of measure, e.g. "bytes". |
- important: If True, the output line will be specially marked, to notify the |
- post-processor. |
+ result_type: A tri-state that accepts values of ['unimportant', 'default', |
+ 'informational']. 'unimportant' prints RESULT, 'default' prints *RESULT |
+ and 'informational' prints nothing. |
+ print_to_stdout: If True, prints the output in stdout instead of returning |
+ the output to caller. |
Returns: |
String of the formated perf result. |
""" |
- important_marker = '*' if important else '' |
+ assert result_type in RESULT_TYPES, 'result type: %s is invalid' % result_type |
assert isinstance(values, list) |
assert len(values) |
@@ -45,12 +54,18 @@ def PrintPerfResult(measurement, trace, values, units, important=True, |
else: |
value = values[0] |
- output = '%sRESULT %s: %s= %s %s' % (important_marker, |
- _EscapePerfResult(measurement), |
- _EscapePerfResult(trace), |
- value, units) |
+ trace_name = _EscapePerfResult(trace) |
+ output = '%s%s: %s%s%s %s' % ( |
+ RESULT_TYPES[result_type], |
+ _EscapePerfResult(measurement), |
+ trace_name, |
+ # Do not show equal sign if the trace is empty. Usually it happens when |
+ # measurement is enough clear to describe the result. |
+ '= ' if trace_name else '', |
+ value, |
+ units) |
if avg: |
- output += '\nAvg %s: %d%s' % (measurement, avg, units) |
+ output += '\nAvg %s: %f%s' % (measurement, avg, units) |
if print_to_stdout: |
print output |
return output |