From e2ba0811a8cadc14ace76392129f801a3e624c98 Mon Sep 17 00:00:00 2001 From: James Graham Date: Tue, 16 Jan 2018 22:04:25 +0000 Subject: [PATCH 01/42] Run one chunk of tests in firefox on push --- .taskcluster.yml | 27 +++++++++++++++++++++++++++ tools/ci/ci_taskcluster.ci | 4 ++++ 2 files changed, 31 insertions(+) create mode 100644 .taskcluster.yml create mode 100644 tools/ci/ci_taskcluster.ci diff --git a/.taskcluster.yml b/.taskcluster.yml new file mode 100644 index 00000000000000..ad38a865fe4dd7 --- /dev/null +++ b/.taskcluster.yml @@ -0,0 +1,27 @@ +version: 0 +tasks: + - provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' + extra: + github: + events: + - push + branches: + - master + payload: + maxRunTime: 3600 + image: python + command: + - /bin/bash + - '--login' + - '-c' + - >- + git clone {{event.head.repo.url}} repo && cd repo && git config + advice.detachedHead false && git checkout {{event.head.sha}} && + tools/ci/ci_taskcluster.sh firefox testharness 1 12 + metadata: + name: 'firefox-nightly-testharness-1' + description: '' + owner: '{{ event.head.user.email }}' + source: '{{ event.head.repo.url }}' +allowPullRequests: collaborators diff --git a/tools/ci/ci_taskcluster.ci b/tools/ci/ci_taskcluster.ci new file mode 100644 index 00000000000000..871534b372f556 --- /dev/null +++ b/tools/ci/ci_taskcluster.ci @@ -0,0 +1,4 @@ +#!/bin/bash + +pip install virtualenv +./wpt run $1 --log-tbpl=- --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 From 74134e15df53c373fdfacb36b377d4062297e0dd Mon Sep 17 00:00:00 2001 From: James Graham Date: Tue, 16 Jan 2018 22:16:32 +0000 Subject: [PATCH 02/42] Fixup taskcluster --- .taskcluster.yml | 2 +- tools/ci/{ci_taskcluster.ci => ci_taskcluster.sh} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename tools/ci/{ci_taskcluster.ci => ci_taskcluster.sh} (100%) mode change 100644 => 100755 diff --git a/.taskcluster.yml b/.taskcluster.yml index ad38a865fe4dd7..d4a60c099740c6 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -18,7 +18,7 @@ tasks: - >- git clone {{event.head.repo.url}} repo && cd repo && git config advice.detachedHead false && git checkout {{event.head.sha}} && - tools/ci/ci_taskcluster.sh firefox testharness 1 12 + ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 metadata: name: 'firefox-nightly-testharness-1' description: '' diff --git a/tools/ci/ci_taskcluster.ci b/tools/ci/ci_taskcluster.sh old mode 100644 new mode 100755 similarity index 100% rename from tools/ci/ci_taskcluster.ci rename to tools/ci/ci_taskcluster.sh From 46cb5e8c446eb3fd5623ec7263bca8b4a8aa4e2a Mon Sep 17 00:00:00 2001 From: James Graham Date: Tue, 16 Jan 2018 22:23:26 +0000 Subject: [PATCH 03/42] Force python2 --- tools/ci/ci_taskcluster.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 871534b372f556..4093a094f2fa9e 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,4 +1,4 @@ #!/bin/bash pip install virtualenv -./wpt run $1 --log-tbpl=- --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 +python2 wpt run $1 --log-tbpl=- --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 From 8e3d51be16725f49cd1a80f804bddbe4dd9b3c19 Mon Sep 17 00:00:00 2001 From: James Graham Date: Tue, 16 Jan 2018 22:33:03 +0000 Subject: [PATCH 04/42] fixup! Force python2 --- tools/ci/ci_taskcluster.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 4093a094f2fa9e..307971a83c06f5 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,4 +1,4 @@ #!/bin/bash -pip install virtualenv -python2 wpt run $1 --log-tbpl=- --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 +pip2 install virtualenv +python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 From 439e78bea09b17be75de7f5b4a4d745a005f0245 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 10:50:14 +0000 Subject: [PATCH 05/42] Increase logging --- tools/ci/ci_taskcluster.sh | 2 +- tools/wpt/utils.py | 2 +- tools/wpt/wpt.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 307971a83c06f5..650b17d8f2dc8a 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,4 +1,4 @@ #!/bin/bash -pip2 install virtualenv +pip install virtualenv python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 diff --git a/tools/wpt/utils.py b/tools/wpt/utils.py index e1f4cd4bb5c75d..40e1a45d28d0e5 100644 --- a/tools/wpt/utils.py +++ b/tools/wpt/utils.py @@ -39,7 +39,7 @@ def call(*args): Returns a bytestring of the subprocess output if no error. """ - logger.debug("%s" % " ".join(args)) + logger.info("%s" % " ".join(args)) try: return subprocess.check_output(args) except subprocess.CalledProcessError as e: diff --git a/tools/wpt/wpt.py b/tools/wpt/wpt.py index 49f463d2a9ed1e..e183bef230da97 100644 --- a/tools/wpt/wpt.py +++ b/tools/wpt/wpt.py @@ -90,7 +90,7 @@ def setup_virtualenv(path, props): def main(prog=None, argv=None): - logging.basicConfig(level=logging.INFO) + logging.basicConfig(level=logging.DEBUG) if prog is None: prog = sys.argv[0] From a154d54ff5a938de3176883691ad8ad0ecfcd2f4 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 10:56:05 +0000 Subject: [PATCH 06/42] Increase logging --- tools/wpt/virtualenv.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/wpt/virtualenv.py b/tools/wpt/virtualenv.py index 8f36aa93585ffd..d6b606a2a36ac1 100644 --- a/tools/wpt/virtualenv.py +++ b/tools/wpt/virtualenv.py @@ -7,6 +7,7 @@ logger = logging.getLogger(__name__) + class Virtualenv(object): def __init__(self, path): self.path = path @@ -38,7 +39,9 @@ def pip_path(self): def activate(self): path = os.path.join(self.bin_path, "activate_this.py") + logger.info("Activating virtualenv %s" % path) execfile(path, {"__file__": path}) + logger.info(sys.path) def start(self): if not self.exists: From 2a9df579b291fc63f6a29115e3d855899a660279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Tue, 16 Jan 2018 23:19:35 +0000 Subject: [PATCH 07/42] Don't allow fallback alignment in place-content shorthand. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1430622 gecko-commit: 2ea467872d7fcd3dbb31fcf881e4147b6dd6bebe gecko-integration-branch: autoland gecko-reviewers: xidorn, mats --- .../place-content-shorthand-007-ref.html | 22 +++++++++++++++++++ .../place-content-shorthand-007.html | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 css/css-align/content-distribution/place-content-shorthand-007-ref.html create mode 100644 css/css-align/content-distribution/place-content-shorthand-007.html diff --git a/css/css-align/content-distribution/place-content-shorthand-007-ref.html b/css/css-align/content-distribution/place-content-shorthand-007-ref.html new file mode 100644 index 00000000000000..67727f4fd26fb9 --- /dev/null +++ b/css/css-align/content-distribution/place-content-shorthand-007-ref.html @@ -0,0 +1,22 @@ + + +CSS Test Reference + + +Should see a green square centered and at the bottom of the blue square. +
diff --git a/css/css-align/content-distribution/place-content-shorthand-007.html b/css/css-align/content-distribution/place-content-shorthand-007.html new file mode 100644 index 00000000000000..be954c9712189d --- /dev/null +++ b/css/css-align/content-distribution/place-content-shorthand-007.html @@ -0,0 +1,22 @@ + + +CSS Box Alignment: place-content shorthand with fallback + + + + + +Should see a green square centered and at the bottom of the blue square. +
From 2041b3b1e1fdbe3182104aa0a68c440a4abe55bb Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Wed, 17 Jan 2018 06:14:41 +0000 Subject: [PATCH 08/42] Accept null for body param in constructor of Response. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1303025 gecko-commit: 62f5c4a3682381134b607d359824b7605ec15156 gecko-integration-branch: autoland gecko-reviewers: bkelly --- fetch/api/response/response-init-002.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fetch/api/response/response-init-002.html b/fetch/api/response/response-init-002.html index 0bb2e8d0b3b28d..a48af833644efe 100644 --- a/fetch/api/response/response-init-002.html +++ b/fetch/api/response/response-init-002.html @@ -65,6 +65,11 @@ }); }, "Testing empty Response Content-Type header"); + test(function() { + var response = new Response(null, {status: 204}); + assert_equals(response.body, null); + }, "Testing null Response body"); + From 104e3e0399a7bd31e521b0b2b3340bb1b7c52b95 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:03:01 +0000 Subject: [PATCH 09/42] Don't prompt for install --- tools/ci/ci_taskcluster.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 650b17d8f2dc8a..d91e4eae682e30 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,4 +1,4 @@ #!/bin/bash pip install virtualenv -python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 +python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y From 3582712af4c4df7a169c73c3806962d0115ab6eb Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:03:14 +0000 Subject: [PATCH 10/42] Increase logging --- tools/wpt/virtualenv.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/wpt/virtualenv.py b/tools/wpt/virtualenv.py index d6b606a2a36ac1..a0573c0335d9b7 100644 --- a/tools/wpt/virtualenv.py +++ b/tools/wpt/virtualenv.py @@ -40,8 +40,13 @@ def pip_path(self): def activate(self): path = os.path.join(self.bin_path, "activate_this.py") logger.info("Activating virtualenv %s" % path) + old_sys_path = sys.path[:] + logger.info(sys.path) execfile(path, {"__file__": path}) logger.info(sys.path) + for item in sys.path: + if item not in old_sys_path: + logger.info(item) def start(self): if not self.exists: From 11f40d31dc7e50ee115b1740c99b32f5510d3b82 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:15:09 +0000 Subject: [PATCH 11/42] More logging --- tools/wpt/virtualenv.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/wpt/virtualenv.py b/tools/wpt/virtualenv.py index a0573c0335d9b7..7d361d8d70f911 100644 --- a/tools/wpt/virtualenv.py +++ b/tools/wpt/virtualenv.py @@ -54,7 +54,7 @@ def start(self): self.activate() def install(self, *requirements): - call(self.pip_path, "install", *requirements) + logger.info(call(self.pip_path, "install", *requirements)) def install_requirements(self, requirements_path): - call(self.pip_path, "install", "-r", requirements_path) + logger.info(call(self.pip_path, "install", "-r", requirements_path)) From 3bd70ad19d1ec22e0b620c89d7d783532310fb1d Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:19:34 +0000 Subject: [PATCH 12/42] Use sys.executable for virtualenv --- tools/wpt/virtualenv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/wpt/virtualenv.py b/tools/wpt/virtualenv.py index 7d361d8d70f911..6abaec5f875811 100644 --- a/tools/wpt/virtualenv.py +++ b/tools/wpt/virtualenv.py @@ -22,7 +22,7 @@ def exists(self): def create(self): if os.path.exists(self.path): shutil.rmtree(self.path) - call(self.virtualenv, self.path) + call(self.virtualenv, self.path, "-p", sys.executable) @property def bin_path(self): From 280b22b90765f9b2bca0805624de1c2e4c677ef4 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:23:10 +0000 Subject: [PATCH 13/42] Install browser in TC --- tools/ci/ci_taskcluster.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index d91e4eae682e30..e81ae97ea6c8fc 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,4 +1,4 @@ #!/bin/bash pip install virtualenv -python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y +python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser From 853387ea91a39fc712487f0692e609291ce06db1 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:44:56 +0000 Subject: [PATCH 14/42] Install dependencies --- tools/ci/ci_taskcluster.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index e81ae97ea6c8fc..05248a33de40e7 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,4 +1,7 @@ #!/bin/bash -pip install virtualenv +# To make sure we have all the deps installed +sudo apt install firefox + +pip -q install virtualenv python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser From 4953343aa47f23ad27914b36b39070cff1042518 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 11:52:53 +0000 Subject: [PATCH 15/42] fixup! Install dependencies --- tools/ci/ci_taskcluster.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 05248a33de40e7..019b75d3fa37dd 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,7 +1,9 @@ #!/bin/bash +set -xe + # To make sure we have all the deps installed -sudo apt install firefox +apt install firefox pip -q install virtualenv python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser From 5f036d1059ef92a9845e98a0504d6c5b538c9e2e Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 12:51:00 +0000 Subject: [PATCH 16/42] apt udpate --- tools/ci/ci_taskcluster.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 019b75d3fa37dd..1a17207d16c760 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -3,6 +3,8 @@ set -xe # To make sure we have all the deps installed +apt update +apt list apt install firefox pip -q install virtualenv From dddaf142d24cd0800ff31965461be5f867666060 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 13:07:46 +0000 Subject: [PATCH 17/42] Use apt-get with --yes --- tools/ci/ci_taskcluster.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 1a17207d16c760..6016dd0563af04 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -3,9 +3,8 @@ set -xe # To make sure we have all the deps installed -apt update -apt list -apt install firefox +apt-get --yes update +apt-get --yes install firefox pip -q install virtualenv python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser From 33dceb922829ad78eeba361515824b505776f90f Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 13:28:36 +0000 Subject: [PATCH 18/42] Ttry using a taskcluster/desktop-test image --- .taskcluster.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index d4a60c099740c6..87528656495a2e 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,7 +10,7 @@ tasks: - master payload: maxRunTime: 3600 - image: python + image: taskcluster/desktop-test command: - /bin/bash - '--login' From e1209a0e96be6f0d1a6db7278591d36ca5c0f4ed Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 13:37:08 +0000 Subject: [PATCH 19/42] Specify image version --- .taskcluster.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index 87528656495a2e..a824c58a4ec78b 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,7 +10,7 @@ tasks: - master payload: maxRunTime: 3600 - image: taskcluster/desktop-test + image: taskcluster/desktop-test:0.5.7 command: - /bin/bash - '--login' From 0ca79a8224b46dfe1df8f2955581b041be846b70 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 14:21:23 +0000 Subject: [PATCH 20/42] Use more modern image --- .taskcluster.yml | 2 +- tools/ci/ci_taskcluster.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index a824c58a4ec78b..96de583881584a 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,7 +10,7 @@ tasks: - master payload: maxRunTime: 3600 - image: taskcluster/desktop-test:0.5.7 + image: taskcluster/ubuntu1604-test:0.1.3 command: - /bin/bash - '--login' diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 6016dd0563af04..88dd397d012187 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -4,7 +4,7 @@ set -xe # To make sure we have all the deps installed apt-get --yes update -apt-get --yes install firefox +apt-get --yes upgrade pip -q install virtualenv python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser From 08864cb52490e9f20ce372dbc27e5e9123d60184 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 17 Jan 2018 14:30:43 +0000 Subject: [PATCH 21/42] Don't update --- tools/ci/ci_taskcluster.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 88dd397d012187..b78e5a782ae82b 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -3,8 +3,8 @@ set -xe # To make sure we have all the deps installed -apt-get --yes update -apt-get --yes upgrade +#apt-get --yes update +#apt-get --yes upgrade pip -q install virtualenv python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser From 51db1b732976c29243156e8db4483929f3215aef Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 14:16:48 +0000 Subject: [PATCH 22/42] USe custom dockerfile with taskcluster --- .taskcluster.yml | 7 ++-- tools/ci/.bashrc | 3 ++ tools/ci/Dockerfile | 68 ++++++++++++++++++++++++++++++++++++++ tools/ci/ci_taskcluster.sh | 13 +++----- tools/ci/start.sh | 35 ++++++++++++++++++++ 5 files changed, 115 insertions(+), 11 deletions(-) create mode 100644 tools/ci/.bashrc create mode 100644 tools/ci/Dockerfile create mode 100755 tools/ci/start.sh diff --git a/.taskcluster.yml b/.taskcluster.yml index 96de583881584a..3f39c4077985c4 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,14 +10,15 @@ tasks: - master payload: maxRunTime: 3600 - image: taskcluster/ubuntu1604-test:0.1.3 + image: harjgam/web-platform-tests:0.1 command: - /bin/bash - '--login' - '-c' - >- - git clone {{event.head.repo.url}} repo && cd repo && git config - advice.detachedHead false && git checkout {{event.head.sha}} && + /usr/bin/shart.sh && + cd /home/test/web-platform-tests && + git checkout {{event.head.sha}} && ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 metadata: name: 'firefox-nightly-testharness-1' diff --git a/tools/ci/.bashrc b/tools/ci/.bashrc new file mode 100644 index 00000000000000..c08adf6326d953 --- /dev/null +++ b/tools/ci/.bashrc @@ -0,0 +1,3 @@ +function xvfb_start() { + xvfb-run --server-args="-screen 0 $GEOMETRY -ac +extension RANDR" $@ +} diff --git a/tools/ci/Dockerfile b/tools/ci/Dockerfile new file mode 100644 index 00000000000000..7629cb837db0f4 --- /dev/null +++ b/tools/ci/Dockerfile @@ -0,0 +1,68 @@ +FROM ubuntu:16.04 + +# No interactive frontend during docker build +ENV DEBIAN_FRONTEND=noninteractive \ + DEBCONF_NONINTERACTIVE_SEEN=true + +# General requirements not in the base image +RUN apt-get -qqy update \ + && apt-get -qqy install \ + bzip2 \ + ca-certificates \ + git \ + locales \ + pulseaudio \ + python \ + python-pip \ + tzdata \ + sudo \ + unzip \ + wget \ + xvfb + +# Installing just the deps of firefox and chrome is moderately tricky, so +# just install the default versions of them +# TODO: just add the Google Chrome repository here + +RUN apt-get -qqy install \ + firefox \ + chromium-browser \ + libnss3 + +RUN pip install --upgrade pip +RUN pip install virtualenv + +ENV TZ "UTC" +RUN echo "${TZ}" > /etc/timezone \ + && dpkg-reconfigure --frontend noninteractive tzdata + +RUN useradd test \ + --shell /bin/bash \ + --create-home \ + && usermod -a -G sudo test \ + && echo 'ALL ALL = (ALL) NOPASSWD: ALL' >> /etc/sudoers \ + && echo 'test:secret' | chpasswd + +ENV SCREEN_WIDTH 1280 +ENV SCREEN_HEIGHT 1024 +ENV SCREEN_DEPTH 24 +ENV DISPLAY :99.0 + +ENV DBUS_SESSION_BUS_ADDRESS=/dev/null + +COPY start.sh /usr/bin/start.sh + +USER test + +WORKDIR /home/test + +COPY .bashrc /home/test/.bashrc + +# Remove information on how to use sudo on login +RUN sudo echo "" + +RUN git clone https://github.com/w3c/web-platform-tests.git + +ENTRYPOINT ["/usr/bin/start.sh"] + +CMD ["--shell"] \ No newline at end of file diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index b78e5a782ae82b..55e8b9df205f21 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,10 +1,7 @@ #!/bin/bash -set -xe - -# To make sure we have all the deps installed -#apt-get --yes update -#apt-get --yes upgrade - -pip -q install virtualenv -python2 wpt run $1 --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser +if [ $1 == "firefox" ]; then + ./wpt run firefox --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser +elif [ $1 == "chrome" ]; then + ./wpt run chrome --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y +fi diff --git a/tools/ci/start.sh b/tools/ci/start.sh new file mode 100755 index 00000000000000..27219e15c66ed9 --- /dev/null +++ b/tools/ci/start.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +export GEOMETRY="$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH" + +sudo sh -c 'echo "127.0.0.1 web-platform.test +127.0.0.1 www.web-platform.test +127.0.0.1 www1.web-platform.test +127.0.0.1 www2.web-platform.test +127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test +127.0.0.1 xn--lve-6lad.web-platform.test +0.0.0.0 nonexistent-origin.web-platform.test" > /etc/hosts' + +cd web-platform-tests +git pull + +# Install Chome unstable +deb_archive=google-chrome-unstable_current_amd64.deb +wget https://dl.google.com/linux/direct/$deb_archive + +if sudo update-alternatives --list google-chrome; then + sudo update-alternatives --remove-all google-chrome +fi + +# Installation will fail in cases where the package has unmet dependencies. +# When this occurs, attempt to use the system package manager to fetch the +# required packages and retry. +if ! sudo dpkg --install $deb_archive; then + sudo apt-get install --fix-broken + sudo dpkg --install $deb_archive +fi + +if [ "$1" == "--shell" ]; then +do + /bin/bash --login +fi From 468818b8bfd0be75afca3c867ff1a80ee9a76904 Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 14:56:47 +0000 Subject: [PATCH 23/42] Update start script --- tools/ci/start.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/ci/start.sh b/tools/ci/start.sh index 27219e15c66ed9..a8105c0d9bbca6 100755 --- a/tools/ci/start.sh +++ b/tools/ci/start.sh @@ -2,13 +2,14 @@ export GEOMETRY="$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH" -sudo sh -c 'echo "127.0.0.1 web-platform.test +sudo sh -c 'echo " +127.0.0.1 web-platform.test 127.0.0.1 www.web-platform.test 127.0.0.1 www1.web-platform.test 127.0.0.1 www2.web-platform.test 127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test 127.0.0.1 xn--lve-6lad.web-platform.test -0.0.0.0 nonexistent-origin.web-platform.test" > /etc/hosts' +0.0.0.0 nonexistent-origin.web-platform.test" >> /etc/hosts' cd web-platform-tests git pull @@ -25,7 +26,7 @@ fi # When this occurs, attempt to use the system package manager to fetch the # required packages and retry. if ! sudo dpkg --install $deb_archive; then - sudo apt-get install --fix-broken + sudo apt-get -y install --fix-broken sudo dpkg --install $deb_archive fi From 0a0690628c08673633f4c71f32c5564594e2aa76 Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 15:10:58 +0000 Subject: [PATCH 24/42] Fix syntax error in start script, use a shallow clone by default --- tools/ci/Dockerfile | 2 +- tools/ci/start.sh | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/ci/Dockerfile b/tools/ci/Dockerfile index 7629cb837db0f4..b554b23161a429 100644 --- a/tools/ci/Dockerfile +++ b/tools/ci/Dockerfile @@ -61,7 +61,7 @@ COPY .bashrc /home/test/.bashrc # Remove information on how to use sudo on login RUN sudo echo "" -RUN git clone https://github.com/w3c/web-platform-tests.git +RUN git clone --depth=1 https://github.com/w3c/web-platform-tests.git ENTRYPOINT ["/usr/bin/start.sh"] diff --git a/tools/ci/start.sh b/tools/ci/start.sh index a8105c0d9bbca6..105447d6dda126 100755 --- a/tools/ci/start.sh +++ b/tools/ci/start.sh @@ -31,6 +31,5 @@ if ! sudo dpkg --install $deb_archive; then fi if [ "$1" == "--shell" ]; then -do /bin/bash --login fi From 9f5761b8db74f67978975000b6ab2039c9476aa8 Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 15:22:14 +0000 Subject: [PATCH 25/42] Bump image version --- .taskcluster.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index 3f39c4077985c4..d45f58ee42cb68 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,7 +10,7 @@ tasks: - master payload: maxRunTime: 3600 - image: harjgam/web-platform-tests:0.1 + image: harjgam/web-platform-tests:0.2 command: - /bin/bash - '--login' From faeb7b7e26e45452174e7f5f184de7649fafab5d Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 15:41:10 +0000 Subject: [PATCH 26/42] Remove ENTRYPOINT --- tools/ci/Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tools/ci/Dockerfile b/tools/ci/Dockerfile index b554b23161a429..b8a9c986b268a9 100644 --- a/tools/ci/Dockerfile +++ b/tools/ci/Dockerfile @@ -62,7 +62,3 @@ COPY .bashrc /home/test/.bashrc RUN sudo echo "" RUN git clone --depth=1 https://github.com/w3c/web-platform-tests.git - -ENTRYPOINT ["/usr/bin/start.sh"] - -CMD ["--shell"] \ No newline at end of file From 1d25f7140b77dfff03f7f5dc8fb8726015a69c34 Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 18:25:56 +0000 Subject: [PATCH 27/42] Update docker image --- .taskcluster.yml | 6 +++--- tools/ci/Dockerfile | 21 ++++++++++++++++----- tools/ci/start.sh | 8 -------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index d45f58ee42cb68..a192f0f8ccde5d 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,18 +10,18 @@ tasks: - master payload: maxRunTime: 3600 - image: harjgam/web-platform-tests:0.2 + image: harjgam/web-platform-tests:0.4 command: - /bin/bash - '--login' - '-c' - >- - /usr/bin/shart.sh && + /usr/bin/start.sh && cd /home/test/web-platform-tests && git checkout {{event.head.sha}} && ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 metadata: - name: 'firefox-nightly-testharness-1' + name: 'wpt-firefox-nightly-testharness-1' description: '' owner: '{{ event.head.user.email }}' source: '{{ event.head.repo.url }}' diff --git a/tools/ci/Dockerfile b/tools/ci/Dockerfile index b8a9c986b268a9..4e882eafd1a4ac 100644 --- a/tools/ci/Dockerfile +++ b/tools/ci/Dockerfile @@ -21,13 +21,20 @@ RUN apt-get -qqy update \ xvfb # Installing just the deps of firefox and chrome is moderately tricky, so -# just install the default versions of them -# TODO: just add the Google Chrome repository here +# just install the default versions of them, and some extra deps we happen +# to know that chrome requires RUN apt-get -qqy install \ firefox \ chromium-browser \ - libnss3 + libnss3 \ + fonts-liberation \ + indicator-application \ + libappindicator1 \ + libappindicator3-1 \ + libdbusmenu-gtk3-4 \ + libindicator3-7 \ + libindicator7 RUN pip install --upgrade pip RUN pip install virtualenv @@ -50,15 +57,19 @@ ENV DISPLAY :99.0 ENV DBUS_SESSION_BUS_ADDRESS=/dev/null -COPY start.sh /usr/bin/start.sh - USER test WORKDIR /home/test COPY .bashrc /home/test/.bashrc +COPY start.sh /home/test/start.sh + # Remove information on how to use sudo on login RUN sudo echo "" RUN git clone --depth=1 https://github.com/w3c/web-platform-tests.git + +RUN mkdir -p /home/test/.fonts && \ + cp web-platform-tests/fonts/Ahem.ttf ~/.fonts && \ + fc-cache -f -v \ No newline at end of file diff --git a/tools/ci/start.sh b/tools/ci/start.sh index 105447d6dda126..fe3ad7dac5db70 100755 --- a/tools/ci/start.sh +++ b/tools/ci/start.sh @@ -18,10 +18,6 @@ git pull deb_archive=google-chrome-unstable_current_amd64.deb wget https://dl.google.com/linux/direct/$deb_archive -if sudo update-alternatives --list google-chrome; then - sudo update-alternatives --remove-all google-chrome -fi - # Installation will fail in cases where the package has unmet dependencies. # When this occurs, attempt to use the system package manager to fetch the # required packages and retry. @@ -29,7 +25,3 @@ if ! sudo dpkg --install $deb_archive; then sudo apt-get -y install --fix-broken sudo dpkg --install $deb_archive fi - -if [ "$1" == "--shell" ]; then - /bin/bash --login -fi From 765ea6658335331e670ec214770780252b7c3476 Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 18:29:43 +0000 Subject: [PATCH 28/42] Update path --- .taskcluster.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index a192f0f8ccde5d..063fd0775a4cca 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -16,7 +16,7 @@ tasks: - '--login' - '-c' - >- - /usr/bin/start.sh && + ~/start.sh && cd /home/test/web-platform-tests && git checkout {{event.head.sha}} && ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 From 484fe22520a09ffd4a8038722511416d3d87b8d0 Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 22 Jan 2018 18:55:19 +0000 Subject: [PATCH 29/42] Ensure we have commits from the correct repo --- .taskcluster.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.taskcluster.yml b/.taskcluster.yml index 063fd0775a4cca..a8c4798d50be67 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -18,6 +18,8 @@ tasks: - >- ~/start.sh && cd /home/test/web-platform-tests && + git fetch {{event.head.repo.url}} && + git config advice.detachedHead false && git checkout {{event.head.sha}} && ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 metadata: From 7bc0a99f73de8394308c219511b583f2a77031ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 22 Jan 2018 13:13:31 +0000 Subject: [PATCH 30/42] Fix slotted invalidation. This is a partial revert of https://github.com/servo/servo/commit/ce1d8cd232dfbc9e0a52f9467ba2bc209087ea63 If you're in a shadow tree, you may not be slotted but you still need to look at the slotted rules, since a could be a descendant of yours. Just use the same invalidation map everywhere, and remove complexity. This means that we can do some extra work while trying to gather invalidation if there are slotted rules, but I don't think it's a problem. The test is ported from https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/fast/css/invalidation/slotted.html?l=1&rcl=58d68fdf783d7edde1c82a642e037464861f2787 Curiously, Blink fails the test as written, presumably because they don't flush styles from getComputedStyle correctly (in their test they do via updateStyleAndReturnAffectedElementCount), due to s not being in the flat tree in their implementation. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1429846 gecko-commit: bec4537b2efd4f8381c5f398c71bc0f09d4da981 gecko-integration-branch: central gecko-reviewers: heycam --- css/css-scoping/slotted-invalidation.html | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 css/css-scoping/slotted-invalidation.html diff --git a/css/css-scoping/slotted-invalidation.html b/css/css-scoping/slotted-invalidation.html new file mode 100644 index 00000000000000..f8471062e1d0b2 --- /dev/null +++ b/css/css-scoping/slotted-invalidation.html @@ -0,0 +1,35 @@ + +CSS Test: Style invalidation for ::slotted() + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ From d99985d0b818e3920377582277918aa8f6fe795d Mon Sep 17 00:00:00 2001 From: Edgar Chen Date: Mon, 22 Jan 2018 13:13:47 +0000 Subject: [PATCH 31/42] Fix attributeChangedCallback isn't fired with correct newValue when the attribute value is an empty string; bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1430034 gecko-commit: ec468ee9dfc697960b74d83b6889223e9be8de95 gecko-integration-branch: central gecko-reviewers: smaug --- .../attribute-changed-callback.html | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/custom-elements/attribute-changed-callback.html b/custom-elements/attribute-changed-callback.html index bd467912b99959..5090bfbfbfecdf 100644 --- a/custom-elements/attribute-changed-callback.html +++ b/custom-elements/attribute-changed-callback.html @@ -11,6 +11,7 @@
+ From 53a1aedab673ac37e2e7e032658800920ea10d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 22 Jan 2018 17:49:59 +0000 Subject: [PATCH 32/42] Tests for calc() on font-size on various situations. It makes no sense to pass a custom base size of zero in presence of rem, ex, or ch units. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1431031 gecko-commit: a984a3218ffe8ebaad26bff890bc25f00612d859 gecko-integration-branch: central gecko-reviewers: Manishearth --- css/css-values/calc-ch-ex-lang-ref.html | 12 ++++++++++++ css/css-values/calc-ch-ex-lang.html | 16 ++++++++++++++++ css/css-values/calc-rem-lang-ref.html | 6 ++++++ css/css-values/calc-rem-lang.html | 17 +++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 css/css-values/calc-ch-ex-lang-ref.html create mode 100644 css/css-values/calc-ch-ex-lang.html create mode 100644 css/css-values/calc-rem-lang-ref.html create mode 100644 css/css-values/calc-rem-lang.html diff --git a/css/css-values/calc-ch-ex-lang-ref.html b/css/css-values/calc-ch-ex-lang-ref.html new file mode 100644 index 00000000000000..e0ac1ead1e5247 --- /dev/null +++ b/css/css-values/calc-ch-ex-lang-ref.html @@ -0,0 +1,12 @@ + + +CSS Test Reference + + +
diff --git a/css/css-values/calc-ch-ex-lang.html b/css/css-values/calc-ch-ex-lang.html new file mode 100644 index 00000000000000..eb447475d52887 --- /dev/null +++ b/css/css-values/calc-ch-ex-lang.html @@ -0,0 +1,16 @@ + + +CSS Test: Calc in font-size with ch / ex units across lang changes + + + + + + +
+
+
diff --git a/css/css-values/calc-rem-lang-ref.html b/css/css-values/calc-rem-lang-ref.html new file mode 100644 index 00000000000000..a0f6add684a57f --- /dev/null +++ b/css/css-values/calc-rem-lang-ref.html @@ -0,0 +1,6 @@ + + +CSS Test Reference + +

