aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/testing_commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/servo/testing_commands.py')
-rw-r--r--python/servo/testing_commands.py37
1 files changed, 22 insertions, 15 deletions
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 4fd3bba2fd0..7711c1bfe17 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -337,29 +337,33 @@ class MachCommands(CommandBase):
parser=create_parser_wpt)
def test_wpt(self, **kwargs):
self.ensure_bootstrapped()
+ return self.run_test_list_or_dispatch("wpt", self._test_wpt, **kwargs)
+
+ def _test_wpt(self, **kwargs):
+ hosts_file_path = path.join(self.context.topdir, 'tests', 'wpt', 'hosts')
+ os.environ["hosts_file_path"] = hosts_file_path
+ run_file = path.abspath(path.join(self.context.topdir, "tests", "wpt", "run_wpt.py"))
+ return self.wptrunner(run_file, **kwargs)
+
+ # Helper to ensure all specified paths are handled, otherwise dispatch to appropriate test suite.
+ def run_test_list_or_dispatch(self, correct_suite, correct_function, **kwargs):
test_list = kwargs["test_list"]
if not test_list:
- return self._test_wpt(**kwargs)
+ return correct_function(**kwargs)
else:
- # Paths specified on command line. Ensure they are WPT, re-dispatch otherwise.
- all_wpt = True
+ # Paths specified on command line. Ensure they can be handled, re-dispatch otherwise.
+ all_handled = True
for test_path in test_list:
suite = self.suite_for_path(test_path)
- if "wpt" != suite:
- all_wpt = False
- print("Warning: %s is not a WPT test. Delegating to test-%s." % (test_path, suite))
- if all_wpt:
- return self._test_wpt(**kwargs)
+ if correct_suite != suite:
+ all_handled = False
+ print("Warning: %s is not a %s test. Delegating to test-%s." % (test_path, correct_suite, suite))
+ if all_handled:
+ return correct_function(**kwargs)
else:
- # Dispatch each test to the correct suite
+ # Dispatch each test to the correct suite via test()
Registrar.dispatch("test", context=self.context, params=test_list)
- def _test_wpt(self, **kwargs):
- hosts_file_path = path.join(self.context.topdir, 'tests', 'wpt', 'hosts')
- os.environ["hosts_file_path"] = hosts_file_path
- run_file = path.abspath(path.join(self.context.topdir, "tests", "wpt", "run_wpt.py"))
- return self.wptrunner(run_file, **kwargs)
-
# Helper for test_css and test_wpt:
def wptrunner(self, run_file, **kwargs):
os.environ["RUST_BACKTRACE"] = "1"
@@ -437,6 +441,9 @@ class MachCommands(CommandBase):
parser=create_parser_wpt)
def test_css(self, **kwargs):
self.ensure_bootstrapped()
+ return self.run_test_list_or_dispatch("css", self._test_css, **kwargs)
+
+ def _test_css(self, **kwargs):
run_file = path.abspath(path.join("tests", "wpt", "run_css.py"))
return self.wptrunner(run_file, **kwargs)