зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 448b7c4ed09e (bug 1367041)
This commit is contained in:
Родитель
3bf090160d
Коммит
8074efcb96
|
@ -90,9 +90,6 @@ GPATH
|
|||
# Git clone directory for updating web-platform-tests
|
||||
testing/web-platform/sync/
|
||||
|
||||
# Third party metadata for web-platform-tests
|
||||
testing/web-platform/products/
|
||||
|
||||
# Android Gradle artifacts.
|
||||
mobile/android/gradle/.gradle
|
||||
|
||||
|
|
|
@ -98,9 +98,6 @@ GPATH
|
|||
# Git clone directory for updating web-platform-tests
|
||||
^testing/web-platform/sync/
|
||||
|
||||
# Third party metadata for web-platform-tests
|
||||
^testing/web-platform/products/
|
||||
|
||||
# Android Gradle artifacts.
|
||||
^mobile/android/gradle/.gradle
|
||||
|
||||
|
|
|
@ -235,14 +235,45 @@ Running Tests In Other Browsers
|
|||
|
||||
web-platform-tests is cross browser, and the runner is compatible with
|
||||
multiple browsers. Therefore it's possible to check the behaviour of
|
||||
tests in other browsers. By default Chrome, Edge and Servo are
|
||||
supported. In order to run the tests in these browsers use the
|
||||
`--product` argument to wptrunner:
|
||||
tests in other browsers. This is somewhat more involved than running
|
||||
them in Firefox since extra dependencies may be required. For example
|
||||
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
|
||||
be added in the `testing/web-platform/products/<product>`
|
||||
directory. To run with the same metadata as for Firefox (so that
|
||||
differences are reported as unexpected results), pass `--meta
|
||||
testing/web-platform/meta` to the mach command.
|
||||
2. In your gecko source tree activate the virtualenv created by mach,
|
||||
since this has most dependencies already installed. This is typically
|
||||
in objdir/_virtualenv and is activated via e.g.
|
||||
|
||||
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.
|
||||
|
|
|
@ -28,7 +28,7 @@ class InvalidTestPathError(Exception):
|
|||
class WebPlatformTestsRunner(MozbuildObject):
|
||||
"""Run web platform tests."""
|
||||
|
||||
def setup_kwargs_firefox(self, kwargs):
|
||||
def setup_kwargs(self, kwargs):
|
||||
from wptrunner import wptcommandline
|
||||
|
||||
build_path = os.path.join(self.topobjdir, 'build')
|
||||
|
@ -67,50 +67,10 @@ class WebPlatformTestsRunner(MozbuildObject):
|
|||
|
||||
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):
|
||||
from wptrunner import wptrunner
|
||||
|
||||
if kwargs["product"] in ["firefox", None]:
|
||||
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"])
|
||||
self.setup_kwargs(kwargs)
|
||||
|
||||
logger = wptrunner.setup_logging(kwargs, {"mach": sys.stdout})
|
||||
result = wptrunner.run_tests(**kwargs)
|
||||
|
@ -298,7 +258,7 @@ class WPTManifestUpdater(MozbuildObject):
|
|||
|
||||
def create_parser_wpt():
|
||||
from wptrunner import wptcommandline
|
||||
return wptcommandline.create_parser(["firefox", "chrome", "edge", "servo"])
|
||||
return wptcommandline.create_parser(["firefox"])
|
||||
|
||||
def create_parser_update():
|
||||
from update import updatecommandline
|
||||
|
|
|
@ -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.
|
|
@ -3,4 +3,3 @@ mozprofile >= 0.21
|
|||
mozprocess >= 0.19
|
||||
mozcrash >= 0.13
|
||||
mozrunner >= 6.7
|
||||
mozleak >= 0.1
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
[products]
|
||||
firefox =
|
||||
chrome =
|
||||
edge =
|
||||
servo =
|
||||
|
||||
[web-platform-tests]
|
||||
remote_url = https://github.com/w3c/web-platform-tests.git
|
||||
|
|
Загрузка…
Ссылка в новой задаче