You should see a green box twice-the-initial-font-size wide.

+
diff --git a/css/css-values/calc-rem-lang.html b/css/css-values/calc-rem-lang.html new file mode 100644 index 00000000000000..3994efc003b5a1 --- /dev/null +++ b/css/css-values/calc-rem-lang.html @@ -0,0 +1,17 @@ + + + +CSS Test: Calc with rem and relative units on the root element + + + + + + +

You should see a green box twice-the-initial-font-size wide.

+
+ From 16cab564ecbde46902f32c07a7972d6aadcfa4e8 Mon Sep 17 00:00:00 2001 From: Edgar Chen Date: Tue, 16 Jan 2018 23:09:01 +0000 Subject: [PATCH 33/42] Add WPT test for the attributeChangedCallback which is triggered from parser; bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1425079 gecko-commit: e862a06e4337d21d77adbd8eee3ddde485182ee2 gecko-integration-branch: central gecko-reviewers: smaug --- .../parser-sets-attributes-and-children.html | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/custom-elements/parser/parser-sets-attributes-and-children.html b/custom-elements/parser/parser-sets-attributes-and-children.html index ba331370a78daa..ef4689fac0729e 100644 --- a/custom-elements/parser/parser-sets-attributes-and-children.html +++ b/custom-elements/parser/parser-sets-attributes-and-children.html @@ -8,6 +8,7 @@ +
@@ -15,6 +16,7 @@ var numberOfAttributesInConstructor; var numberOfChildNodesInConstructor; +var attributesChangedCalls = []; class MyCustomElement extends HTMLElement { constructor(...args) { @@ -22,6 +24,14 @@ numberOfAttributesInConstructor = this.attributes.length; numberOfChildNodesInConstructor = this.childNodes.length; } + + attributeChangedCallback(...args) { + attributesChangedCalls.push(create_attribute_changed_callback_log(this, ...args)); + } + + static get observedAttributes() { + return ['id', 'class']; + } }; customElements.define('my-custom-element', MyCustomElement); @@ -54,6 +64,12 @@ assert_equals(numberOfChildNodesInConstructor, 0, 'HTML parser must not append child nodes to a custom element before invoking the constructor'); }, 'HTML parser must set the attributes or append children before calling constructor'); +test(function () { + assert_equals(attributesChangedCalls.length, 2); + assert_attribute_log_entry(attributesChangedCalls[0], {name: 'id', oldValue: null, newValue: 'custom-element-id', namespace: null}); + assert_attribute_log_entry(attributesChangedCalls[1], {name: 'class', oldValue: null, newValue: 'class1 class2', namespace: null}); +}, 'HTML parser must enqueue attributeChanged reactions'); + From 27d28570b073780f32bb403aa236a3fce6cdf937 Mon Sep 17 00:00:00 2001 From: Hiroyuki Ikezoe Date: Tue, 23 Jan 2018 00:34:42 +0000 Subject: [PATCH 34/42] Introduce assert_time_equals_literal and use it. This assertion is supposed to be used where the first argument has a tolerance but the second argument doesn't have such tolerance. Whereas assert_times_equal() is supposed to be used for the case both arguments have the same tolerance, actually it hasn't, it will be fixed in a subsequent patch in this patch series. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1430654 gecko-commit: edbac2302f907df4fca6aea3843bd033a1a1bb89 gecko-integration-branch: central gecko-reviewers: birtles --- web-animations/README.md | 17 +++++++++---- .../AnimationEffectTiming/direction.html | 24 +++++++++---------- .../AnimationEffectTiming/duration.html | 12 +++++----- .../AnimationEffectTiming/endDelay.html | 8 +++---- .../AnimationEffectTiming/iterationStart.html | 6 ++--- .../AnimationEffectTiming/iterations.html | 10 ++++---- web-animations/testcommon.js | 8 +++++++ .../animation-effects/active-time.html | 14 +++++------ .../timing-model/animations/current-time.html | 2 +- .../animations/playing-an-animation.html | 12 +++++----- .../set-the-animation-start-time.html | 15 ++++++------ .../set-the-timeline-of-an-animation.html | 6 ++--- 12 files changed, 77 insertions(+), 57 deletions(-) diff --git a/web-animations/README.md b/web-animations/README.md index 475f58a57b1283..f6efbf977f95bc 100644 --- a/web-animations/README.md +++ b/web-animations/README.md @@ -98,10 +98,19 @@ Guidelines for writing tests Remember, even if we do need to make all tests take, say 200s each, text editors are very good at search and replace. -* Use the `assert_times_equal` assertion for comparing calculated times. - It tests times are equal using the precision recommended in the spec whilst - allowing implementations to override the function to meet their own - precision requirements. +* Use the `assert_times_equal` assertion for comparing times returned from + the API. This asserts that the time values are equal using a tolerance + based on the precision recommended in the spec. This tolerance is applied + to *both* of the values being compared. That is, it effectively allows + double the epsilon that is used when comparing with an absolute value. + + For comparing a time value returned from the API to an absolute value, use + `assert_time_equals_literal`. This tests that the actual value is equal to + the expected value within the precision recommended in the spec. + + Both `assert_times_equal` and `assert_time_equals_literal` are defined in a + way that implementations can override them to meet their own precision + requirements. * There are quite a few bad tests in the repository. We're learning as we go. Don't just copy them blindly—please fix them! diff --git a/web-animations/interfaces/AnimationEffectTiming/direction.html b/web-animations/interfaces/AnimationEffectTiming/direction.html index 7bc315da967162..3238f5d7a5e842 100644 --- a/web-animations/interfaces/AnimationEffectTiming/direction.html +++ b/web-animations/interfaces/AnimationEffectTiming/direction.html @@ -31,13 +31,13 @@ const div = createDiv(t); const anim = div.animate(null, { duration: 10000, direction: 'normal' }); anim.currentTime = 7000; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.7, - 'progress before updating direction'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.7, + 'progress before updating direction'); anim.effect.timing.direction = 'reverse'; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.3, - 'progress after updating direction'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.3, + 'progress after updating direction'); }, 'Can be changed from \'normal\' to \'reverse\' while in progress'); test(t => { @@ -78,13 +78,13 @@ duration: 10000, direction: 'normal' }); anim.currentTime = 17000; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.7, - 'progress before updating direction'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.7, + 'progress before updating direction'); anim.effect.timing.direction = 'alternate'; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.3, - 'progress after updating direction'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.3, + 'progress after updating direction'); }, 'Can be changed from \'normal\' to \'alternate\' while in progress'); test(t => { @@ -94,13 +94,13 @@ duration: 10000, direction: 'alternate' }); anim.currentTime = 17000; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.3, - 'progress before updating direction'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.3, + 'progress before updating direction'); anim.effect.timing.direction = 'alternate-reverse'; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.7, - 'progress after updating direction'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.7, + 'progress after updating direction'); }, 'Can be changed from \'alternate\' to \'alternate-reverse\' while in' + ' progress'); diff --git a/web-animations/interfaces/AnimationEffectTiming/duration.html b/web-animations/interfaces/AnimationEffectTiming/duration.html index 9caa0e36e05d03..42913f552dd40b 100644 --- a/web-animations/interfaces/AnimationEffectTiming/duration.html +++ b/web-animations/interfaces/AnimationEffectTiming/duration.html @@ -19,10 +19,10 @@ const div = createDiv(t); const anim = div.animate({ opacity: [ 0, 1 ] }, 2000); anim.effect.timing.duration = 123.45; - assert_times_equal(anim.effect.timing.duration, 123.45, - 'set duration 123.45'); - assert_times_equal(anim.effect.getComputedTiming().duration, 123.45, - 'getComputedTiming() after set duration 123.45'); + assert_time_equals_literal(anim.effect.timing.duration, 123.45, + 'set duration 123.45'); + assert_time_equals_literal(anim.effect.getComputedTiming().duration, 123.45, + 'getComputedTiming() after set duration 123.45'); }, 'Can be set to a double value'); test(t => { @@ -176,8 +176,8 @@ assert_equals(anim.effect.getComputedTiming().progress, 1, 'progress when animation is finished'); anim.effect.timing.duration *= 2; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5, - 'progress after doubling the duration'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5, + 'progress after doubling the duration'); anim.effect.timing.duration = 0; assert_equals(anim.effect.getComputedTiming().progress, 1, 'progress after setting duration to zero'); diff --git a/web-animations/interfaces/AnimationEffectTiming/endDelay.html b/web-animations/interfaces/AnimationEffectTiming/endDelay.html index b6793edaed5b1b..3062c8c1565d4d 100644 --- a/web-animations/interfaces/AnimationEffectTiming/endDelay.html +++ b/web-animations/interfaces/AnimationEffectTiming/endDelay.html @@ -19,10 +19,10 @@ const div = createDiv(t); const anim = div.animate({ opacity: [ 0, 1 ] }, 2000); anim.effect.timing.endDelay = 123.45; - assert_times_equal(anim.effect.timing.endDelay, 123.45, - 'set endDelay 123.45'); - assert_times_equal(anim.effect.getComputedTiming().endDelay, 123.45, - 'getComputedTiming() after set endDelay 123.45'); + assert_time_equals_literal(anim.effect.timing.endDelay, 123.45, + 'set endDelay 123.45'); + assert_time_equals_literal(anim.effect.getComputedTiming().endDelay, 123.45, + 'getComputedTiming() after set endDelay 123.45'); }, 'Can be set to a positive number'); test(t => { diff --git a/web-animations/interfaces/AnimationEffectTiming/iterationStart.html b/web-animations/interfaces/AnimationEffectTiming/iterationStart.html index 5521f1e85940b9..73bc4810da1958 100644 --- a/web-animations/interfaces/AnimationEffectTiming/iterationStart.html +++ b/web-animations/interfaces/AnimationEffectTiming/iterationStart.html @@ -24,7 +24,7 @@ duration: 100, delay: 1 }); anim.effect.timing.iterationStart = 2.5; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); assert_equals(anim.effect.getComputedTiming().currentIteration, 2); }, 'Changing the value updates computed timing when backwards-filling'); @@ -37,7 +37,7 @@ duration: 100, delay: 0 }); anim.effect.timing.iterationStart = 2.5; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); assert_equals(anim.effect.getComputedTiming().currentIteration, 2); }, 'Changing the value updates computed timing during the active phase'); @@ -51,7 +51,7 @@ delay: 0 }); anim.finish(); anim.effect.timing.iterationStart = 2.5; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); assert_equals(anim.effect.getComputedTiming().currentIteration, 3); }, 'Changing the value updates computed timing when forwards-filling'); diff --git a/web-animations/interfaces/AnimationEffectTiming/iterations.html b/web-animations/interfaces/AnimationEffectTiming/iterations.html index 32390626463516..3bfaf8e9920d18 100644 --- a/web-animations/interfaces/AnimationEffectTiming/iterations.html +++ b/web-animations/interfaces/AnimationEffectTiming/iterations.html @@ -70,10 +70,12 @@ anim.effect.timing.iterations = 2; - assert_times_equal(anim.effect.getComputedTiming().progress, 0, - 'progress after adding an iteration'); - assert_times_equal(anim.effect.getComputedTiming().currentIteration, 1, - 'current iteration after adding an iteration'); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, + 0, + 'progress after adding an iteration'); + assert_time_equals_literal(anim.effect.getComputedTiming().currentIteration, + 1, + 'current iteration after adding an iteration'); anim.effect.timing.iterations = 0; diff --git a/web-animations/testcommon.js b/web-animations/testcommon.js index 51b84dd3e534ea..1acb02ae59b6f3 100644 --- a/web-animations/testcommon.js +++ b/web-animations/testcommon.js @@ -25,6 +25,14 @@ if (!window.assert_times_equal) { }; } +// Allow implementations to substitute an alternative method for comparing +// a time value based on its precision requirements with a fixed value. +if (!window.assert_time_equals_literal) { + window.assert_time_equals_literal = (actual, expected, description) => { + assert_approx_equals(actual, expected, TIME_PRECISION, description); + } +} + // creates div element, appends it to the document body and // removes the created element during test cleanup function createDiv(test, doc) { diff --git a/web-animations/timing-model/animation-effects/active-time.html b/web-animations/timing-model/animation-effects/active-time.html index 3e3b528d534b10..a2feb2323c3308 100644 --- a/web-animations/timing-model/animation-effects/active-time.html +++ b/web-animations/timing-model/animation-effects/active-time.html @@ -25,19 +25,19 @@ test(t => { const anim = createDiv(t).animate(null, 1000); anim.currentTime = 500; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); }, 'Active time in active phase and no start delay is the local time'); test(t => { const anim = createDiv(t).animate(null, { duration: 1000, delay: 500 }); anim.currentTime = 1000; - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); }, 'Active time in active phase and positive start delay is the local time' + ' minus the start delay'); test(t => { const anim = createDiv(t).animate(null, { duration: 1000, delay: -500 }); - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); }, 'Active time in active phase and negative start delay is the local time' + ' minus the start delay'); @@ -58,7 +58,7 @@ fill: 'forwards' }); anim.finish(); assert_equals(anim.effect.getComputedTiming().currentIteration, 2); - assert_times_equal(anim.effect.getComputedTiming().progress, 0.3); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.3); }, 'Active time in after phase with forwards fill is the active duration'); test(t => { @@ -79,7 +79,7 @@ fill: 'forwards' }); anim.finish(); assert_equals(anim.effect.getComputedTiming().currentIteration, 2); - assert_times_equal(anim.effect.getComputedTiming().progress, 0.3); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.3); }, 'Active time in after phase with forwards fill and positive end delay' + ' is the active duration'); @@ -91,7 +91,7 @@ fill: 'forwards' }); anim.finish(); assert_equals(anim.effect.getComputedTiming().currentIteration, 1); - assert_times_equal(anim.effect.getComputedTiming().progress, 0.5); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.5); }, 'Active time in after phase with forwards fill and negative end delay' + ' is the active duration + end delay'); @@ -127,7 +127,7 @@ fill: 'both' }); anim.finish(); assert_equals(anim.effect.getComputedTiming().currentIteration, 2); - assert_times_equal(anim.effect.getComputedTiming().progress, 0.3); + assert_time_equals_literal(anim.effect.getComputedTiming().progress, 0.3); }, 'Active time in after phase with \'both\' fill is the active duration'); test(t => { diff --git a/web-animations/timing-model/animations/current-time.html b/web-animations/timing-model/animations/current-time.html index d2f5075d1b25fa..08f90d9f0c1cbd 100644 --- a/web-animations/timing-model/animations/current-time.html +++ b/web-animations/timing-model/animations/current-time.html @@ -68,7 +68,7 @@ return animation.ready.then(() => waitForAnimationFrames(1)) .then(() => { - assert_times_equal(animation.currentTime, 0); + assert_time_equals_literal(animation.currentTime, 0); }); }, 'The current time does not progress if playback rate is 0'); diff --git a/web-animations/timing-model/animations/playing-an-animation.html b/web-animations/timing-model/animations/playing-an-animation.html index 2beed475e7ec41..1064192051442e 100644 --- a/web-animations/timing-model/animations/playing-an-animation.html +++ b/web-animations/timing-model/animations/playing-an-animation.html @@ -14,26 +14,26 @@ test(t => { const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); animation.currentTime = 1 * MS_PER_SEC; - assert_times_equal(animation.currentTime, 1 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 1 * MS_PER_SEC); animation.play(); - assert_times_equal(animation.currentTime, 1 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 1 * MS_PER_SEC); }, 'Playing a running animation leaves the current time unchanged'); test(t => { const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); animation.finish(); - assert_times_equal(animation.currentTime, 100 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 100 * MS_PER_SEC); animation.play(); - assert_times_equal(animation.currentTime, 0); + assert_time_equals_literal(animation.currentTime, 0); }, 'Playing a finished animation seeks back to the start'); test(t => { const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); animation.playbackRate = -1; animation.currentTime = 0; - assert_times_equal(animation.currentTime, 0); + assert_time_equals_literal(animation.currentTime, 0); animation.play(); - assert_times_equal(animation.currentTime, 100 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 100 * MS_PER_SEC); }, 'Playing a finished and reversed animation seeks to end'); test(t => { diff --git a/web-animations/timing-model/animations/set-the-animation-start-time.html b/web-animations/timing-model/animations/set-the-animation-start-time.html index 1526be05766edb..d2a311d4dd4019 100644 --- a/web-animations/timing-model/animations/set-the-animation-start-time.html +++ b/web-animations/timing-model/animations/set-the-animation-start-time.html @@ -80,9 +80,9 @@ // If we set the start time, however, we should clear the hold time. animation.startTime = document.timeline.currentTime - 2000; - assert_times_equal(animation.currentTime, 2000, - 'The current time is calculated from the start time,' - + ' not the hold time'); + assert_time_equals_literal(animation.currentTime, 2000, + 'The current time is calculated from the start' + + ' time, not the hold time'); // Sanity check assert_equals(animation.playState, 'running', @@ -99,13 +99,14 @@ // are resolved). animation.startTime = document.timeline.currentTime - 1000; assert_equals(animation.playState, 'running'); - assert_times_equal(animation.currentTime, 1000, - 'Current time is resolved for a running animation') + assert_time_equals_literal(animation.currentTime, 1000, + 'Current time is resolved for a running animation'); // Clear start time animation.startTime = null; - assert_times_equal(animation.currentTime, 1000, - 'Hold time is set after start time is made unresolved'); + assert_time_equals_literal(animation.currentTime, 1000, + 'Hold time is set after start time is made' + + ' unresolved'); assert_equals(animation.playState, 'paused', 'Animation reports it is paused after setting an unresolved' + ' start time'); diff --git a/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html b/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html index 8a4421309b9eda..24f201d550c469 100644 --- a/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html +++ b/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html @@ -26,7 +26,7 @@ animation.timeline = document.timeline; assert_equals(animation.playState, 'paused'); - assert_times_equal(animation.currentTime, 50 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 50 * MS_PER_SEC); }, 'After setting timeline on paused animation it is still paused'); test(t => { @@ -39,7 +39,7 @@ animation.timeline = document.timeline; assert_equals(animation.playState, 'paused'); - assert_times_equal(animation.currentTime, 200 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 200 * MS_PER_SEC); }, 'After setting timeline on animation paused outside active interval' + ' it is still paused'); @@ -141,7 +141,7 @@ assert_false(animation.pending); assert_equals(animation.playState, 'paused'); - assert_times_equal(animation.currentTime, 50 * MS_PER_SEC); + assert_time_equals_literal(animation.currentTime, 50 * MS_PER_SEC); }, 'After clearing timeline on paused animation it is still paused'); test(t => { From 04cfc8e8789865a22c5907becf2b54e3376d6be4 Mon Sep 17 00:00:00 2001 From: Hiroyuki Ikezoe Date: Tue, 23 Jan 2018 00:34:46 +0000 Subject: [PATCH 35/42] Double epsilon value for assert_times_equal. Since the function assumes that both of actual and expected values have the same precision requirements. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1430654 gecko-commit: a226a272784c3ac44a6b93136111fb78f2f312e5 gecko-integration-branch: central gecko-reviewers: birtles --- web-animations/testcommon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-animations/testcommon.js b/web-animations/testcommon.js index 1acb02ae59b6f3..be3827fd5d8e54 100644 --- a/web-animations/testcommon.js +++ b/web-animations/testcommon.js @@ -21,7 +21,7 @@ const TIME_PRECISION = 0.0005; // ms // times based on their precision requirements. if (!window.assert_times_equal) { window.assert_times_equal = (actual, expected, description) => { - assert_approx_equals(actual, expected, TIME_PRECISION, description); + assert_approx_equals(actual, expected, TIME_PRECISION * 2, description); }; } From 18b20d14c98db5db288ed63b98079774f25726e8 Mon Sep 17 00:00:00 2001 From: Hiroyuki Ikezoe Date: Tue, 23 Jan 2018 00:34:50 +0000 Subject: [PATCH 36/42] Use assert_times_equal for comparing timing values. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1430654 gecko-commit: 235797f7083a060ada86a217dc7c4e83d238f252 gecko-integration-branch: central gecko-reviewers: birtles --- web-animations/interfaces/Animation/playbackRate.html | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/web-animations/interfaces/Animation/playbackRate.html b/web-animations/interfaces/Animation/playbackRate.html index 9a3b76240f0272..be5bf969498ceb 100644 --- a/web-animations/interfaces/Animation/playbackRate.html +++ b/web-animations/interfaces/Animation/playbackRate.html @@ -14,16 +14,14 @@ previousAnimationCurrentTime, previousTimelineCurrentTime, description) { - const accuracy = 0.001; /* accuracy of DOMHighResTimeStamp */ const animationCurrentTimeDifference = animation.currentTime - previousAnimationCurrentTime; const timelineCurrentTimeDifference = animation.timeline.currentTime - previousTimelineCurrentTime; - assert_approx_equals(animationCurrentTimeDifference, - timelineCurrentTimeDifference * animation.playbackRate, - accuracy, - description); + assert_times_equal(animationCurrentTimeDifference, + timelineCurrentTimeDifference * animation.playbackRate, + description); } promise_test(t => { From ef92ae53b1e79e3da37e07f1b7118822dd95a40e Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 24 Jan 2018 21:01:45 +0000 Subject: [PATCH 37/42] update docker image --- .taskcluster.yml | 33 ++++++++++++++++++++++++++++++++- tools/ci/.bashrc | 1 + tools/ci/Dockerfile | 9 +++++---- tools/ci/ci_taskcluster.sh | 4 ++-- tools/ci/start.sh | 6 +++--- 5 files changed, 43 insertions(+), 10 deletions(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index a8c4798d50be67..95948822bdc1e1 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -10,7 +10,7 @@ tasks: - master payload: maxRunTime: 3600 - image: harjgam/web-platform-tests:0.4 + image: harjgam/web-platform-tests:0.5 command: - /bin/bash - '--login' @@ -27,4 +27,35 @@ tasks: description: '' owner: '{{ event.head.user.email }}' source: '{{ event.head.repo.url }}' + artifacts: + public/results: + path: /home/test/artifacts + type: directory + - provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' + extra: + github: + events: + - push + branches: + - master + payload: + maxRunTime: 3600 + image: harjgam/web-platform-tests:0.5 + command: + - /bin/bash + - '--login' + - '-c' + - >- + ~/start.sh && + cd /home/test/web-platform-tests && + git fetch {{event.head.repo.url}} && + git config advice.detachedHead false && + git checkout {{event.head.sha}} && + ./tools/ci/ci_taskcluster.sh chrome testharness 1 12 + metadata: + name: 'wpt-chrome-dev-testharness-1' + description: '' + owner: '{{ event.head.user.email }}' + source: '{{ event.head.repo.url }}' allowPullRequests: collaborators diff --git a/tools/ci/.bashrc b/tools/ci/.bashrc index c08adf6326d953..bbe03c489aa528 100644 --- a/tools/ci/.bashrc +++ b/tools/ci/.bashrc @@ -1,3 +1,4 @@ function xvfb_start() { + GEOMETRY="$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH" xvfb-run --server-args="-screen 0 $GEOMETRY -ac +extension RANDR" $@ } diff --git a/tools/ci/Dockerfile b/tools/ci/Dockerfile index 4e882eafd1a4ac..28fdd78b3ec008 100644 --- a/tools/ci/Dockerfile +++ b/tools/ci/Dockerfile @@ -9,6 +9,7 @@ RUN apt-get -qqy update \ && apt-get -qqy install \ bzip2 \ ca-certificates \ + dbus-x11 \ git \ locales \ pulseaudio \ @@ -27,7 +28,7 @@ RUN apt-get -qqy update \ RUN apt-get -qqy install \ firefox \ chromium-browser \ - libnss3 \ + libnss3-tools \ fonts-liberation \ indicator-application \ libappindicator1 \ @@ -55,8 +56,6 @@ ENV SCREEN_HEIGHT 1024 ENV SCREEN_DEPTH 24 ENV DISPLAY :99.0 -ENV DBUS_SESSION_BUS_ADDRESS=/dev/null - USER test WORKDIR /home/test @@ -72,4 +71,6 @@ RUN git clone --depth=1 https://github.com/w3c/web-platform-tests.git RUN mkdir -p /home/test/.fonts && \ cp web-platform-tests/fonts/Ahem.ttf ~/.fonts && \ - fc-cache -f -v \ No newline at end of file + fc-cache -f -v + +RUN mkdir -p /home/test/artifacts \ No newline at end of file diff --git a/tools/ci/ci_taskcluster.sh b/tools/ci/ci_taskcluster.sh index 55e8b9df205f21..38c84628f15d53 100755 --- a/tools/ci/ci_taskcluster.sh +++ b/tools/ci/ci_taskcluster.sh @@ -1,7 +1,7 @@ #!/bin/bash if [ $1 == "firefox" ]; then - ./wpt run firefox --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser + ./wpt run firefox --log-tbpl=- --log-tbpl-level=debug --log-wptreport=../artifacts/wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --install-browser --no-pause --no-restart-on-unexpected elif [ $1 == "chrome" ]; then - ./wpt run chrome --log-tbpl=- --log-tbpl-level=debug --log-wptreport=wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y + ./wpt run chrome --log-tbpl=- --log-tbpl-level=debug --log-wptreport=../artifacts/wpt_report.json --this-chunk=$3 --total-chunks=$4 --test-type=$2 -y --no-pause --no-restart-on-unexpected fi diff --git a/tools/ci/start.sh b/tools/ci/start.sh index fe3ad7dac5db70..f4adb90d7cb22e 100755 --- a/tools/ci/start.sh +++ b/tools/ci/start.sh @@ -1,7 +1,5 @@ #!/bin/bash -export GEOMETRY="$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH" - sudo sh -c 'echo " 127.0.0.1 web-platform.test 127.0.0.1 www.web-platform.test @@ -12,7 +10,7 @@ sudo sh -c 'echo " 0.0.0.0 nonexistent-origin.web-platform.test" >> /etc/hosts' cd web-platform-tests -git pull +git pull --depth=1 # Install Chome unstable deb_archive=google-chrome-unstable_current_amd64.deb @@ -25,3 +23,5 @@ if ! sudo dpkg --install $deb_archive; then sudo apt-get -y install --fix-broken sudo dpkg --install $deb_archive fi + +sudo Xvfb $DISPLAY -screen 0 ${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH} & From 6c3dcca97ca4f1763c893d3a6295667b447cd3c3 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 24 Jan 2018 21:12:29 +0000 Subject: [PATCH 38/42] Remove attempt to upload artifacts --- .taskcluster.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index 95948822bdc1e1..359ad7f12bcc2c 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -27,10 +27,6 @@ tasks: description: '' owner: '{{ event.head.user.email }}' source: '{{ event.head.repo.url }}' - artifacts: - public/results: - path: /home/test/artifacts - type: directory - provisionerId: '{{ taskcluster.docker.provisionerId }}' workerType: '{{ taskcluster.docker.workerType }}' extra: From cd1ed8e8e49fe63c6487f2d0db26950a2e6c01b0 Mon Sep 17 00:00:00 2001 From: James Graham Date: Wed, 24 Jan 2018 21:45:21 +0000 Subject: [PATCH 39/42] Upload artifacts and change wpt run exit code --- .taskcluster.yml | 4 ++++ tools/wpt/run.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index 359ad7f12bcc2c..aa8262615d7b7a 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -22,6 +22,10 @@ tasks: git config advice.detachedHead false && git checkout {{event.head.sha}} && ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 + artifacts: + public/results: + path: /home/test/artifacts + type: directory metadata: name: 'wpt-firefox-nightly-testharness-1' description: '' diff --git a/tools/wpt/run.py b/tools/wpt/run.py index d1e3e49519c914..c6f3dbc0d240e4 100644 --- a/tools/wpt/run.py +++ b/tools/wpt/run.py @@ -397,7 +397,8 @@ def log(x): def run_single(venv, **kwargs): from wptrunner import wptrunner - return wptrunner.start(**kwargs) + wptrunner.start(**kwargs) + return def main(): From 01b25397fefd14f1181234164592cae4b81d8f69 Mon Sep 17 00:00:00 2001 From: James Graham Date: Thu, 25 Jan 2018 11:14:44 +0000 Subject: [PATCH 40/42] Add code for generating a complete static taskgraph for Chrome and Forefox runs --- .taskcluster.yml | 746 +++++++++++++++++++++++++++++++++++++---- tools/ci/commands.json | 4 +- tools/ci/taskgraph.py | 121 +++++++ 3 files changed, 810 insertions(+), 61 deletions(-) create mode 100644 tools/ci/taskgraph.py diff --git a/.taskcluster.yml b/.taskcluster.yml index aa8262615d7b7a..f19874b8788245 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -1,61 +1,687 @@ -version: 0 -tasks: - - provisionerId: '{{ taskcluster.docker.provisionerId }}' - workerType: '{{ taskcluster.docker.workerType }}' - extra: - github: - events: - - push - branches: - - master - payload: - maxRunTime: 3600 - image: harjgam/web-platform-tests:0.5 - command: - - /bin/bash - - '--login' - - '-c' - - >- - ~/start.sh && - cd /home/test/web-platform-tests && - git fetch {{event.head.repo.url}} && - git config advice.detachedHead false && - git checkout {{event.head.sha}} && - ./tools/ci/ci_taskcluster.sh firefox testharness 1 12 - artifacts: - public/results: - path: /home/test/artifacts - type: directory - metadata: - name: 'wpt-firefox-nightly-testharness-1' - description: '' - owner: '{{ event.head.user.email }}' - source: '{{ event.head.repo.url }}' - - provisionerId: '{{ taskcluster.docker.provisionerId }}' - workerType: '{{ taskcluster.docker.workerType }}' - extra: - github: - events: - - push - branches: - - master - payload: - maxRunTime: 3600 - image: harjgam/web-platform-tests:0.5 - command: - - /bin/bash - - '--login' - - '-c' - - >- - ~/start.sh && - cd /home/test/web-platform-tests && - git fetch {{event.head.repo.url}} && - git config advice.detachedHead false && - git checkout {{event.head.sha}} && - ./tools/ci/ci_taskcluster.sh chrome testharness 1 12 - metadata: - name: 'wpt-chrome-dev-testharness-1' - description: '' - owner: '{{ event.head.user.email }}' - source: '{{ event.head.repo.url }}' allowPullRequests: collaborators +tasks: +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-wdspec-1, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome wdspec 1 1"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-1, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 1 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-2, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 2 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-3, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 3 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-4, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 4 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-5, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 5 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-6, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 6 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-7, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 7 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-8, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 8 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-9, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 9 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-10, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 10 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-11, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 11 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-testharness-12, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome testharness 12 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-reftests-1, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome reftests 1 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-reftests-2, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome reftests 2 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-reftests-3, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome reftests 3 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-reftests-4, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome reftests 4 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-reftests-5, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome reftests 5 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-chrome-dev-reftests-6, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ chrome reftests 6 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-wdspec-1, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox wdspec 1 1"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-1, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 1 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-2, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 2 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-3, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 3 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-4, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 4 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-5, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 5 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-6, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 6 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-7, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 7 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-8, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 8 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-9, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 9 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-10, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 10 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-11, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 11 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-testharness-12, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox testharness 12 12"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-reftests-1, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox reftests 1 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-reftests-2, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox reftests 2 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-reftests-3, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox reftests 3 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-reftests-4, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox reftests 4 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-reftests-5, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox reftests 5 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +- extra: + github: + branches: [master] + events: [push] + metadata: {description: '', name: wpt-firefox-nightly-reftests-6, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} + payload: + artifacts: + public/results: {path: /home/test/artifacts, type: directory} + command: [/bin/bash, --login, -c, ">-\n ~/start.sh &&\n \ + \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ + \ &&\n git config advice.detachedHead false &&\n git\ + \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ + \ firefox reftests 6 6"] + image: harjgam/web-platform-tests:0.5 + maxRunTime: 3600 + provisionerId: '{{ taskcluster.docker.provisionerId }}' + workerType: '{{ taskcluster.docker.workerType }}' +version: 0 diff --git a/tools/ci/commands.json b/tools/ci/commands.json index d682d2a506440c..862fde037b5a3b 100644 --- a/tools/ci/commands.json +++ b/tools/ci/commands.json @@ -2,5 +2,7 @@ "test-jobs": {"path": "jobs.py", "script": "run", "parser": "create_parser", "help": "List test jobs that should run for a set of commits", "virtualenv": false}, "check-stability": {"path": "check_stability.py", "script": "run", "parser": "get_parser", "parse_known": true, "help": "Check test stability", - "virtualenv": true, "install": ["requests"], "requirements": ["../wptrunner/requirements.txt"]} + "virtualenv": true, "install": ["requests"], "requirements": ["../wptrunner/requirements.txt"]}, + "generate-tasks": {"path": "taskgraph.py", "script": "run", "parser": "get_parser", "parse_known": true, "help": "Generate taskcluster.yml file containing the run tasks", + "virtualenv": true, "install": ["pyyaml"]} } diff --git a/tools/ci/taskgraph.py b/tools/ci/taskgraph.py new file mode 100644 index 00000000000000..c87089ca251536 --- /dev/null +++ b/tools/ci/taskgraph.py @@ -0,0 +1,121 @@ +import argparse +import copy +import os + +import yaml + + +here = os.path.dirname(__file__) +wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir)) + + +task_template = { + "provisionerId": "{{ taskcluster.docker.provisionerId }}", + "workerType": "{{ taskcluster.docker.workerType }}", + "extra": { + "github": { + "events": ["push"], + "branches": ["master"], + }, + }, + "payload": { + "maxRunTime": 3600, + "image": "harjgam/web-platform-tests:0.5", + "command":[ + "/bin/bash", + "--login", + "-c", + """>- + ~/start.sh && + cd /home/test/web-platform-tests && + git fetch {{event.head.repo.url}} && + git config advice.detachedHead false && + git checkout {{event.head.sha}} && + %(command)s"""], + "artifacts": { + "public/results": { + "path": "/home/test/artifacts", + "type": "directory" + } + } + }, + "metadata": { + "name": "wpt-%(browser_name)s-%(suite)s-%(chunk)s", + "description": "", + "owner": "{{ event.head.user.email }}", + "source": "{{ event.head.repo.url }}", + } +} + + +file_template = { + "version": 0, + "tasks": [], + "allowPullRequests": "collaborators" +} + +suites = { + "testharness": {"chunks": 12}, + "reftests": {"chunks": 6}, + "wdspec": {"chunks": 1} +} + +browsers = { + "firefox": {"name": "firefox-nightly"}, + "chrome": {"name": "chrome-dev"} +} + + +def get_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--dest", + action="store", + default=wpt_root, + help="Directory to write the .taskcluster.yml file to") + return parser + + +def fill(template, data): + rv = {} + for key, value in template.iteritems(): + rv[key] = fill_inner(value, data) + return rv + + +def fill_inner(value, data): + if isinstance(value, (str, unicode)): + return value % data + elif isinstance(value, dict): + return fill(value, data) + elif isinstance(value, list): + return [fill_inner(item, data) for item in value] + elif isinstance(value, (float, int, long)): + return value + else: + raise ValueError + + +def run(venv, *args, **kwargs): + if not os.path.isdir(kwargs["dest"]): + raise ValueError("Invalid directory %s" % kwargs["dest"]) + + task_config = copy.deepcopy(file_template) + for browser, browser_props in browsers.iteritems(): + for suite, suite_props in suites.iteritems(): + total_chunks = suite_props.get("chunks", 1) + for chunk in xrange(1, total_chunks + 1): + data = { + "suite": suite, + "chunk": chunk, + "browser_name": browser_props["name"], + "command": ("./tools/ci/ci_taskcluster.sh %s %s %s %s" % + (browser, suite, chunk, total_chunks)) + } + + task_data = fill(task_template, data) + task_config["tasks"].append(task_data) + + with open(os.path.join(kwargs["dest"], ".taskcluster.yml"), "w") as f: + yaml.dump(task_config, f) + + From d2eb4e598d2b0434e649eaa01e2950b5d298ca9f Mon Sep 17 00:00:00 2001 From: James Graham Date: Thu, 25 Jan 2018 11:52:52 +0000 Subject: [PATCH 41/42] Fix reftest type name --- .taskcluster.yml | 176 +++++++++++++++++++++--------------------- tools/ci/taskgraph.py | 3 +- 2 files changed, 89 insertions(+), 90 deletions(-) diff --git a/.taskcluster.yml b/.taskcluster.yml index f19874b8788245..fed74f53010faa 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -4,7 +4,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-wdspec-1, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-reftest-1, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -13,7 +13,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome wdspec 1 1"] + \ chrome reftest 1 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -22,7 +22,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-1, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-reftest-2, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -31,7 +31,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 1 12"] + \ chrome reftest 2 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -40,7 +40,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-2, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-reftest-3, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -49,7 +49,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 2 12"] + \ chrome reftest 3 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -58,7 +58,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-3, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-reftest-4, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -67,7 +67,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 3 12"] + \ chrome reftest 4 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -76,7 +76,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-4, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-reftest-5, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -85,7 +85,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 4 12"] + \ chrome reftest 5 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -94,7 +94,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-5, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-reftest-6, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -103,7 +103,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 5 12"] + \ chrome reftest 6 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -112,7 +112,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-6, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-wdspec-1, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -121,7 +121,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 6 12"] + \ chrome wdspec 1 1"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -130,7 +130,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-7, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-1, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -139,7 +139,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 7 12"] + \ chrome testharness 1 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -148,7 +148,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-8, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-2, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -157,7 +157,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 8 12"] + \ chrome testharness 2 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -166,7 +166,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-9, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-3, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -175,7 +175,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 9 12"] + \ chrome testharness 3 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -184,7 +184,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-10, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-4, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -193,7 +193,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 10 12"] + \ chrome testharness 4 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -202,7 +202,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-11, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-5, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -211,7 +211,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 11 12"] + \ chrome testharness 5 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -220,7 +220,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-testharness-12, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-6, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -229,7 +229,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome testharness 12 12"] + \ chrome testharness 6 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -238,7 +238,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-reftests-1, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-7, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -247,7 +247,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome reftests 1 6"] + \ chrome testharness 7 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -256,7 +256,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-reftests-2, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-8, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -265,7 +265,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome reftests 2 6"] + \ chrome testharness 8 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -274,7 +274,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-reftests-3, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-9, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -283,7 +283,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome reftests 3 6"] + \ chrome testharness 9 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -292,7 +292,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-reftests-4, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-10, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -301,7 +301,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome reftests 4 6"] + \ chrome testharness 10 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -310,7 +310,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-reftests-5, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-11, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -319,7 +319,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome reftests 5 6"] + \ chrome testharness 11 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -328,7 +328,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-chrome-dev-reftests-6, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-chrome-dev-testharness-12, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -337,7 +337,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ chrome reftests 6 6"] + \ chrome testharness 12 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -346,7 +346,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-wdspec-1, owner: '{{ event.head.user.email + metadata: {description: '', name: wpt-firefox-nightly-reftest-1, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -355,7 +355,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox wdspec 1 1"] + \ firefox reftest 1 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -364,8 +364,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-1, owner: '{{ - event.head.user.email }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-reftest-2, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -373,7 +373,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 1 12"] + \ firefox reftest 2 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -382,8 +382,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-2, owner: '{{ - event.head.user.email }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-reftest-3, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -391,7 +391,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 2 12"] + \ firefox reftest 3 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -400,8 +400,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-3, owner: '{{ - event.head.user.email }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-reftest-4, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -409,7 +409,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 3 12"] + \ firefox reftest 4 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -418,8 +418,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-4, owner: '{{ - event.head.user.email }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-reftest-5, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -427,7 +427,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 4 12"] + \ firefox reftest 5 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -436,8 +436,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-5, owner: '{{ - event.head.user.email }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-reftest-6, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -445,7 +445,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 5 12"] + \ firefox reftest 6 6"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -454,8 +454,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-6, owner: '{{ - event.head.user.email }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-wdspec-1, owner: '{{ event.head.user.email + }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -463,7 +463,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 6 12"] + \ firefox wdspec 1 1"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -472,7 +472,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-7, owner: '{{ + metadata: {description: '', name: wpt-firefox-nightly-testharness-1, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -481,7 +481,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 7 12"] + \ firefox testharness 1 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -490,7 +490,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-8, owner: '{{ + metadata: {description: '', name: wpt-firefox-nightly-testharness-2, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -499,7 +499,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 8 12"] + \ firefox testharness 2 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -508,7 +508,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-9, owner: '{{ + metadata: {description: '', name: wpt-firefox-nightly-testharness-3, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -517,7 +517,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 9 12"] + \ firefox testharness 3 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -526,7 +526,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-10, owner: '{{ + metadata: {description: '', name: wpt-firefox-nightly-testharness-4, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -535,7 +535,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 10 12"] + \ firefox testharness 4 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -544,7 +544,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-11, owner: '{{ + metadata: {description: '', name: wpt-firefox-nightly-testharness-5, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -553,7 +553,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 11 12"] + \ firefox testharness 5 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -562,7 +562,7 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-testharness-12, owner: '{{ + metadata: {description: '', name: wpt-firefox-nightly-testharness-6, owner: '{{ event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: @@ -571,7 +571,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox testharness 12 12"] + \ firefox testharness 6 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -580,8 +580,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-reftests-1, owner: '{{ event.head.user.email - }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-testharness-7, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -589,7 +589,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox reftests 1 6"] + \ firefox testharness 7 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -598,8 +598,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-reftests-2, owner: '{{ event.head.user.email - }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-testharness-8, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -607,7 +607,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox reftests 2 6"] + \ firefox testharness 8 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -616,8 +616,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-reftests-3, owner: '{{ event.head.user.email - }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-testharness-9, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -625,7 +625,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox reftests 3 6"] + \ firefox testharness 9 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -634,8 +634,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-reftests-4, owner: '{{ event.head.user.email - }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-testharness-10, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -643,7 +643,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox reftests 4 6"] + \ firefox testharness 10 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -652,8 +652,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-reftests-5, owner: '{{ event.head.user.email - }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-testharness-11, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -661,7 +661,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox reftests 5 6"] + \ firefox testharness 11 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' @@ -670,8 +670,8 @@ tasks: github: branches: [master] events: [push] - metadata: {description: '', name: wpt-firefox-nightly-reftests-6, owner: '{{ event.head.user.email - }}', source: '{{ event.head.repo.url }}'} + metadata: {description: '', name: wpt-firefox-nightly-testharness-12, owner: '{{ + event.head.user.email }}', source: '{{ event.head.repo.url }}'} payload: artifacts: public/results: {path: /home/test/artifacts, type: directory} @@ -679,7 +679,7 @@ tasks: \ cd /home/test/web-platform-tests &&\n git fetch {{event.head.repo.url}}\ \ &&\n git config advice.detachedHead false &&\n git\ \ checkout {{event.head.sha}} &&\n ./tools/ci/ci_taskcluster.sh\ - \ firefox reftests 6 6"] + \ firefox testharness 12 12"] image: harjgam/web-platform-tests:0.5 maxRunTime: 3600 provisionerId: '{{ taskcluster.docker.provisionerId }}' diff --git a/tools/ci/taskgraph.py b/tools/ci/taskgraph.py index c87089ca251536..e404def4655b51 100644 --- a/tools/ci/taskgraph.py +++ b/tools/ci/taskgraph.py @@ -56,7 +56,7 @@ suites = { "testharness": {"chunks": 12}, - "reftests": {"chunks": 6}, + "reftest": {"chunks": 6}, "wdspec": {"chunks": 1} } @@ -118,4 +118,3 @@ def run(venv, *args, **kwargs): with open(os.path.join(kwargs["dest"], ".taskcluster.yml"), "w") as f: yaml.dump(task_config, f) - From 6ac6a8f0f17e65672b3e2cb8091ee1dc3a222548 Mon Sep 17 00:00:00 2001 From: Masayuki Nakano Date: Thu, 25 Jan 2018 23:45:09 +0000 Subject: [PATCH 42/42] part 2: Add wpt-tests to check if insertParagraph command splits or doesn't split inline elements at their edge Spec bug: https://github.com/w3c/editing/issues/172 Inline elements in paragraph except anchor elements which have non-empty href attribute should be created in new paragraph even when new ones are empty because users must expect to keep writing some text with same style, but for anchor elements with non-empty href attribute, users must not expect to create same link in new paragraph in most cases. bugzilla-url: https://bugzilla-dev.allizom.org/show_bug.cgi?id=1422234 gecko-commit: 0637a8fc925bb17562559396f7217bb71e4b1c9e gecko-integration-branch: central gecko-reviewers: m_kato --- editing/data/insertparagraph.js | 286 ++++++++++++++++++++++++++++++-- 1 file changed, 276 insertions(+), 10 deletions(-) diff --git a/editing/data/insertparagraph.js b/editing/data/insertparagraph.js index 70811ca9954468..fcf9e855e1c311 100644 --- a/editing/data/insertparagraph.js +++ b/editing/data/insertparagraph.js @@ -780,6 +780,36 @@ var browserTests = [ "

