aboutsummaryrefslogtreecommitdiff
path: root/crosperf/results_cache.py
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@google.com>2015-09-08 16:28:57 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-09-10 17:05:06 -0700
commit9b852cfd9a602c5f80c8e621c696b796ce5177fd (patch)
tree63addd9a3cefaaabdc72b2668226480f84016125 /crosperf/results_cache.py
parentf63421f72bc7606ce8bfc04ce9acf25e3bf8c4c0 (diff)
downloadtoolchain-utils-9b852cfd9a602c5f80c8e621c696b796ce5177fd.tar.gz
Store machine description info in cache and json reports.
This CL updates the cache mechanism to store the machine spec info (the checksum string) in the cache, as well as storing the machine information in the json reports (to go into the dashboard archive). It also updates the json reports to always include the full set of result fields for a test, and it verifies that the old cache directory exists before trying to remove it. BUG=None TEST=Tested in my directory, with --cache_only=True, --rerun=True and --json_report=True Change-Id: Ib12bae4ca10141de0b972e3a7aeee83c7b59049b Reviewed-on: https://chrome-internal-review.googlesource.com/229765 Commit-Ready: Caroline Tice <cmtice@google.com> Tested-by: Caroline Tice <cmtice@google.com> Reviewed-by: Han Shen <shenhan@google.com>
Diffstat (limited to 'crosperf/results_cache.py')
-rw-r--r--crosperf/results_cache.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/crosperf/results_cache.py b/crosperf/results_cache.py
index 5d0f96e3..b42ec78f 100644
--- a/crosperf/results_cache.py
+++ b/crosperf/results_cache.py
@@ -36,7 +36,7 @@ class Result(object):
perf.report, etc. The key generation is handled by the ResultsCache class.
"""
- def __init__(self, logger, label, log_level, cmd_exec=None):
+ def __init__(self, logger, label, log_level, machine, cmd_exec=None):
self._chromeos_root = label.chromeos_root
self._logger = logger
self._ce = cmd_exec or command_executer.GetCommandExecuter(self._logger,
@@ -45,6 +45,7 @@ class Result(object):
self.label = label
self.results_dir = None
self.log_level = log_level
+ self.machine = machine
self.perf_data_files = []
self.perf_report_files = []
@@ -331,6 +332,7 @@ class Result(object):
pickle.dump(self.retval, f)
with open(os.path.join(temp_dir, CACHE_KEYS_FILE), "w") as f:
+ f.write("%s\n" % self.machine.checksum_string)
for k in key_list:
f.write(k)
f.write("\n")
@@ -366,22 +368,22 @@ class Result(object):
(temp_dir, cache_dir))
@classmethod
- def CreateFromRun(cls, logger, log_level, label, out, err, retval, show_all,
- test, suite="telemetry_Crosperf"):
+ def CreateFromRun(cls, logger, log_level, label, machine, out, err, retval,
+ show_all, test, suite="telemetry_Crosperf"):
if suite == "telemetry":
- result = TelemetryResult(logger, label, log_level)
+ result = TelemetryResult(logger, label, log_level, machine)
else:
- result = cls(logger, label, log_level)
+ result = cls(logger, label, log_level, machine)
result._PopulateFromRun(out, err, retval, show_all, test, suite)
return result
@classmethod
- def CreateFromCacheHit(cls, logger, log_level, label, cache_dir,
+ def CreateFromCacheHit(cls, logger, log_level, label, machine, cache_dir,
show_all, test, suite="telemetry_Crosperf"):
if suite == "telemetry":
- result = TelemetryResult(logger, label)
+ result = TelemetryResult(logger, label, log_level, machine)
else:
- result = cls(logger, label, log_level)
+ result = cls(logger, label, log_level, machine)
try:
result._PopulateFromCacheDir(cache_dir, show_all, test, suite)
@@ -393,8 +395,9 @@ class Result(object):
class TelemetryResult(Result):
- def __init__(self, logger, label, log_level, cmd_exec=None):
- super(TelemetryResult, self).__init__(logger, label, log_level, cmd_exec)
+ def __init__(self, logger, label, log_level, machine, cmd_exec=None):
+ super(TelemetryResult, self).__init__(logger, label, log_level, machine,
+ cmd_exec)
def _PopulateFromRun(self, out, err, retval, show_all, test, suite):
self.out = out
@@ -600,6 +603,7 @@ class ResultsCache(object):
result = Result.CreateFromCacheHit(self._logger,
self.log_level,
self.label,
+ self.machine,
cache_dir,
self.show_all,
self.test_name,