summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-12 07:46:40 +0000
committernednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-12 07:46:40 +0000
commit44801df84784cc0a46a8d6a4ee7d0155de2df4f6 (patch)
tree327cff6fa6749073b52afeadb76c7f327758d018
parent3101af5051d2856b5618571605488dd3ae7661b3 (diff)
downloadchromium_src-44801df84784cc0a46a8d6a4ee7d0155de2df4f6.zip
chromium_src-44801df84784cc0a46a8d6a4ee7d0155de2df4f6.tar.gz
chromium_src-44801df84784cc0a46a8d6a4ee7d0155de2df4f6.tar.bz2
Skip WPR archives when use-live-sites is set.
Make page_runner more tolerant to cloudStorageError (crbug.com/369611). BUG=368061 Review URL: https://codereview.chromium.org/329143004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276568 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--tools/telemetry/telemetry/page/page_runner.py12
-rw-r--r--tools/telemetry/telemetry/page/page_runner_unittest.py44
-rw-r--r--tools/telemetry/unittest_data/data/archive_blank.json8
-rw-r--r--tools/telemetry/unittest_data/data/archive_blank_000.wpr.sha11
4 files changed, 61 insertions, 4 deletions
diff --git a/tools/telemetry/telemetry/page/page_runner.py b/tools/telemetry/telemetry/page/page_runner.py
index f08ea56..e2d3eb6 100644
--- a/tools/telemetry/telemetry/page/page_runner.py
+++ b/tools/telemetry/telemetry/page/page_runner.py
@@ -230,7 +230,9 @@ def ProcessCommandLineArgs(parser, args):
def _PrepareAndRunPage(test, page_set, expectations, finder_options,
browser_options, page, credentials_path,
possible_browser, results, state):
- if browser_options.wpr_mode != wpr_modes.WPR_RECORD:
+ if finder_options.use_live_sites:
+ browser_options.wpr_mode = wpr_modes.WPR_OFF
+ elif browser_options.wpr_mode != wpr_modes.WPR_RECORD:
browser_options.wpr_mode = (
wpr_modes.WPR_REPLAY
if page.archive_path and os.path.isfile(page.archive_path)
@@ -304,9 +306,11 @@ def _UpdatePageSetArchivesIfChanged(page_set):
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)
+ except (cloud_storage.CredentialsError, cloud_storage.PermissionError,
+ cloud_storage.CloudStorageError) as e:
+ logging.warning('Cannot retrieve credential file %s due to cloud storage '
+ 'error %s', page_set.credentials_path, str(e))
+
# 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()
diff --git a/tools/telemetry/telemetry/page/page_runner_unittest.py b/tools/telemetry/telemetry/page/page_runner_unittest.py
index 14ea12f..d3be73a 100644
--- a/tools/telemetry/telemetry/page/page_runner_unittest.py
+++ b/tools/telemetry/telemetry/page/page_runner_unittest.py
@@ -477,3 +477,47 @@ class PageRunnerTests(unittest.TestCase):
self.assertEquals(0, len(results.successes))
self.assertEquals(0, len(results.failures))
self.assertEquals(0, len(results.errors))
+
+ def TestUseLiveSitesFlag(self, options, expect_from_archive):
+ ps = page_set.PageSet(
+ file_path=util.GetUnittestDataDir(),
+ archive_data_file='data/archive_blank.json')
+ ps.pages.append(page_module.Page(
+ 'file://blank.html', ps, base_dir=ps.base_dir))
+ expectations = test_expectations.TestExpectations()
+
+ class ArchiveTest(page_measurement.PageMeasurement):
+ def __init__(self):
+ super(ArchiveTest, self).__init__()
+ self.is_page_from_archive = False
+ self.archive_path_exist = True
+
+ def WillNavigateToPage(self, page, tab):
+ self.archive_path_exist = (page.archive_path
+ and os.path.isfile(page.archive_path))
+ self.is_page_from_archive = (
+ tab.browser._wpr_server is not None) # pylint: disable=W0212
+
+ def MeasurePage(self, _, __, results):
+ pass
+
+ test = ArchiveTest()
+ page_runner.Run(test, ps, expectations, options)
+ if expect_from_archive and not test.archive_path_exist:
+ logging.warning('archive path did not exist, asserting that page '
+ 'is from archive is skipped.')
+ return
+ self.assertEquals(expect_from_archive, test.is_page_from_archive)
+
+ def testUseLiveSitesFlagSet(self):
+ options = options_for_unittests.GetCopy()
+ options.output_format = 'none'
+ options.use_live_sites = True
+ SetUpPageRunnerArguments(options)
+ self.TestUseLiveSitesFlag(options, expect_from_archive=False)
+
+ def testUseLiveSitesFlagUnset(self):
+ options = options_for_unittests.GetCopy()
+ options.output_format = 'none'
+ SetUpPageRunnerArguments(options)
+ self.TestUseLiveSitesFlag(options, expect_from_archive=True)
diff --git a/tools/telemetry/unittest_data/data/archive_blank.json b/tools/telemetry/unittest_data/data/archive_blank.json
new file mode 100644
index 0000000..d6568ad
--- /dev/null
+++ b/tools/telemetry/unittest_data/data/archive_blank.json
@@ -0,0 +1,8 @@
+{
+ "description": "Describes the Web Page Replay archives for a page set. Don't edit by hand! Use record_wpr for updating.",
+ "archives": {
+ "archive_blank_000.wpr": [
+ "blank.html"
+ ]
+ }
+} \ No newline at end of file
diff --git a/tools/telemetry/unittest_data/data/archive_blank_000.wpr.sha1 b/tools/telemetry/unittest_data/data/archive_blank_000.wpr.sha1
new file mode 100644
index 0000000..badfd21
--- /dev/null
+++ b/tools/telemetry/unittest_data/data/archive_blank_000.wpr.sha1
@@ -0,0 +1 @@
+03a05fcccf9a3d354226d95b95363c74a06ec72a \ No newline at end of file