gecko-dev/testing/web-platform/mach_test_package_commands.py
James Graham 4480587bb8 Bug 1294820 - Add support for running wpt from one-click loaner mach environment, r=ahal
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
2017-06-19 19:20:41 +01:00

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)