mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 09:45:41 +00:00
4480587bb8
Allow running |mach wpt| on one click loaners in order to run web-platform-tests tests. This implementation is just like the one for other testsuites using thee packaged tests rather than the checkout that we get with wpt, at least on Linux. That's also where the tests run from so it seems reasonable for now. Moving to the checkout in the future could remove some of the logic here by using a fake mozbuild environment so that the testsuite itself doesn't have to implement anything much. MozReview-Commit-ID: CaewrdjJ2ef --HG-- extra : rebase_source : 491b8014d48f06ff5bd41b28cc985608981fbdf4
69 lines
2.6 KiB
Python
69 lines
2.6 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/.
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
import os
|
|
|
|
from mach_commands_base import WebPlatformTestsRunner, create_parser_wpt
|
|
from mach.decorators import (
|
|
CommandProvider,
|
|
Command,
|
|
)
|
|
|
|
|
|
class WebPlatformTestsRunnerSetup(object):
|
|
default_log_type = "tbpl"
|
|
|
|
def __init__(self, context):
|
|
self.context = context
|
|
|
|
def kwargs_firefox(self, kwargs):
|
|
from wptrunner import wptcommandline
|
|
if kwargs["config"] is None:
|
|
kwargs["config"] = os.path.join(self.context.package_root, 'web-platform', 'wptrunner.ini')
|
|
if kwargs["binary"] is None:
|
|
kwargs["binary"] = self.context.firefox_bin
|
|
if kwargs["prefs_root"] is None:
|
|
kwargs["prefs_root"] = os.path.join(self.context.package_root, 'web-platform', "prefs")
|
|
if kwargs["certutil_binary"] is None:
|
|
kwargs["certutil_binary"] = os.path.join(self.context.bin_dir, 'certutil')
|
|
if kwargs["stackfix_dir"] is None:
|
|
kwargs["stackfix_dir"] = self.context.bin_dir
|
|
if kwargs["ssl_type"] in (None, "pregenerated"):
|
|
if kwargs["ca_cert_path"] is None:
|
|
kwargs["ca_cert_path"] = os.path.join(self.context.package_root, "web-platform", "certs", "cacert.pem")
|
|
if kwargs["host_key_path"] is None:
|
|
kwargs["host_key_path"] = os.path.join(self.context.package_root, "web-platform", "certs", "web-platform.test.key")
|
|
if kwargs["host_cert_path"] is None:
|
|
kwargs["host_cert_path"] = os.path.join(self.context.package_root, "web-platform", "certs", "web-platform.test.pem")
|
|
kwargs["capture_stdio"] = True
|
|
|
|
if kwargs["webdriver_binary"] is None:
|
|
kwargs["webdriver_binary"] = os.path.join(self.context.bin_dir, "geckodriver")
|
|
|
|
kwargs = wptcommandline.check_args(kwargs)
|
|
|
|
def kwargs_wptrun(self, kwargs):
|
|
raise NotImplementedError
|
|
|
|
|
|
@CommandProvider
|
|
class MachCommands(object):
|
|
def __init__(self, context):
|
|
self.context = context
|
|
|
|
@Command("web-platform-tests",
|
|
category="testing",
|
|
parser=create_parser_wpt)
|
|
def run_web_platform_tests(self, **kwargs):
|
|
self.context.activate_mozharness_venv()
|
|
return WebPlatformTestsRunner(WebPlatformTestsRunnerSetup(self.context)).run(**kwargs)
|
|
|
|
@Command("wpt",
|
|
category="testing",
|
|
parser=create_parser_wpt)
|
|
def run_wpt(self, **params):
|
|
return self.run_web_platform_tests(**params)
|