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
30 lines
1018 B
Python
30 lines
1018 B
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 sys
|
|
|
|
|
|
def create_parser_wpt():
|
|
from wptrunner import wptcommandline
|
|
return wptcommandline.create_parser(["firefox", "chrome", "edge", "servo"])
|
|
|
|
|
|
class WebPlatformTestsRunner(object):
|
|
"""Run web platform tests."""
|
|
|
|
def __init__(self, setup):
|
|
self.setup = setup
|
|
|
|
def run(self, **kwargs):
|
|
from wptrunner import wptrunner
|
|
if kwargs["product"] in ["firefox", None]:
|
|
self.setup.kwargs_firefox(kwargs)
|
|
elif kwargs["product"] in ("chrome", "edge", "servo"):
|
|
self.setup.kwargs_wptrun(kwargs)
|
|
else:
|
|
raise ValueError("Unknown product %s" % kwargs["product"])
|
|
logger = wptrunner.setup_logging(kwargs, {self.setup.default_log_type: sys.stdout})
|
|
result = wptrunner.start(**kwargs)
|
|
return int(not result)
|