mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
Backed out changeset 64ff9b546c6e (bug 1367041)
This commit is contained in:
parent
220eec16b5
commit
85e7cbd833
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
mozprocess >= 0.19
|
||||||
mozcrash >= 0.13
|
mozcrash >= 0.13
|
||||||
mozrunner >= 6.7
|
mozrunner >= 6.7
|
||||||
mozleak >= 0.1
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user