testing/web-platform/mach_commands_base.py
author Mozilla Releng Treescript <release+treescript@mozilla.org>
Mon, 17 Feb 2020 19:30:52 +0000
changeset 574984 6de6baa24eac7b9cb57215021c09cfb5acadf048
parent 559643 ed5efc0182326c0a131b71cd150da351d5b4d400
permissions -rw-r--r--
No bug - Tagging 5b0905233e5d29d9fbad98c1380030387cda5dd9 with FIREFOX_73_0_1_BUILD1 a=release CLOSED TREE DONTBUILD

# 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(["firefox", "firefox_android", "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},
                                 formatter_defaults={"screenshot": True})

    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"] == "firefox_android":
            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(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)