diff options
-rw-r--r-- | tools/perf_expectations/perf_expectations.json | 2 | ||||
-rwxr-xr-x | tools/perf_expectations/tests/perf_expectations_unittest.py | 30 |
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)) |