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

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/check_stability.py

Issue 2468053002: Import wpt@9fcccf38b6be00f71ffa6bd6e29c5aa1ef25ee8c (Closed)
Patch Set: Skip cssom and svg/shapes, remove unwanted baseline Created 4 years, 1 month 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
Index: third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py b/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
index 25496801c5e7a082791a260aa1097cb8696d8313..2c5ad269f3f1a9a1a33bb5c307bbff96b018be62 100644
--- a/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
+++ b/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
@@ -15,20 +15,34 @@ from urlparse import urljoin
import requests
-wptrunner = None
-wptcommandline = None
-reader = None
+BaseHandler = None
+LogActionFilter = None
LogHandler = None
+LogLevelFilter = None
+StreamHandler = None
+TbplFormatter = None
+reader = None
+wptcommandline = None
+wptrunner = None
+
logger = logging.getLogger(os.path.splitext(__file__)[0])
def do_delayed_imports():
- global wptrunner, wptcommandline, reader
- from wptrunner import wptrunner
- from wptrunner import wptcommandline
+ global BaseHandler
+ global LogLevelFilter
+ global StreamHandler
+ global TbplFormatter
+ global reader
+ global wptcommandline
+ global wptrunner
from mozlog import reader
+ from mozlog.formatters import TbplFormatter
+ from mozlog.handlers import BaseHandler, LogLevelFilter, StreamHandler
+ from wptrunner import wptcommandline, wptrunner
setup_log_handler()
+ setup_action_filter()
def setup_logging():
@@ -41,6 +55,26 @@ def setup_logging():
setup_logging()
+def setup_action_filter():
+ global LogActionFilter
+
+ class LogActionFilter(BaseHandler):
+ """Handler that filters out messages with action of log and a level
+ lower than some specified level.
+
+ :param inner: Handler to use for messages that pass this filter
+ :param level: Minimum log level to process
+ """
+ def __init__(self, inner, actions):
+ BaseHandler.__init__(self, inner)
+ self.inner = inner
+ self.actions = actions
+
+ def __call__(self, item):
+ if item["action"] in self.actions:
+ return self.inner(item)
+
+
class GitHub(object):
def __init__(self, org, repo, token):
self.token = token
@@ -134,7 +168,6 @@ class Firefox(Browser):
# This is used rather than an API call to avoid rate limits
tags = call("git", "ls-remote", "--tags", "--refs",
"https://github.com/mozilla/geckodriver.git")
- logger.debug("Found tags:\n%s" % tags)
release_re = re.compile(".*refs/tags/v(\d+)\.(\d+)\.(\d+)")
latest_release = 0
for item in tags.split("\n"):
@@ -382,6 +415,7 @@ def table(headings, data, log):
log("|%s|" % "|".join("-" * max_widths[i] for i in cols))
for row in data:
log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols))
+ log("")
def write_inconsistent(inconsistent, iterations):
@@ -391,10 +425,22 @@ def write_inconsistent(inconsistent, iterations):
table(["Test", "Subtest", "Results"], strings, logger.error)
-def write_results(results, iterations):
+def write_results(results, iterations, comment_pr):
logger.info("## All results ##\n")
for test, test_results in results.iteritems():
- logger.info("### %s ###" % test)
+ baseurl = "http://w3c-test.org/submissions"
+ if "https" in os.path.splitext(test)[0].split(".")[1:]:
+ baseurl = "https://w3c-test.org/submissions"
+ pr_number = None
+ if comment_pr:
+ try:
+ pr_number = int(comment_pr)
+ except ValueError:
+ pass
+ if pr_number:
+ logger.info("### [%s](%s/%s%s) ###" % (test, baseurl, pr_number, test))
+ else:
+ logger.info("### %s ###" % test)
parent = test_results.pop(None)
strings = [("", err_string(parent, iterations))]
strings.extend(((subtest if subtest else "", err_string(results, iterations))
@@ -484,10 +530,22 @@ def main():
print >> sys.stderr, "travis_fold:end:browser_setup"
print >> sys.stderr, "travis_fold:start:running_tests"
+ logger.info("Starting %i test iterations" % args.iterations)
with open("raw.log", "wb") as log:
wptrunner.setup_logging(kwargs,
- {"tbpl": sys.stdout,
- "raw": log})
+ {"raw": log})
+ # Setup logging for wptrunner that keeps process output and
+ # warning+ level logs only
+ wptrunner.logger.add_handler(
+ LogActionFilter(
+ LogLevelFilter(
+ StreamHandler(
+ sys.stdout,
+ TbplFormatter()
+ ),
+ "WARNING"),
+ ["log", "process_output"]))
+
wptrunner.run_tests(**kwargs)
with open("raw.log", "rb") as log:
@@ -502,7 +560,7 @@ def main():
else:
logger.info("All results were stable\n")
print >> sys.stderr, "travis_fold:start:full_results"
- write_results(results, args.iterations)
+ write_results(results, args.iterations, args.comment_pr)
print >> sys.stderr, "travis_fold:end:full_results"
else:
logger.info("No tests run.")
« no previous file with comments | « third_party/WebKit/LayoutTests/imported/wpt/MANIFEST.json ('k') | third_party/WebKit/LayoutTests/imported/wpt/ci_stability.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698