summaryrefslogtreecommitdiffstats
path: root/tools/perf_expectations/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf_expectations/tests')
-rwxr-xr-xtools/perf_expectations/tests/perf_expectations_unittest.py30
1 files changed, 22 insertions, 8 deletions
diff --git a/tools/perf_expectations/tests/perf_expectations_unittest.py b/tools/perf_expectations/tests/perf_expectations_unittest.py
index 88b8251..ffb0e23 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))