Backed out changeset 64ff9b546c6e (bug 1367041)

This commit is contained in:
Carsten "Tomcat" Book 2017-05-31 14:21:53 +02:00
parent 220eec16b5
commit 85e7cbd833
7 changed files with 43 additions and 65 deletions

3
.gitignore vendored
View File

@ -90,9 +90,6 @@ GPATH
# Git clone directory for updating web-platform-tests # Git clone directory for updating web-platform-tests
testing/web-platform/sync/ testing/web-platform/sync/
# Third party metadata for web-platform-tests
testing/web-platform/products/
# Android Gradle artifacts. # Android Gradle artifacts.
mobile/android/gradle/.gradle mobile/android/gradle/.gradle

View File

@ -98,9 +98,6 @@ GPATH
# Git clone directory for updating web-platform-tests # Git clone directory for updating web-platform-tests
^testing/web-platform/sync/ ^testing/web-platform/sync/
# Third party metadata for web-platform-tests
^testing/web-platform/products/
# Android Gradle artifacts. # Android Gradle artifacts.
^mobile/android/gradle/.gradle ^mobile/android/gradle/.gradle

View File

@ -235,14 +235,45 @@ Running Tests In Other Browsers
web-platform-tests is cross browser, and the runner is compatible with web-platform-tests is cross browser, and the runner is compatible with
multiple browsers. Therefore it's possible to check the behaviour of multiple browsers. Therefore it's possible to check the behaviour of
tests in other browsers. By default Chrome, Edge and Servo are tests in other browsers. This is somewhat more involved than running
supported. In order to run the tests in these browsers use the them in Firefox since extra dependencies may be required. For example
`--product` argument to wptrunner: to test in Chrome:
mach wpt --product chrome dom/historical.html 1. Download the chromedriver binary and place it somewhere sensible
e.g. `~/bin`
By default these browsers run without expectation metadata, but it can 2. In your gecko source tree activate the virtualenv created by mach,
be added in the `testing/web-platform/products/<product>` since this has most dependencies already installed. This is typically
directory. To run with the same metadata as for Firefox (so that in objdir/_virtualenv and is activated via e.g.
differences are reported as unexpected results), pass `--meta
testing/web-platform/meta` to the mach command. source objdir/_virtualenv/bin/activate
3. Install the extra requirements:
cd testing/web-platform/harness
pip install -r requirements_chrome.txt
4. Edit the config file `testing/web-platform/wptrunner.ini` so that
Chrome support is enabled by changing the section that reads:
[products]
firefox =
to read
[products]
firefox =
chrome =
(alternatively create a new config file elsewhere and use the
`--config` option to `runtests.py` to point wptrunner at this config
file).
5. Run `runtests.py` using the location of chromedriver as
the binary:
cd testing/web-platform
python runtests.py --product=chrome --binary=~/bin/chromedriver --log-mach=-
By default this will use the same test checkout and metadata as are in
the Gecko tree, so it's easy to compare behaviour relative to Firefox.

View File

@ -28,7 +28,7 @@ class InvalidTestPathError(Exception):
class WebPlatformTestsRunner(MozbuildObject): class WebPlatformTestsRunner(MozbuildObject):
"""Run web platform tests.""" """Run web platform tests."""
def setup_kwargs_firefox(self, kwargs): def setup_kwargs(self, kwargs):
from wptrunner import wptcommandline from wptrunner import wptcommandline
build_path = os.path.join(self.topobjdir, 'build') build_path = os.path.join(self.topobjdir, 'build')
@ -67,50 +67,10 @@ class WebPlatformTestsRunner(MozbuildObject):
kwargs = wptcommandline.check_args(kwargs) kwargs = wptcommandline.check_args(kwargs)
def setup_kwargs_wptrun(self, kwargs):
from wptrunner import wptcommandline
here = os.path.join(self.topsrcdir, 'testing', 'web-platform')
sys.path.insert(0, os.path.join(here, "tests", "tools"))
import wptrun
setup_func = {
"chrome": wptrun.setup_chrome,
"edge": wptrun.setup_edge,
"servo": wptrun.setup_servo,
}[kwargs["product"]]
setup_func(wptrun.virtualenv.Virtualenv(self.virtualenv_manager.virtualenv_root),
kwargs,
True)
kwargs["tests_root"] = os.path.join(here, "tests")
if kwargs["metadata_root"] is None:
metadir = os.path.join(here, "products", kwargs["product"])
if not os.path.exists(metadir):
os.makedirs(metadir)
kwargs["metadata_root"] = metadir
src_manifest = os.path.join(here, "meta", "MANIFEST.json")
dest_manifest = os.path.join(kwargs["metadata_root"], "MANIFEST.json")
if not os.path.exists(dest_manifest) and os.path.exists(src_manifest):
with open(src_manifest) as src, open(dest_manifest, "w") as dest:
dest.write(src.read())
kwargs = wptcommandline.check_args(kwargs)
def run_tests(self, **kwargs): def run_tests(self, **kwargs):
from wptrunner import wptrunner from wptrunner import wptrunner
if kwargs["product"] in ["firefox", None]: self.setup_kwargs(kwargs)
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, {"mach": sys.stdout}) logger = wptrunner.setup_logging(kwargs, {"mach": sys.stdout})
result = wptrunner.run_tests(**kwargs) result = wptrunner.run_tests(**kwargs)
@ -298,7 +258,7 @@ class WPTManifestUpdater(MozbuildObject):
def create_parser_wpt(): def create_parser_wpt():
from wptrunner import wptcommandline from wptrunner import wptcommandline
return wptcommandline.create_parser(["firefox", "chrome", "edge", "servo"]) return wptcommandline.create_parser(["firefox"])
def create_parser_update(): def create_parser_update():
from update import updatecommandline from update import updatecommandline

View File

@ -1,3 +0,0 @@
This directory is for storing metadata files when running
web-platform-tests with non-firefox browsers. By default all
subdirectories here are ignored in VCS.

View File

@ -3,4 +3,3 @@ mozprofile >= 0.21
mozprocess >= 0.19 mozprocess >= 0.19
mozcrash >= 0.13 mozcrash >= 0.13
mozrunner >= 6.7 mozrunner >= 6.7
mozleak >= 0.1

View File

@ -1,8 +1,5 @@
[products] [products]
firefox = firefox =
chrome =
edge =
servo =
[web-platform-tests] [web-platform-tests]
remote_url = https://github.com/w3c/web-platform-tests.git remote_url = https://github.com/w3c/web-platform-tests.git