Add support for running W3C CSS tests.

These are run through the same harness as the web-platform-tests.
This commit is contained in:
James Graham 2015-03-27 21:23:44 +00:00
parent 2bde318d24
commit b2a5225831
5 changed files with 110 additions and 1 deletions

View file

@ -93,7 +93,7 @@ class MachCommands(CommandBase):
return self.infer_test_by_dir(params) return self.infer_test_by_dir(params)
test_start = time() test_start = time()
for t in ["tidy", "ref", "content", "wpt", "unit"]: for t in ["tidy", "ref", "content", "wpt", "css", "unit"]:
Registrar.dispatch("test-%s" % t, context=self.context) Registrar.dispatch("test-%s" % t, context=self.context)
elapsed = time() - test_start elapsed = time() - test_start
@ -245,6 +245,33 @@ class MachCommands(CommandBase):
execfile(run_file, run_globals) execfile(run_file, run_globals)
return run_globals["update_tests"](**kwargs) return run_globals["update_tests"](**kwargs)
@Command('test-css',
description='Run the web platform tests',
category='testing',
parser=wptcommandline.create_parser())
@CommandArgument('--release', default=False, action="store_true",
help="Run with a release build of servo")
def test_css(self, **kwargs):
self.ensure_bootstrapped()
self.ensure_wpt_virtualenv()
run_file = path.abspath(path.join("tests", "wpt", "run_css.py"))
run_globals = {"__file__": run_file}
execfile(run_file, run_globals)
return run_globals["run_tests"](**kwargs)
@Command('update-css',
description='Update the web platform tests',
category='testing',
parser=updatecommandline.create_parser())
def update_css(self, **kwargs):
self.ensure_bootstrapped()
self.ensure_wpt_virtualenv()
run_file = path.abspath(path.join("tests", "wpt", "update_css.py"))
run_globals = {"__file__": run_file}
execfile(run_file, run_globals)
return run_globals["update_tests"](**kwargs)
def ensure_wpt_virtualenv(self): def ensure_wpt_virtualenv(self):
virtualenv_path = path.join("tests", "wpt", "_virtualenv") virtualenv_path = path.join("tests", "wpt", "_virtualenv")

16
tests/wpt/config_css.ini Normal file
View file

@ -0,0 +1,16 @@
[products]
servo =
[web-platform-tests]
name = CSS tests
remote_url = https://github.com/jgraham/css-test-built
branch = master
sync_path = sync_css
[paths]
run-info = .
[manifest:upstream]
tests = css-tests
metadata = metadata-css
url-base = /

View file

@ -0,0 +1,7 @@
skip: true
[css21_dev]
skip: false
[xhtml1]
skip: true
[xhtml1print]
skip: true

19
tests/wpt/run_css.py Normal file
View file

@ -0,0 +1,19 @@
# 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/.
#!/usr/bin/env python
import run
paths = {"include_manifest": run.wpt_path("include_css.ini"),
"config": run.wpt_path("config_css.ini")}
def run_tests(**kwargs):
return run.run_tests(paths=paths, **kwargs)
def main():
return run.main(paths)
if __name__ == "__main__":
sys.exit(0 if main() else 1)

40
tests/wpt/update_css.py Normal file
View file

@ -0,0 +1,40 @@
# 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/.
#!/usr/bin/env python
import argparse
import os
import sys
here = os.path.split(__file__)[0]
def wpt_path(*args):
return os.path.join(here, *args)
# Imports
sys.path.append(wpt_path("harness"))
from wptrunner import wptcommandline
def update_tests(**kwargs):
from wptrunner import update
set_defaults(kwargs)
logger = update.setup_logging(kwargs, {"mach": sys.stdout})
rv = update.run_update(logger, **kwargs)
return 0 if rv is update.update.exit_clean else 1
def set_defaults(kwargs):
if kwargs["config"] is None:
kwargs["config"] = wpt_path('config_css.ini')
wptcommandline.set_from_config(kwargs)
def main():
parser = wptcommandline.create_parser_update()
kwargs = vars(parser.parse_args())
return update_tests(**kwargs)
if __name__ == "__main__":
sys.exit(0 if main() else 1)