diff options
author | nednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-12 07:46:40 +0000 |
---|---|---|
committer | nednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-12 07:46:40 +0000 |
commit | 44801df84784cc0a46a8d6a4ee7d0155de2df4f6 (patch) | |
tree | 327cff6fa6749073b52afeadb76c7f327758d018 | |
parent | 3101af5051d2856b5618571605488dd3ae7661b3 (diff) | |
download | chromium_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
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 |