foo

{}bar

", [true,true], {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["
foo[]
", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
foo
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["
foo[]
", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
foo
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["
foo[]
", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
foo
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], ["foo[]bar", [["defaultparagraphseparator","div"],["insertparagraph",""]], "
foo
{}bar
", @@ -790,6 +820,36 @@ var browserTests = [ "

foo

{}bar

", [true,true], {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

[]foo

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "


{}foo

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["
[]foo
", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "

{}foo
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

[]foo

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "


{}foo

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["
[]foo
", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "

{}foo
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

[]foo

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "


{}foo

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["
[]foo
", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "

{}foo
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], ["foo[]bar", [["defaultparagraphseparator","div"],["insertparagraph",""]], "
foo
{}bar
", @@ -860,16 +920,6 @@ var browserTests = [ "

foo

{}bar

", [true,true,true], {"stylewithcss":[false,true,"",false,false,""],"defaultparagraphseparator":[false,false,"p",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], -["

[]foo

", - [["defaultparagraphseparator","div"],["insertparagraph",""]], - "


{}foo

", - [true,true], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], -["

[]foo

", - [["defaultparagraphseparator","p"],["insertparagraph",""]], - "


{}foo

", - [true,true], - {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], ["

foo[]bar

", [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]], "

foo

{}bar

", @@ -930,6 +980,38 @@ var browserTests = [ "

foo

{}barbaz

", [true,true], {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]bar

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}bar

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]bar

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}bar

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]bar

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}bar

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +// shouldn't be duplicated in new paragraph when it's split at +// start or end of it. ["foo[]bar", [["defaultparagraphseparator","div"],["insertparagraph",""]], "
{}bar
", @@ -950,6 +1032,190 @@ var browserTests = [ "

foo

{}bar

", [true,true], {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

[]foo

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "


{}foo

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "

", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

[]foo

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "


{}foo

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "

", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo[]

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

[]foo

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "


{}foo

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "

", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +//
is usually inserted after an element is split next to +// an ASCII whitespace. So,
element should be ignored if it's invisible. +["

foo []

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo []

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo []

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo {}

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo {}

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo {}

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "
{}
", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +// So, if
is visible, its any inline containers should be split. +["

foo []

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo []

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo []

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo {}

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo {}

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], +["

foo {}

", + [["defaultparagraphseparator","div"],["insertparagraph",""]], + "

foo

{}

", + [true,true], + {"defaultparagraphseparator":[false,false,"p",false,false,"div"],"insertparagraph":[false,false,"",false,false,""]}], +["", + [["defaultparagraphseparator","p"],["insertparagraph",""]], + "", + [true,true], + {"defaultparagraphseparator":[false,false,"div",false,false,"p"],"insertparagraph":[false,false,"",false,false,""]}], + ["

foo[]", [["defaultparagraphseparator","div"],["insertparagraph",""]], "

foo

{}

",