summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/perf_expectations/perf_expectations.json2
-rwxr-xr-xtools/perf_expectations/tests/perf_expectations_unittest.py30
2 files changed, 23 insertions, 9 deletions
diff --git a/tools/perf_expectations/perf_expectations.json b/tools/perf_expectations/perf_expectations.json
index ecfb922..797cf439 100644
--- a/tools/perf_expectations/perf_expectations.json
+++ b/tools/perf_expectations/perf_expectations.json
@@ -16,7 +16,7 @@
"mac-release-10.5/morejs/times/t": {"delta": -35, "var": 80},
"mac-release-10.5/moz/times/t": {"delta": 80, "var": 80},
"mac-release-10.5/startup/warm/t": {"delta": 30, "var": 20},
- "mac-release-10.6/dhtml/times/t": {"delta": -12, "var": 14},
+ "mac-release-10.6/dhtml/times/t": {"improve": -33, "regress": 9},
"mac-release-10.6/intl1/times/t": {"delta": 600, "var": 110},
"mac-release-10.6/intl2/times/t": {"delta": 60, "var": 60},
"mac-release-10.6/morejs/times/t": {"delta": -40, "var": 50},
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))