Bug 1470266 - [ci] Schedule serviceworker-e10s web-platform-test tasks with linux64/debug on mozilla-central, r=jgraham,jmaher
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Wed, 17 Oct 2018 14:39:40 +0000
changeset 497430 c77616575b61861ab271efcb0a821ad2c8085687
parent 497429 ddaf0bd9ee3ae6da8cbb809a36b8c089e07d8655
child 497431 fbd19192e4fc1e66c4eefaede7d356fdd8627285
push id9996
push userarchaeopteryx@coole-files.de
push dateThu, 18 Oct 2018 18:37:15 +0000
treeherdermozilla-beta@8efe26839243 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgraham, jmaher
bugs1470266
milestone64.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1470266 - [ci] Schedule serviceworker-e10s web-platform-test tasks with linux64/debug on mozilla-central, r=jgraham,jmaher This duplicates all web-platform-test mozharness based tests except with dom.serviceWorkers.parent_intercept set to true. Differential Revision: https://phabricator.services.mozilla.com/D8916
taskcluster/ci/config.yml
taskcluster/ci/test/web-platform.yml
taskcluster/taskgraph/transforms/tests.py
testing/web-platform/meta/server-timing/service_worker_idl.https.html.ini
testing/web-platform/meta/service-workers/service-worker/fetch-csp.https.html.ini
testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -37,17 +37,19 @@ treeherder:
         'T-P-e10s': 'Talos performance tests with e10s and gecko profiling'
         'tt': 'Telemetry tests'
         'tt-e10s': 'Telemetry tests with e10s'
         'SY-e10s': 'Are we slim yet tests by TaskCluster with e10s'
         'SYsd-e10s': 'Are we slim yet tests by TaskCluster with e10s, Stylo disabled'
         'SYss-e10s': 'Are we slim yet tests by TaskCluster with e10s, Stylo sequential'
         'VP': 'VideoPuppeteer tests'
         'W': 'Web platform tests'
+        'W-sw': 'Web platform tests with serviceworker redesign'
         'W-e10s': 'Web platform tests with e10s'
+        'W-sw-e10s': 'Web platform tests with serviceworker redesign and e10s'
         'X': 'Xpcshell tests'
         'X-e10s': 'Xpcshell tests with e10s'
         'L10n': 'Localised Repacks'
         'L10n-Rpk': 'Localized Repackaged Repacks'
         'BM-L10n': 'Beetmover for locales'
         'BMR-L10n': 'Beetmover repackages for locales'
         'c-Up': 'Balrog submission of complete updates'
         'cs': 'Checksum signing'
--- a/taskcluster/ci/test/web-platform.yml
+++ b/taskcluster/ci/test/web-platform.yml
@@ -1,11 +1,15 @@
 job-defaults:
     instance-size: xlarge
     max-run-time: 5400
+    serviceworker-e10s:
+        by-test-platform:
+            linux64/debug: both
+            default: false
     mozharness:
         script: web_platform_tests.py
         config:
             by-test-platform:
                 windows.*:
                     - web_platform_tests/prod_config_windows_taskcluster.py
                 macosx.*:
                     - web_platform_tests/prod_config.py
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -832,16 +832,19 @@ def split_serviceworker_e10s(config, tes
             group, symbol = split_symbol(test['treeherder-symbol'])
             if group != '?':
                 group += '-sw'
             else:
                 symbol += '-sw'
             test['treeherder-symbol'] = join_symbol(group, symbol)
             test['mozharness']['extra-options'].append(
                 '--setpref="dom.serviceWorkers.parent_intercept=true"')
+
+            if 'web-platform' in test['suite']:
+                test['tier'] = 2
         yield test
 
 
 @transforms.add
 def split_e10s(config, tests):
     for test in tests:
         e10s = test['e10s']
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/server-timing/service_worker_idl.https.html.ini
@@ -0,0 +1,7 @@
+[service_worker_idl.https.html]
+  expected:
+    if sw-e10s: ERROR
+
+  [sw]
+    expected:
+      if sw-e10s: FAIL
--- a/testing/web-platform/meta/service-workers/service-worker/fetch-csp.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/fetch-csp.https.html.ini
@@ -1,3 +1,4 @@
 [fetch-csp.https.html]
   [Verify CSP control of fetch() in a Service Worker]
-    expected: FAIL
+    expected:
+        if not sw-e10s: FAIL
--- a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -136,20 +136,28 @@ def env_options():
     #
     # https://github.com/web-platform-tests/wpt/pull/9480
     return {"server_host": "127.0.0.1",
             "bind_address": False,
             "supports_debugger": True}
 
 
 def run_info_extras(**kwargs):
+
+    def get_bool_pref(pref):
+        for key, value in kwargs.get('extra_prefs', []):
+            if pref == key:
+                return value.lower() in ('true', '1')
+        return False
+
     return {"e10s": kwargs["gecko_e10s"],
             "wasm": kwargs.get("wasm", True),
             "verify": kwargs["verify"],
-            "headless": "MOZ_HEADLESS" in os.environ}
+            "headless": "MOZ_HEADLESS" in os.environ,
+            "sw-e10s": get_bool_pref("dom.serviceWorkers.parent_intercept"),}
 
 
 def update_properties():
     return (["debug", "webrender", "e10s", "os", "version", "processor", "bits"],
             {"debug", "e10s", "webrender"})
 
 
 class FirefoxBrowser(Browser):