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

Side by Side Diff: gm/rebaseline_server/results.py

Issue 317783004: Revert "rebaseline_server: download actual-results.json files from GCS instead of SVN" (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 6 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 unified diff | Download patch
« no previous file with comments | « gm/rebaseline_server/fix_pythonpath.py ('k') | gm/rebaseline_server/server.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 """ 3 """
4 Copyright 2013 Google Inc. 4 Copyright 2013 Google Inc.
5 5
6 Use of this source code is governed by a BSD-style license that can be 6 Use of this source code is governed by a BSD-style license that can be
7 found in the LICENSE file. 7 found in the LICENSE file.
8 8
9 Repackage expected/actual GM results as needed by our HTML rebaseline viewer. 9 Repackage expected/actual GM results as needed by our HTML rebaseline viewer.
10 """ 10 """
11 11
12 # System-level imports 12 # System-level imports
13 import fnmatch 13 import fnmatch
14 import os 14 import os
15 import re 15 import re
16 import sys
16 17
17 # Imports from within Skia 18 # Imports from within Skia
18 import fix_pythonpath # must do this first 19 #
20 # We need to add the 'gm' directory, so that we can import gm_json.py within
21 # that directory. That script allows us to parse the actual-results.json file
22 # written out by the GM tool.
23 # Make sure that the 'gm' dir is in the PYTHONPATH, but add it at the *end*
24 # so any dirs that are already in the PYTHONPATH will be preferred.
25 PARENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
26 GM_DIRECTORY = os.path.dirname(PARENT_DIRECTORY)
27 if GM_DIRECTORY not in sys.path:
28 sys.path.append(GM_DIRECTORY)
19 import gm_json 29 import gm_json
20 import imagepairset 30 import imagepairset
21 31
22 # Keys used to link an image to a particular GM test. 32 # Keys used to link an image to a particular GM test.
23 # NOTE: Keep these in sync with static/constants.js 33 # NOTE: Keep these in sync with static/constants.js
24 VALUE__HEADER__SCHEMA_VERSION = 3 34 VALUE__HEADER__SCHEMA_VERSION = 3
25 KEY__EXPECTATIONS__BUGS = gm_json.JSONKEY_EXPECTEDRESULTS_BUGS 35 KEY__EXPECTATIONS__BUGS = gm_json.JSONKEY_EXPECTEDRESULTS_BUGS
26 KEY__EXPECTATIONS__IGNOREFAILURE = gm_json.JSONKEY_EXPECTEDRESULTS_IGNOREFAILURE 36 KEY__EXPECTATIONS__IGNOREFAILURE = gm_json.JSONKEY_EXPECTEDRESULTS_IGNOREFAILURE
27 KEY__EXPECTATIONS__REVIEWED = gm_json.JSONKEY_EXPECTEDRESULTS_REVIEWED 37 KEY__EXPECTATIONS__REVIEWED = gm_json.JSONKEY_EXPECTEDRESULTS_REVIEWED
28 KEY__EXTRACOLUMNS__BUILDER = 'builder' 38 KEY__EXTRACOLUMNS__BUILDER = 'builder'
(...skipping 11 matching lines...) Expand all
40 KEY__HEADER__TIME_UPDATED = 'timeUpdated' 50 KEY__HEADER__TIME_UPDATED = 'timeUpdated'
41 KEY__HEADER__TYPE = 'type' 51 KEY__HEADER__TYPE = 'type'
42 KEY__RESULT_TYPE__FAILED = gm_json.JSONKEY_ACTUALRESULTS_FAILED 52 KEY__RESULT_TYPE__FAILED = gm_json.JSONKEY_ACTUALRESULTS_FAILED
43 KEY__RESULT_TYPE__FAILUREIGNORED = gm_json.JSONKEY_ACTUALRESULTS_FAILUREIGNORED 53 KEY__RESULT_TYPE__FAILUREIGNORED = gm_json.JSONKEY_ACTUALRESULTS_FAILUREIGNORED
44 KEY__RESULT_TYPE__NOCOMPARISON = gm_json.JSONKEY_ACTUALRESULTS_NOCOMPARISON 54 KEY__RESULT_TYPE__NOCOMPARISON = gm_json.JSONKEY_ACTUALRESULTS_NOCOMPARISON
45 KEY__RESULT_TYPE__SUCCEEDED = gm_json.JSONKEY_ACTUALRESULTS_SUCCEEDED 55 KEY__RESULT_TYPE__SUCCEEDED = gm_json.JSONKEY_ACTUALRESULTS_SUCCEEDED
46 56
47 IMAGE_FILENAME_RE = re.compile(gm_json.IMAGE_FILENAME_PATTERN) 57 IMAGE_FILENAME_RE = re.compile(gm_json.IMAGE_FILENAME_PATTERN)
48 IMAGE_FILENAME_FORMATTER = '%s_%s.png' # pass in (testname, config) 58 IMAGE_FILENAME_FORMATTER = '%s_%s.png' # pass in (testname, config)
49 59
50 PARENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
51 DEFAULT_ACTUALS_DIR = '.gm-actuals' 60 DEFAULT_ACTUALS_DIR = '.gm-actuals'
52 DEFAULT_GENERATED_IMAGES_ROOT = os.path.join( 61 DEFAULT_GENERATED_IMAGES_ROOT = os.path.join(
53 PARENT_DIRECTORY, '.generated-images') 62 PARENT_DIRECTORY, '.generated-images')
54 63
55 # Define the default set of builders we will process expectations/actuals for. 64 # Define the default set of builders we will process expectations/actuals for.
56 # This allows us to ignore builders for which we don't maintain expectations 65 # This allows us to ignore builders for which we don't maintain expectations
57 # (trybots, Valgrind, ASAN, TSAN), and avoid problems like 66 # (trybots, Valgrind, ASAN, TSAN), and avoid problems like
58 # https://code.google.com/p/skia/issues/detail?id=2036 ('rebaseline_server 67 # https://code.google.com/p/skia/issues/detail?id=2036 ('rebaseline_server
59 # produces error when trying to add baselines for ASAN/TSAN builders') 68 # produces error when trying to add baselines for ASAN/TSAN builders')
60 DEFAULT_MATCH_BUILDERS_PATTERN_LIST = ['.*'] 69 DEFAULT_MATCH_BUILDERS_PATTERN_LIST = ['.*']
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 311
303 @staticmethod 312 @staticmethod
304 def get_multilevel(input_dict, *keys): 313 def get_multilevel(input_dict, *keys):
305 """ Returns input_dict[key1][key2][...], or None if any key is not found. 314 """ Returns input_dict[key1][key2][...], or None if any key is not found.
306 """ 315 """
307 for key in keys: 316 for key in keys:
308 if input_dict == None: 317 if input_dict == None:
309 return None 318 return None
310 input_dict = input_dict.get(key, None) 319 input_dict = input_dict.get(key, None)
311 return input_dict 320 return input_dict
OLDNEW
« no previous file with comments | « gm/rebaseline_server/fix_pythonpath.py ('k') | gm/rebaseline_server/server.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698