aboutsummaryrefslogtreecommitdiff
path: root/crosperf
diff options
context:
space:
mode:
Diffstat (limited to 'crosperf')
-rw-r--r--crosperf/results_cache.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/crosperf/results_cache.py b/crosperf/results_cache.py
index a06a9b62..e9096563 100644
--- a/crosperf/results_cache.py
+++ b/crosperf/results_cache.py
@@ -310,10 +310,18 @@ class Result(object):
keyvals = {}
with open(filename, 'r') as f:
raw_dict = json.load(f)
+ if 'charts' in raw_dict:
+ raw_dict = raw_dict['charts']
for k, field_dict in raw_dict.iteritems():
- for item, value_dict in field_dict.iteritems():
+ for item in field_dict:
keyname = k + "__" + item
- result = value_dict['value']
+ value_dict = field_dict[item]
+ if 'value' in value_dict:
+ result = value_dict['value']
+ elif 'values' in value_dict:
+ result = value_dict['values'][0]
+ if len(value_dict['values']) > 1:
+ raise RuntimeError('Too many values returned for %s.' % item)
units = value_dict['units']
new_value = [result, units]
keyvals[keyname] = new_value