OLD | NEW |
---|---|
(Empty) | |
1 #!/usr/bin/python | |
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
3 # Use of this source code is governed by a BSD-style license that can be | |
4 # found in the LICENSE file. | |
5 | |
6 """Collection of methods for running perf tests on the legacy browser.""" | |
7 | |
8 import re | |
9 | |
Nirnimesh
2011/10/25 01:12:37
nit: need another blank line here
michaelbai
2011/10/25 16:23:59
Done.
| |
10 def _EscapePerfResult(s): | |
11 """Escapes |s| for use in a perf result.""" | |
12 # Colons (:) and equal signs (=) are not allowed, and we chose an arbitrary | |
13 # limit of 40 chars. | |
14 return re.sub(':|=', '_', s[:40]) | |
15 | |
16 | |
17 def PrintPerfResult(measurement, trace, values, units, important=True, | |
18 print_to_stdout=True): | |
19 """Prints numerical data to stdout in the format required by perf tests. | |
20 | |
21 The string args may be empty but they must not contain any colons (:) or | |
22 equals signs (=). | |
23 | |
24 Args: | |
25 measurement: A description of the quantity being measured, e.g. "vm_peak". | |
26 trace: A description of the particular data point, e.g. "reference". | |
27 values: A list of numeric measured values. | |
28 units: A description of the units of measure, e.g. "bytes". | |
29 important: If True, the output line will be specially marked, to notify the | |
30 post-processor. | |
31 | |
32 Returns: | |
33 String of the formated perf result. | |
34 """ | |
35 important_marker = '' | |
Nirnimesh
2011/10/25 01:12:37
lines 35-37 can be rewritten as:
important_marker
michaelbai
2011/10/25 16:23:59
Done.
| |
36 if important: | |
37 important_marker = '*' | |
38 | |
39 assert isinstance(values, list) | |
40 assert len(values) | |
41 assert '/' not in measurement | |
42 avg = None | |
43 if len(values) > 1: | |
44 try: | |
45 value = '[%s]' % ','.join([str(v) for v in values]) | |
46 avg = sum([float(v) for v in values]) / len(values) | |
47 except ValueError: | |
48 value = ", ".join(values) | |
49 else: | |
50 value = values[0] | |
51 | |
52 output = '%sRESULT %s: %s= %s %s' % (important_marker, | |
53 _EscapePerfResult(measurement), | |
54 _EscapePerfResult(trace), | |
55 value, units) | |
56 if avg: | |
57 output += '\nAvg %s: %d%s' % (measurement, avg, units) | |
58 if print_to_stdout: | |
59 print output | |
60 return output | |
OLD | NEW |