summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mach_commands_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/mach_commands_base.py')
-rw-r--r--testing/web-platform/mach_commands_base.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/testing/web-platform/mach_commands_base.py b/testing/web-platform/mach_commands_base.py
new file mode 100644
index 0000000000..8935e1638a
--- /dev/null
+++ b/testing/web-platform/mach_commands_base.py
@@ -0,0 +1,70 @@
+# 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
+
+ result = wptcommandline.create_parser()
+
+ result.add_argument(
+ "--no-install",
+ action="store_true",
+ default=False,
+ help="Do not install test runner application",
+ )
+ return result
+
+
+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 mozbuild.base import BinaryNotFoundException
+ from wptrunner import wptrunner
+
+ if kwargs["manifest_update"] is not False:
+ self.update_manifest(logger)
+ kwargs["manifest_update"] = False
+
+ if kwargs["product"] == "firefox":
+ try:
+ kwargs = self.setup.kwargs_firefox(kwargs)
+ except BinaryNotFoundException as e:
+ logger.error(e)
+ logger.info(e.help())
+ return 1
+ elif kwargs["product"] == "firefox_android":
+ from wptrunner import wptcommandline
+
+ kwargs = wptcommandline.check_args(self.setup.kwargs_common(kwargs))
+ else:
+ kwargs = self.setup.kwargs_wptrun(kwargs)
+
+ 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
+ )