Chromium Code Reviews| Index: tracing/tracing/metrics/compare_samples.py |
| diff --git a/tracing/tracing/metrics/compare_samples.py b/tracing/tracing/metrics/compare_samples.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0f7f76ce78d680144c932960f7d70765e9c26bc1 |
| --- /dev/null |
| +++ b/tracing/tracing/metrics/compare_samples.py |
| @@ -0,0 +1,37 @@ |
| +# Copyright 2016 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. |
| + |
| +import tempfile |
| + |
| +import tracing_project |
| +import vinn |
| + |
| +FORMAT_TO_METHOD = { |
| + 'chartjson': 'compareCharts', |
| + 'valueset': 'compareValuesets', |
| + 'buildbot': 'compareBuildbotOutputs' |
| +} |
| + |
| +def CompareSamples(sample_a, sample_b, metric, data_format='chartjson'): |
|
dtu
2016/09/15 21:31:56
Please docstring :)
RobertoCN
2016/09/19 20:07:43
Done.
|
| + method = FORMAT_TO_METHOD[data_format] |
| + project = tracing_project.TracingProject() |
| + temp_out = tempfile.TemporaryFile() |
| + |
| + cmd = """ |
| + HTMLImportsLoader.loadHTML('/tracing/metrics/compare_samples.html'); |
| + var results = tr.metrics.BisectComparison.%s('%s', '%s', '%s'); |
| + console.log(JSON.stringify(results)); |
| + """ % (method, sample_a, sample_b, metric) |
| + try: |
| + res = vinn.RunJsString( |
| + cmd, source_paths=list(project.source_paths), |
| + stdout=temp_out) |
|
dtu
2016/09/15 21:31:56
I think the default behavior is to stick the stdou
RobertoCN
2016/09/19 20:07:43
Done.
|
| + except: |
| + temp_out.seek(0) |
| + print temp_out.read() # Stack trace gets dumped here. |
| + raise |
| + temp_out.seek(0) |
| + return res.returncode, temp_out.read() |
|
dtu
2016/09/15 21:31:56
If someone is using this as a library, this return
RobertoCN
2016/09/19 20:07:43
Done.
|
| + |
| + |