Bug 1254964 - Enable manual taskcluster scheduling for valgrind-mochitest runs. r=dustin@mozilla.com.
authorJulian Seward <jseward@acm.org>
Tue, 22 Nov 2016 11:25:01 +0100
changeset 442358 4513f4dad1002547dc4b043748ddf4df8cff1cd9
parent 442357 a180081b5cb3f7c65d9f594cc278feafd1bf84db
child 442359 7cd44d064d92f033aecf24f2bfbc115b143beaf7
push id36688
push usersledru@mozilla.com
push dateTue, 22 Nov 2016 11:20:42 +0000
reviewersdustin
bugs1254964
milestone53.0a1
Bug 1254964 - Enable manual taskcluster scheduling for valgrind-mochitest runs. r=dustin@mozilla.com.
taskcluster/ci/desktop-test/test-platforms.yml
taskcluster/ci/desktop-test/test-sets.yml
taskcluster/ci/desktop-test/tests.yml
taskcluster/taskgraph/transforms/task.py
--- a/taskcluster/ci/desktop-test/test-platforms.yml
+++ b/taskcluster/ci/desktop-test/test-platforms.yml
@@ -8,25 +8,25 @@
 # for the platform, referring to tests defined in test-sets.yml.
 #
 # Note that set does not depend on the tree; tree-dependent job selection
 # should be performed in the target task selection phase of task-graph
 # generation.
 
 linux64/debug:
     build-platform: linux64/debug
-    test-set: all-tests
+    test-set: all-tests-debug
 linux64/opt:
     build-platform: linux64/opt
-    test-set: all-tests
+    test-set: all-tests-opt
 
 # TODO: use 'pgo' and 'asan' labels here, instead of -pgo/opt
 linux64-pgo/opt:
     build-platform: linux64-pgo/opt
-    test-set: all-tests
+    test-set: all-tests-debug
 linux64-asan/opt:
     build-platform: linux64-asan/opt
     test-set: asan-tests
 
 # Stylo builds only run a subset of tests for the moment. So give them
 # their own test set.
 linux64-stylo/debug:
     build-platform: linux64-stylo/debug
--- a/taskcluster/ci/desktop-test/test-sets.yml
+++ b/taskcluster/ci/desktop-test/test-sets.yml
@@ -4,17 +4,17 @@
 # Note that set does not depend on the tree; tree-dependent job selection
 # should be performed in the target task selection phase of task-graph
 # generation.
 #
 # A test set has a name, and a list of tests that it contains.
 #
 # Test names given here reference tests.yml.
 
-all-tests:
+all-tests-debug:
     - cppunit
     - crashtest
     - external-media-tests
     - firefox-ui-functional-local
     - firefox-ui-functional-remote
     - gtest
     - jittest
     - jsreftest
@@ -31,16 +31,46 @@ all-tests:
     - mochitest-webgl
     - reftest
     - reftest-no-accel
     - web-platform-tests
     - web-platform-tests-reftests
     - web-platform-tests-wdspec
     - xpcshell
 
+# This is the same as all-tests-debug,
+# with the addition of "mochitest-valgrind".
+all-tests-opt:
+    - cppunit
+    - crashtest
+    - external-media-tests
+    - firefox-ui-functional-local
+    - firefox-ui-functional-remote
+    - gtest
+    - jittest
+    - jsreftest
+    - marionette
+    - mochitest
+    - mochitest-a11y
+    - mochitest-browser-chrome
+    - mochitest-chrome
+    - mochitest-clipboard
+    - mochitest-devtools-chrome
+    - mochitest-gpu
+    - mochitest-jetpack
+    - mochitest-media
+    - mochitest-webgl
+    - reftest
+    - reftest-no-accel
+    - web-platform-tests
+    - web-platform-tests-reftests
+    - web-platform-tests-wdspec
+    - xpcshell
+    - mochitest-valgrind
+
 stylo-tests:
     - cppunit
     - crashtest
     - reftest-stylo
 
 asan-tests:
     - cppunit
     - crashtest
--- a/taskcluster/ci/desktop-test/tests.yml
+++ b/taskcluster/ci/desktop-test/tests.yml
@@ -513,16 +513,42 @@ mochitest-other:
               - remove_executables.py
               - unittests/mac_unittest.py
             default:
               - unittests/linux_unittest.py
               - remove_executables.py
         extra-options:
             - --mochitest-suite=chrome,a11y
 
+mochitest-valgrind:
+    description: "Mochitest plain Valgrind run"
+    suite: mochitest/valgrind-plain
+    treeherder-symbol: tc-M-V()
+    run-on-projects: []
+    loopback-video: true
+    chunks: 40
+    max-run-time: 14400
+    # We could re-enable e10s later.
+    # There's no intrinsic reason not to use it.
+    e10s: false
+    mozharness:
+        script: desktop_unittest.py
+        no-read-buildbot-config: true
+        chunked: true
+        config:
+            by-test-platform:
+                win.*:
+                    - unittests/win_taskcluster_unittest.py
+                default:
+                    - unittests/linux_unittest.py
+                    - remove_executables.py
+        extra-options:
+            - --mochitest-suite=valgrind-plain
+    allow-software-gl-layers: false
+
 mochitest-webgl:
     description: "Mochitest webgl run"
     suite: mochitest/mochitest-gl
     treeherder-symbol: tc-M(gl)
     chunks: 3
     loopback-video: true
     mozharness:
         script: desktop_unittest.py
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -291,16 +291,17 @@ GROUP_NAMES = {
     'tc': 'Executed by TaskCluster',
     'tc-e10s': 'Executed by TaskCluster with e10s',
     'tc-Fxfn-l': 'Firefox functional tests (local) executed by TaskCluster',
     'tc-Fxfn-l-e10s': 'Firefox functional tests (local) executed by TaskCluster with e10s',
     'tc-Fxfn-r': 'Firefox functional tests (remote) executed by TaskCluster',
     'tc-Fxfn-r-e10s': 'Firefox functional tests (remote) executed by TaskCluster with e10s',
     'tc-M': 'Mochitests executed by TaskCluster',
     'tc-M-e10s': 'Mochitests executed by TaskCluster with e10s',
+    'tc-M-V': 'Mochitests on Valgrind executed by TaskCluster',
     'tc-R': 'Reftests executed by TaskCluster',
     'tc-R-e10s': 'Reftests executed by TaskCluster with e10s',
     'tc-VP': 'VideoPuppeteer tests executed by TaskCluster',
     'tc-W': 'Web platform tests executed by TaskCluster',
     'tc-W-e10s': 'Web platform tests executed by TaskCluster with e10s',
     'tc-X': 'Xpcshell tests executed by TaskCluster',
     'tc-X-e10s': 'Xpcshell tests executed by TaskCluster with e10s',
     'Aries': 'Aries Device Image',