Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(601)

Unified Diff: gm/rebaseline_server/compare_to_expectations.py

Issue 287623006: rebaseline_server: apply ignored-tests.txt within rebaseline_server, not just on the bots (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: make the code ignore those failures like it's supposed to Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gm/rebaseline_server/results.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/rebaseline_server/compare_to_expectations.py
diff --git a/gm/rebaseline_server/compare_to_expectations.py b/gm/rebaseline_server/compare_to_expectations.py
index 0f3c352ddaeb04c9242a0fb5a65c047a12668ec7..e9677bdcb88912a3f0f85d0be24fcc764244a265 100755
--- a/gm/rebaseline_server/compare_to_expectations.py
+++ b/gm/rebaseline_server/compare_to_expectations.py
@@ -48,6 +48,7 @@ EXPECTATION_FIELDS_PASSED_THRU_VERBATIM = [
results.KEY__EXPECTATIONS__REVIEWED,
]
DEFAULT_EXPECTATIONS_DIR = os.path.join(TRUNK_DIRECTORY, 'expectations', 'gm')
+DEFAULT_IGNORE_FAILURES_FILE = 'ignored-tests.txt'
IMAGEPAIR_SET_DESCRIPTIONS = ('expected image', 'actual image')
@@ -64,12 +65,15 @@ class ExpectationComparisons(results.BaseComparisons):
def __init__(self, actuals_root=results.DEFAULT_ACTUALS_DIR,
expected_root=DEFAULT_EXPECTATIONS_DIR,
+ ignore_failures_file=DEFAULT_IGNORE_FAILURES_FILE,
generated_images_root=results.DEFAULT_GENERATED_IMAGES_ROOT,
diff_base_url=None, builder_regex_list=None):
"""
Args:
actuals_root: root directory containing all actual-results.json files
expected_root: root directory containing all expected-results.json files
+ ignore_failures_file: if a file with this name is found within
+ expected_root, ignore failures for any tests listed in the file
generated_images_root: directory within which to create all pixel diffs;
if this directory does not yet exist, it will be created
diff_base_url: base URL within which the client should look for diff
@@ -87,6 +91,11 @@ class ExpectationComparisons(results.BaseComparisons):
download_actuals.create_filepath_url(generated_images_root))
self._actuals_root = actuals_root
self._expected_root = expected_root
+ self._ignore_failures_on_these_tests = []
+ if ignore_failures_file:
+ self._ignore_failures_on_these_tests = (
+ ExpectationComparisons._read_noncomment_lines(
+ os.path.join(expected_root, ignore_failures_file)))
self._load_actual_and_expected()
self._timestamp = int(time.time())
logging.info('Results complete; took %d seconds.' %
@@ -316,10 +325,11 @@ class ExpectationComparisons(results.BaseComparisons):
# categories recorded within the gm_actuals AT ALL, and
# instead evaluate the result_type ourselves based on what
# we see in expectations vs actual checksum?
- # See related http://skbug.com/2514 ('rebaseline_server: apply
- # ignored-tests.txt within rebaseline_server, not just on the bots')
if expected_image_relative_url == actual_image_relative_url:
updated_result_type = results.KEY__RESULT_TYPE__SUCCEEDED
+ elif ((result_type == results.KEY__RESULT_TYPE__FAILED) and
+ (test in self._ignore_failures_on_these_tests)):
+ updated_result_type = results.KEY__RESULT_TYPE__FAILUREIGNORED
else:
updated_result_type = result_type
extra_columns_dict = {
@@ -362,6 +372,11 @@ def main():
help='Directory containing all expected-result JSON files; defaults to '
'\'%(default)s\' .')
parser.add_argument(
+ '--ignore-failures-file', default=DEFAULT_IGNORE_FAILURES_FILE,
+ help='If a file with this name is found within the EXPECTATIONS dir, '
+ 'ignore failures for any tests listed in the file; defaults to '
+ '\'%(default)s\' .')
+ parser.add_argument(
'--outfile', required=True,
help='File to write result summary into, in JSON format.')
parser.add_argument(
@@ -375,9 +390,11 @@ def main():
help='Directory within which to download images and generate diffs; '
'defaults to \'%(default)s\' .')
args = parser.parse_args()
- results_obj = ExpectationComparisons(actuals_root=args.actuals,
- expected_root=args.expectations,
- generated_images_root=args.workdir)
+ results_obj = ExpectationComparisons(
+ actuals_root=args.actuals,
+ expected_root=args.expectations,
+ ignore_failures_file=args.ignore_failures_file,
+ generated_images_root=args.workdir)
gm_json.WriteToFile(
results_obj.get_packaged_results_of_type(results_type=args.results),
args.outfile)
« no previous file with comments | « no previous file | gm/rebaseline_server/results.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698