Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / page_runner.py
index 4b9da6d..cde1ae3 100644 (file)
@@ -1,17 +1,19 @@
 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
+
 import collections
 import copy
 import glob
 import logging
 import os
+import random
 import sys
 import tempfile
 import time
 import traceback
-import random
 
+from telemetry import decorators
 from telemetry import exception_formatter
 from telemetry.core import browser_finder
 from telemetry.core import exceptions
@@ -75,6 +77,10 @@ class _RunState(object):
               logging.info('Feature Status:')
               for k, v in sorted(system_info.gpu.feature_status.iteritems()):
                 logging.info('  %-20s: %s', k, v)
+            if system_info.gpu.driver_bug_workarounds:
+              logging.info('Driver Bug Workarounds:')
+              for workaround in system_info.gpu.driver_bug_workarounds:
+                logging.info('  %s', workaround)
           else:
             logging.info('No GPU devices')
     else:
@@ -152,7 +158,7 @@ class PageState(object):
 
     if test:
       if test.clear_cache_before_each_run:
-        self.tab.ClearCache()
+        self.tab.ClearCache(force=True)
 
   def ImplicitPageNavigation(self, test=None):
     """Executes the implicit navigation that occurs for every page iteration.
@@ -203,7 +209,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
         if page.archive_path and os.path.isfile(page.archive_path)
         else wpr_modes.WPR_OFF)
 
-  tries = 3
+  tries = test.attempts
   while tries:
     tries -= 1
     try:
@@ -285,6 +291,10 @@ def Run(test, page_set, expectations, finder_options):
 
   browser_options.browser_type = possible_browser.browser_type
 
+  if not decorators.IsEnabled(
+      test, browser_options.browser_type, possible_browser.platform):
+    return results
+
   # Reorder page set based on options.
   pages = _ShuffleAndFilterPageSet(page_set, finder_options)
 
@@ -426,7 +436,8 @@ def _CheckArchives(page_set, pages, results):
 
 def _RunPage(test, page, state, expectation, results, finder_options):
   if expectation == 'skip':
-    logging.info('Skipped %s' % page.url)
+    logging.debug('Skipping test: Skip expectation for %s', page.url)
+    results.AddSkip(page, 'Skipped by test expectations')
     return
 
   logging.info('Running %s' % page.url)