gecko-dev/testing/web-platform/mach_commands_base.py
James Graham a44e6d715d Bug 1511335 - Fix logging setup for ./mach wpt --product, r=ahal
When running non-Firefox products in wpt we go through the run.py
script from upstream. Therefore we need to initialise the logger in
that module as well as the one in wptrunner now that it's been
properly converted to use logging rather than print statements.

In addition, we change the run.py module to allow passing in logging
defaults for the case where nothing is specified on the command line
since the behaviour for wpt upstream is different to the behaviour for
gecko.

Differential Revision: https://phabricator.services.mozilla.com/D13547

--HG--
extra : moz-landing-system : lando
2018-12-04 21:53:27 +00:00

49 lines
1.7 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
import sys
def create_parser_wpt():
from wptrunner import wptcommandline
return wptcommandline.create_parser(["fennec", "firefox", "chrome", "edge", "servo"])
class WebPlatformTestsRunner(object):
"""Run web platform tests."""
def __init__(self, setup):
self.setup = setup
def setup_logging(self, **kwargs):
from tools.wpt import run
return run.setup_logging(kwargs, {self.setup.default_log_type: sys.stdout})
def run(self, logger, **kwargs):
from wptrunner import wptrunner
if kwargs["manifest_update"] is not False:
self.update_manifest(logger)
kwargs["manifest_update"] = False
if kwargs["product"] in ["firefox", None]:
kwargs = self.setup.kwargs_firefox(kwargs)
elif kwargs["product"] == "fennec":
from wptrunner import wptcommandline
kwargs = wptcommandline.check_args(self.setup.kwargs_common(kwargs))
elif kwargs["product"] in ("chrome", "edge", "servo"):
kwargs = self.setup.kwargs_wptrun(kwargs)
else:
raise ValueError("Unknown product %s" % kwargs["product"])
result = wptrunner.start(**kwargs)
return int(not result)
def update_manifest(self, logger, **kwargs):
import manifestupdate
return manifestupdate.run(logger=logger,
src_root=self.setup.topsrcdir,
obj_root=self.setup.topobjdir,
**kwargs)