Index: tools/perf_expectations/tests/perf_expectations_unittest.py |
diff --git a/tools/perf_expectations/tests/perf_expectations_unittest.py b/tools/perf_expectations/tests/perf_expectations_unittest.py |
index 88b8251209458d71083d971f5f87fa33d0990469..ffb0e2314e217443f9237a05e7a8fc71525004fb 100755 |
--- a/tools/perf_expectations/tests/perf_expectations_unittest.py |
+++ b/tools/perf_expectations/tests/perf_expectations_unittest.py |
@@ -105,14 +105,28 @@ class PerfExpectationsUnittest(unittest.TestCase): |
for key in perf_data: |
if key == 'load': |
continue |
- if 'delta' not in perf_data[key] or 'var' not in perf_data[key]: |
- bad_keys.append(key) |
- if (not isinstance(perf_data[key]['delta'], int) and |
- not isinstance(perf_data[key]['delta'], float)): |
- bad_keys.append(key) |
- if (not isinstance(perf_data[key]['var'], int) and |
- not isinstance(perf_data[key]['var'], float)): |
- bad_keys.append(key) |
+ |
+ # First check if regress/improve is in the key's data. |
+ if 'regress' in perf_data[key]: |
+ if 'improve' not in perf_data[key]: |
+ bad_keys.append(key) |
+ if (not isinstance(perf_data[key]['regress'], int) and |
+ not isinstance(perf_data[key]['regress'], float)): |
+ bad_keys.append(key) |
+ if (not isinstance(perf_data[key]['improve'], int) and |
+ not isinstance(perf_data[key]['improve'], float)): |
+ bad_keys.append(key) |
+ else: |
+ # Otherwise check if delta/var is in the key's data. |
+ if 'delta' not in perf_data[key] or 'var' not in perf_data[key]: |
+ bad_keys.append(key) |
+ if (not isinstance(perf_data[key]['delta'], int) and |
+ not isinstance(perf_data[key]['delta'], float)): |
+ bad_keys.append(key) |
+ if (not isinstance(perf_data[key]['var'], int) and |
+ not isinstance(perf_data[key]['var'], float)): |
+ bad_keys.append(key) |
+ |
if len(bad_keys) > 0: |
msg = "perf expectations key values missing or invalid delta/var" |
raise Exception("%s: %s" % (msg, bad_keys)) |