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

Unified Diff: tools/telemetry/telemetry/page/page_runner.py

Issue 245093003: Move PageSet._InitializeArchive to PageRunner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add # pylint: disable=E202 Created 6 years, 8 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 | « tools/perf/page_sets/page_set_unittest.py ('k') | tools/telemetry/telemetry/page/page_set.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/page/page_runner.py
diff --git a/tools/telemetry/telemetry/page/page_runner.py b/tools/telemetry/telemetry/page/page_runner.py
index e5e341167373c6afe737146354b3b0720365cfdc..21a4ce19ec8c517921a61a8d4e1fa02e5fab193e 100644
--- a/tools/telemetry/telemetry/page/page_runner.py
+++ b/tools/telemetry/telemetry/page/page_runner.py
@@ -19,6 +19,7 @@ from telemetry.core import exceptions
from telemetry.core import util
from telemetry.core import wpr_modes
from telemetry.core.platform.profiler import profiler_finder
+from telemetry.page import cloud_storage
from telemetry.page import page_filter
from telemetry.page import page_runner_repeat
from telemetry.page import page_test
@@ -310,6 +311,35 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
raise
+def _UpdatePageSetArchivesIfChanged(page_set):
+ # Attempt to download the credentials file.
+ if page_set.credentials_path:
+ try:
+ cloud_storage.GetIfChanged(
+ os.path.join(page_set.base_dir, page_set.credentials_path))
+ except (cloud_storage.CredentialsError, cloud_storage.PermissionError):
+ logging.warning('Cannot retrieve credential file: %s',
+ page_set.credentials_path)
+ # Scan every serving directory for .sha1 files
+ # and download them from Cloud Storage. Assume all data is public.
+ all_serving_dirs = page_set.serving_dirs.copy()
+ # Add individual page dirs to all serving dirs.
+ for page in page_set:
+ if page.is_file:
+ all_serving_dirs.add(page.serving_dir)
+ # Scan all serving dirs.
+ for serving_dir in all_serving_dirs:
+ if os.path.splitdrive(serving_dir)[1] == '/':
+ raise ValueError('Trying to serve root directory from HTTP server.')
+ for dirpath, _, filenames in os.walk(serving_dir):
+ for filename in filenames:
+ path, extension = os.path.splitext(
+ os.path.join(dirpath, filename))
+ if extension != '.sha1':
+ continue
+ cloud_storage.GetIfChanged(path)
+
+
def Run(test, page_set, expectations, finder_options):
"""Runs a given test against a given page_set with the given options."""
results = results_options.PrepareResults(test, finder_options)
@@ -342,6 +372,7 @@ def Run(test, page_set, expectations, finder_options):
if (not finder_options.use_live_sites and
browser_options.wpr_mode != wpr_modes.WPR_RECORD):
+ _UpdatePageSetArchivesIfChanged(page_set)
pages = _CheckArchives(page_set, pages, results)
# Verify credentials path.
« no previous file with comments | « tools/perf/page_sets/page_set_unittest.py ('k') | tools/telemetry/telemetry/page/page_set.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698