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

Unified Diff: gm/rebaseline_server/server.py

Issue 193023002: rebaseline_server: add actual_repo and actual_revision command line options (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 9 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 | tools/svn.py » ('j') | tools/svn.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/rebaseline_server/server.py
diff --git a/gm/rebaseline_server/server.py b/gm/rebaseline_server/server.py
index bbce2d0a7d5bf40a8fe805d8e6af604e0cbbc3ea..fc090d25e8f16daaf90b467dc04137186aae2339 100755
--- a/gm/rebaseline_server/server.py
+++ b/gm/rebaseline_server/server.py
@@ -43,7 +43,6 @@ import svn
import imagepairset
import results
-ACTUALS_SVN_REPO = 'http://skia-autogen.googlecode.com/svn/gm-actual'
PATHSPLIT_RE = re.compile('/([^/]+)/(.+)')
EXPECTATIONS_DIR = os.path.join(TRUNK_DIRECTORY, 'expectations', 'gm')
GENERATED_IMAGES_ROOT = os.path.join(PARENT_DIRECTORY, 'static',
@@ -75,6 +74,8 @@ KEY__HEADER__TIME_UPDATED = 'timeUpdated'
KEY__HEADER__TYPE = 'type'
DEFAULT_ACTUALS_DIR = '.gm-actuals'
+DEFAULT_ACTUALS_REPO_REVISION = 'HEAD'
+DEFAULT_ACTUALS_REPO_URL = 'http://skia-autogen.googlecode.com/svn/gm-actual'
DEFAULT_PORT = 8888
# How often (in seconds) clients should reload while waiting for initial
@@ -143,12 +144,16 @@ class Server(object):
def __init__(self,
actuals_dir=DEFAULT_ACTUALS_DIR,
+ actuals_repo_revision=DEFAULT_ACTUALS_REPO_REVISION,
+ actuals_repo_url=DEFAULT_ACTUALS_REPO_URL,
port=DEFAULT_PORT, export=False, editable=True,
reload_seconds=0):
"""
Args:
actuals_dir: directory under which we will check out the latest actual
GM results
+ actuals_repo_revision: revision of actual-results.json files to process
+ actuals_repo_url: SVN repo to download actual-results.json files from
port: which TCP port to listen on for HTTP requests
export: whether to allow HTTP clients on other hosts to access this server
editable: whether HTTP clients are allowed to submit new baselines
@@ -156,12 +161,14 @@ class Server(object):
if 0, don't check for new results at all
"""
self._actuals_dir = actuals_dir
+ self._actuals_repo_revision = actuals_repo_revision
+ self._actuals_repo_url = actuals_repo_url
self._port = port
self._export = export
self._editable = editable
self._reload_seconds = reload_seconds
self._actuals_repo = _create_svn_checkout(
- dir_path=actuals_dir, repo_url=ACTUALS_SVN_REPO)
+ dir_path=actuals_dir, repo_url=actuals_repo_url)
# Reentrant lock that must be held whenever updating EITHER of:
# 1. self._results
@@ -209,9 +216,11 @@ class Server(object):
with self.results_rlock:
if invalidate:
self._results = None
- logging.info('Updating actual GM results in %s from SVN repo %s ...' % (
- self._actuals_dir, ACTUALS_SVN_REPO))
- self._actuals_repo.Update('.')
+ logging.info(
+ 'Updating actual GM results in %s to revision %s from repo %s ...' % (
+ self._actuals_dir, self._actuals_repo_revision,
+ self._actuals_repo_url))
+ self._actuals_repo.Update(path='.', revision=self._actuals_repo_revision)
# We only update the expectations dir if the server was run with a
# nonzero --reload argument; otherwise, we expect the user to maintain
@@ -331,8 +340,8 @@ class HTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
KEY__HEADER: {
KEY__HEADER__IS_STILL_LOADING: True,
KEY__HEADER__TIME_UPDATED: now,
- KEY__HEADER__TIME_NEXT_UPDATE_AVAILABLE:
- now + RELOAD_INTERVAL_UNTIL_READY,
+ KEY__HEADER__TIME_NEXT_UPDATE_AVAILABLE: (
+ now + RELOAD_INTERVAL_UNTIL_READY),
},
}
self.send_json_dict(response_dict)
@@ -532,6 +541,16 @@ def main():
'actual GM results. If this directory does not '
'exist, it will be created. Defaults to %(default)s'),
default=DEFAULT_ACTUALS_DIR)
+ parser.add_argument('--actuals-repo',
+ help=('URL of SVN repo to download actual-results.json '
+ 'files from. Defaults to %(default)s'),
+ default=DEFAULT_ACTUALS_REPO_URL)
+ parser.add_argument('--actuals-revision',
+ help=('revision of actual-results.json files to process. '
+ 'Defaults to %(default)s . Beware of setting this '
epoger 2014/03/10 18:08:54 I *think* that will work, but as noted in the warn
+ 'argument in conjunction with --editable; you '
+ 'probably only want to edit results at HEAD.'),
+ default=DEFAULT_ACTUALS_REPO_REVISION)
parser.add_argument('--editable', action='store_true',
help=('Allow HTTP clients to submit new baselines.'))
parser.add_argument('--export', action='store_true',
@@ -555,6 +574,8 @@ def main():
args = parser.parse_args()
global _SERVER
_SERVER = Server(actuals_dir=args.actuals_dir,
+ actuals_repo_revision=args.actuals_revision,
+ actuals_repo_url=args.actuals_repo,
port=args.port, export=args.export, editable=args.editable,
reload_seconds=args.reload)
_SERVER.run()
« no previous file with comments | « no previous file | tools/svn.py » ('j') | tools/svn.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698