Bug 1676655 - Enable additional root paths when running mach wpt-serve, r=karlcow

This replicates the logic in
testing/web-platform/tests/tools/wptrunner/wptrunner/environment.py to
ensure that all the configured URL base paths are added to the
wptserve router configuration when starting via mach wpt-serve.

Differential Revision: https://phabricator.services.mozilla.com/D96723
This commit is contained in:
James Graham
2020-11-12 10:26:14 +00:00
parent 74b9d793ca
commit d1994d2409

View File

@@ -226,6 +226,48 @@ class WebPlatformTestsRunnerSetup(MozbuildObject):
dest.write(src.read())
class WebPlatformTestsServeRunner(MozbuildObject):
def run(self, **kwargs):
sys.path.insert(
0,
os.path.abspath(os.path.join(os.path.dirname(__file__), "tests", "tools")),
)
from serve import serve
from wptrunner import wptcommandline
import manifestupdate
import logging
logger = logging.getLogger("web-platform-tests")
src_root = self.topsrcdir
obj_root = self.topobjdir
src_wpt_dir = os.path.join(src_root, "testing", "web-platform")
config_path = manifestupdate.generate_config(
logger,
src_root,
src_wpt_dir,
os.path.join(obj_root, "_tests", "web-platform"),
False,
)
test_paths = wptcommandline.get_test_paths(
wptcommandline.config.read(config_path)
)
def get_route_builder(*args, **kwargs):
route_builder = serve.get_route_builder(*args, **kwargs)
for url_base, paths in iteritems(test_paths):
if url_base != "/":
route_builder.add_mount_point(url_base, paths["tests_path"])
return route_builder
return 0 if serve.run(route_builder=get_route_builder, **kwargs) else 1
class WebPlatformTestsUpdater(MozbuildObject):
"""Update web platform tests."""
@@ -505,15 +547,14 @@ class MachCommands(MachCommandBase):
description="Run the wpt server",
parser=create_parser_serve,
)
def wpt_manifest_serve(self, **params):
def wpt_serve(self, **params):
self.setup()
import logging
logger = logging.getLogger("web-platform-tests")
logger.addHandler(logging.StreamHandler(sys.stdout))
import serve
return 0 if serve.serve.run(**params) else 1
wpt_serve = self._spawn(WebPlatformTestsServeRunner)
return wpt_serve.run(**params)
@Command(
"wpt-metadata-summary",