aboutsummaryrefslogtreecommitdiff
path: root/crosperf/experiment_runner.py
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@google.com>2015-08-25 12:53:38 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-08-26 02:10:56 +0000
commitef4ca8a8cfe05ec09447896db42fb220d07834f8 (patch)
tree9cee7390eab577bc8fd11b7a36bb87f886af5ec1 /crosperf/experiment_runner.py
parentbb04def1e86a0949a1b1898e705e56c84c400dd9 (diff)
downloadtoolchain-utils-ef4ca8a8cfe05ec09447896db42fb220d07834f8.tar.gz
Add json report archiving.
This CL adds a new output, in json format, for archiving test results. It also adds a new flag, --json_report, to crosperf to tell it to generate the json output file in the usual results directory. The json output is always in addition to the other reports that Crosperf generates. This CL also make some minor changes to the tool that maintains the telemetry default results file, so it can be used by the json report generator. BUG=None TEST=Tested Crosperf with & without new flag; it did what it should. Change-Id: Id0e476716ceee208d33e6f9427ea95235fbf11d4 Reviewed-on: https://chrome-internal-review.googlesource.com/228325 Reviewed-by: Han Shen <shenhan@google.com> Commit-Queue: Caroline Tice <cmtice@google.com> Tested-by: Caroline Tice <cmtice@google.com>
Diffstat (limited to 'crosperf/experiment_runner.py')
-rw-r--r--crosperf/experiment_runner.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/crosperf/experiment_runner.py b/crosperf/experiment_runner.py
index 90c07e77..0d7a0262 100644
--- a/crosperf/experiment_runner.py
+++ b/crosperf/experiment_runner.py
@@ -25,6 +25,7 @@ import config
from experiment_status import ExperimentStatus
from results_report import HTMLResultsReport
from results_report import TextResultsReport
+from results_report import JSONResultsReport
class ExperimentRunner(object):
@@ -33,11 +34,13 @@ class ExperimentRunner(object):
STATUS_TIME_DELAY = 30
THREAD_MONITOR_DELAY = 2
- def __init__(self, experiment, using_schedv2=False, log=None, cmd_exec=None):
+ def __init__(self, experiment, json_report, using_schedv2=False, log=None,
+ cmd_exec=None):
self._experiment = experiment
self.l = log or logger.GetLogger(experiment.log_dir)
self._ce = cmd_exec or command_executer.GetCommandExecuter(self.l)
self._terminated = False
+ self.json_report = json_report
self.locked_machines = []
if experiment.log_level != "verbose":
self.STATUS_TIME_DELAY = 10
@@ -211,6 +214,8 @@ class ExperimentRunner(object):
self.l.LogOutput("Storing results report in %s." % results_directory)
results_table_path = os.path.join(results_directory, "results.html")
report = HTMLResultsReport(experiment).GetReport()
+ if self.json_report:
+ JSONResultsReport(experiment).GetReport(results_directory)
FileUtils().WriteFile(results_table_path, report)
self.l.LogOutput("Storing email message body in %s." % results_directory)