Bug 632954 - Enable tests on Android PGO; r=jmaher
☠☠ backed out by d7e6fff52db3 ☠ ☠
authorMike Shal <mshal@mozilla.com>
Mon, 18 Mar 2019 23:53:38 +0000
changeset 465145 429c96e4de3234447b0aaf00214422ad84e98b83
parent 465144 de8beacc5eb45a75087c1e9b8b69276d11888d53
child 465146 8353a7e41bca13c5734623dbbc0f1c6da98ffdc2
push id35732
push useropoprus@mozilla.com
push dateWed, 20 Mar 2019 10:52:37 +0000
treeherdermozilla-central@708979f9c3f3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjmaher
bugs632954
milestone68.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 632954 - Enable tests on Android PGO; r=jmaher Differential Revision: https://phabricator.services.mozilla.com/D22827
taskcluster/ci/test/compiled.yml
taskcluster/ci/test/misc.yml
taskcluster/ci/test/mochitest.yml
taskcluster/ci/test/raptor.yml
taskcluster/ci/test/reftest.yml
taskcluster/ci/test/test-platforms.yml
taskcluster/ci/test/xpcshell.yml
taskcluster/taskgraph/transforms/tests.py
taskcluster/taskgraph/try_option_syntax.py
--- a/taskcluster/ci/test/compiled.yml
+++ b/taskcluster/ci/test/compiled.yml
@@ -25,17 +25,20 @@ job-defaults:
 cppunit:
     description: "CPP Unit Tests"
     suite: cppunittest
     treeherder-symbol: Cpp
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
-    run-on-projects: built-projects
+    run-on-projects:
+        by-test-platform:
+            android-em-4.3-arm7-api-16/opt: ['try']
+            default: built-projects
 
 gtest:
     description: "GTests run"
     suite: gtest
     treeherder-symbol: GTest
     instance-size: xlarge
     run-on-projects:
         by-test-platform:
@@ -72,16 +75,17 @@ jittest:
             # empty string would fail to match /(?!-ccov)/ so the whole thing
             # would succeed. The beginning /?=linux/ is needed because the
             # platform "linux64" doesn't have enough characters for both the
             # beginning /linux/ and the final /...../.
             #
             # Additionally, platforms contain suffixes like "/opt" or "/debug".
             (?=linux).*(?!-ccov)...../.*: []  # redundant with SM(...)
             (?=windows).*(?!-ccov)...../.*: []  # redundant with SM(p)
+            android-hw-.*-api-16/opt: ['try']
             default: built-projects
     chunks:
         by-test-platform:
             windows.*: 1
             windows10-64-ccov/debug: 6
             macosx.*: 1
             macosx64/debug: 3
             macosx64-ccov/debug: 4
--- a/taskcluster/ci/test/misc.yml
+++ b/taskcluster/ci/test/misc.yml
@@ -11,17 +11,22 @@ geckoview-junit:
         by-test-platform:
             android-em-7.*: 3
             default: default
     chunks:
         by-test-platform:
             android-em-4.3-arm7-api-16-ccov/debug: 8
             android-em-4.3-arm7-api-16/debug: 8
             android-em-4.3-arm7-api-16/opt: 3
+            android-em-4.3-arm7-api-16-pgo/opt: 3
             default: 1
+    run-on-projects:
+        by-test-platform:
+            android-em-4.3-arm7-api-16/opt: ['try']
+            default: built-projects
     mozharness:
         script: android_emulator_unittest.py
         config:
             by-test-platform:
                 android-em-7.*:
                     - android/android_common.py
                     - android/androidx86_7_0.py
                 android-em-4.*:
@@ -35,18 +40,23 @@ robocop:
     suite: robocop
     treeherder-symbol: M(rc)
     instance-size: xlarge
     chunks:
         by-test-platform:
             # android-em-4.3-arm7-api-16/debug -- not run
             android-em-4.3-arm7-api-16-ccov/debug: 8
             android-em-4.3-arm7-api-16/opt: 4
+            android-em-4.3-arm7-api-16-pgo/opt: 4
     loopback-video: true
     e10s: false
+    run-on-projects:
+        by-test-platform:
+            android-em-4.3-arm7-api-16/opt: ['try']
+            default: built-projects
     mozharness:
         script: android_emulator_unittest.py
         config:
             - android/android_common.py
             - android/androidarm_4_3.py
         extra-options:
             - --test-suite=robocop
 
@@ -72,16 +82,17 @@ test-verify:
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
     max-run-time: 10800
     allow-software-gl-layers: false
     run-on-projects:
         by-test-platform:
+            android-em-4.3-arm7-api-16/opt: ['try']
             # do not run on ccov
             .*-ccov/.*: []
             .*-asan/.*: []
             (?:windows10-64|windows7-32|linux64)(?:-qr)?/opt: ['mozilla-central', 'try']
             # do not run on beta or release: usually just confirms earlier results
             default: ['trunk', 'try']
     tier: 2
     mozharness:
--- a/taskcluster/ci/test/mochitest.yml
+++ b/taskcluster/ci/test/mochitest.yml
@@ -3,16 +3,20 @@ job-defaults:
         by-test-platform:
             android-em-7.*: geckoview-androidTest.apk
             default: null
     serviceworker-e10s:
         by-test-platform:
             linux64/debug: both
             default: false
     socketprocess-e10s: false
+    run-on-projects:
+        by-test-platform:
+            android-em-4.3-arm7-api-16/opt: ['try']
+            default: built-projects
     mozharness:
         script:
             by-test-platform:
                 android-em.*: android_emulator_unittest.py
                 android-hw.*: android_hardware_unittest.py
                 default: desktop_unittest.py
         config:
             by-test-platform:
@@ -33,17 +37,16 @@ job-defaults:
                 windows.*:
                     - unittests/win_taskcluster_unittest.py
 
 mochitest:
     description: "Mochitest plain run"
     suite: mochitest/plain-chunked
     treeherder-symbol: M()
     loopback-video: true
-    run-on-projects: built-projects
     tier:
         by-test-platform:
             android-em-7.*/opt: 2
             default: default
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
@@ -252,17 +255,16 @@ mochitest-devtools-webreplay:
         by-test-platform:
             macosx64.*/opt: ['trunk', 'try']
             default: []
 
 mochitest-gpu:
     description: "Mochitest GPU run"
     suite: mochitest/gpu
     treeherder-symbol: M(gpu)
-    run-on-projects: built-projects
     loopback-video: true
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
     virtualization: virtual-with-gpu
     e10s:
         by-test-platform:
@@ -282,17 +284,21 @@ mochitest-media:
     description: "Mochitest media run"
     suite: mochitest/mochitest-media
     treeherder-symbol: M(mda)
     max-run-time:
         by-test-platform:
             windows10-64-ccov/debug: 7200
             macosx64-ccov/debug: 7200
             default: 5400
-    run-on-projects: built-projects
+    run-on-projects:
+        by-test-platform:
+            android-hw-.*-api-16/opt: ['try']
+            android-em-4.3-arm7-api-16/opt: ['try']
+            default: built-projects
     socketprocess-e10s:
         by-test-platform:
             android.*: false
             default: both
     loopback-video: true
     virtualization:
         by-test-platform:
             windows10-64(?:-pgo)?-qr/.*: virtual-with-gpu
--- a/taskcluster/ci/test/raptor.yml
+++ b/taskcluster/ci/test/raptor.yml
@@ -8,16 +8,17 @@ job-defaults:
     workdir:
         by-test-platform:
             android-hw.*: /builds/worker
             default: /home/cltbld
     run-on-projects:
         by-test-platform:
             windows10-64-ux: ['try', 'mozilla-central']
             (?:windows10-64|windows7-32|linux64)(?:-qr)?/opt: ['mozilla-central', 'try']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     tier:
         by-test-platform:
             windows10-64-ccov/.*: 3
             linux64-ccov/.*: 3
             android-hw-g5.*: 2
             default: 1
     virtualization:
@@ -258,17 +259,18 @@ raptor-tp6-binast-1-firefox:
             - --test=raptor-tp6-binast-1
 
 raptor-tp6m-1-geckoview:
     description: "Raptor tp6m-1 on Geckoview"
     try-name: raptor-tp6m-1-geckoview
     treeherder-symbol: Rap(tp6m-1)
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     target: geckoview_example.apk
     tier:
         by-test-platform:
             android-hw-p2-8-0-android-aarch64.*: 1
             default: 2
     mozharness:
         extra-options:
@@ -279,18 +281,19 @@ raptor-tp6m-1-geckoview:
 
 raptor-tp6m-2-geckoview:
     description: "Raptor tp6m-2 on Geckoview"
     try-name: raptor-tp6m-2-geckoview
     treeherder-symbol: Rap(tp6m-2)
     target: geckoview_example.apk
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
-            android-hw-g5.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-g5.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     tier: 2
     mozharness:
         extra-options:
             - --test=raptor-tp6m-2
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
             - --activity=GeckoViewActivity
@@ -322,36 +325,38 @@ raptor-tp6m-4-geckoview:
             - --binary=org.mozilla.geckoview_example
 
 raptor-tp6m-5-geckoview:
     description: "Raptor tp6m-5 on Geckoview"
     try-name: raptor-tp6m-5-geckoview
     treeherder-symbol: Rap(tp6m-5)
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
-            android-hw-g5.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-g5.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     target: geckoview_example.apk
     tier: 2
     mozharness:
         extra-options:
             - --test=raptor-tp6m-5
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
             - --activity=GeckoViewActivity
 
 raptor-tp6m-6-geckoview:
     description: "Raptor tp6m-6 on Geckoview"
     try-name: raptor-tp6m-6-geckoview
     treeherder-symbol: Rap(tp6m-6)
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
-            android-hw-g5.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-g5.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     target: geckoview_example.apk
     tier: 2
     mozharness:
         extra-options:
             - --test=raptor-tp6m-6
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
@@ -371,18 +376,19 @@ raptor-tp6m-7-geckoview:
             - --activity=GeckoViewActivity
 
 raptor-tp6m-8-geckoview:
     description: "Raptor tp6m-8 on Geckoview"
     try-name: raptor-tp6m-8-geckoview
     treeherder-symbol: Rap(tp6m-8)
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
-            android-hw-g5.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-g5.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     target: geckoview_example.apk
     tier: 2
     mozharness:
         extra-options:
             - --test=raptor-tp6m-8
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
@@ -424,34 +430,37 @@ raptor-speedometer-firefox-profiling:
 
 raptor-speedometer-geckoview:
     description: "Raptor Speedometer on Geckoview"
     try-name: raptor-speedometer-geckoview
     treeherder-symbol: Rap(sp)
     target: geckoview_example.apk
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     max-run-time: 900
     mozharness:
         extra-options:
             - --test=raptor-speedometer
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
             - --activity=GeckoViewActivity
 
 raptor-speedometer-geckoview-power:
     description: "Raptor Speedometer Power on Geckoview"
     try-name: raptor-speedometer-geckoview-power
     treeherder-symbol: Rap-P(sp)
     target: geckoview_example.apk
     run-on-projects:
         by-test-platform:
-            android-hw.*: ['try', 'mozilla-central']
+            android-hw.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-aarch64/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
     max-run-time: 1800
     mozharness:
         extra-options:
             - --test=raptor-speedometer
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
             - --power-test
             - --page-cycles 5
@@ -460,16 +469,17 @@ raptor-speedometer-geckoview-power:
 
 raptor-speedometer-fennec:
     description: "Raptor Speedometer on Fennec"
     try-name: raptor-speedometer-fennec
     treeherder-symbol: Rap(sp)
     target: target.apk
     run-on-projects:
         by-test-platform:
+            android-hw-.*-api-16/opt: ['try']
             android-hw.*: ['try', 'trunk', 'mozilla-beta']
     tier: 2
     max-run-time: 900
     mozharness:
         extra-options:
             - --test=raptor-speedometer-fennec
             - --app=fennec
             - --binary=org.mozilla.fennec_aurora
@@ -602,17 +612,18 @@ raptor-unity-webgl-firefox-profiling:
 
 raptor-unity-webgl-geckoview:
     description: "Raptor Unity WebGL on Geckoview"
     try-name: raptor-unity-webgl-geckoview
     treeherder-symbol: Rap(ugl)
     target: geckoview_example.apk
     run-on-projects:
         by-test-platform:
-            android-hw-p2-8-0-arm7.*: ['try', 'mozilla-central']
+            android-hw-p2-8-0-arm7.*-pgo/opt: ['try', 'mozilla-central']
+            android-hw-.*-api-16/opt: ['try']
             default: ['try', 'trunk', 'mozilla-beta']
     max-run-time: 900
     tier: 3
     mozharness:
         extra-options:
             - --test=raptor-unity-webgl
             - --app=geckoview
             - --binary=org.mozilla.geckoview_example
--- a/taskcluster/ci/test/reftest.yml
+++ b/taskcluster/ci/test/reftest.yml
@@ -2,16 +2,20 @@ job-defaults:
     target:
         by-test-platform:
             android-em-7.*: geckoview-androidTest.apk
             default: null
     serviceworker-e10s:
         by-test-platform:
             linux64/debug: both
             default: false
+    run-on-projects:
+        by-test-platform:
+            android-em-4.3-arm7-api-16/opt: ['try']
+            default: built-projects
     mozharness:
         script:
             by-test-platform:
                 android-em.*: android_emulator_unittest.py
                 default: desktop_unittest.py
         config:
             by-test-platform:
                 android-em-7.*:
@@ -27,46 +31,45 @@ job-defaults:
                     - unittests/mac_unittest.py
                 windows.*:
                     - unittests/win_taskcluster_unittest.py
 
 crashtest:
     description: "Crashtest run"
     suite: reftest/crashtest
     treeherder-symbol: R(C)
-    run-on-projects: built-projects
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
     virtualization:
         by-test-platform:
             windows10-64(?:-pgo)?-qr/.*: virtual-with-gpu
             default: virtual
     chunks:
         by-test-platform:
             android-em-4.3-arm7-api-16/debug: 10
             android-em-4.3-arm7-api-16/opt: 4
+            android-em-4.3-arm7-api-16-pgo/opt: 4
             android-em-7.*: 1
             default: 1
     e10s:
         by-test-platform:
             linux32/debug: both
             default: true
     max-run-time:
         by-test-platform:
             android-em.*: 7200
             default: 3600
 
 jsreftest:
     description: "JS Reftest run"
     suite: reftest/jsreftest
     schedules-component: jsreftest  # scheduling for this reftest is different from the others..
     treeherder-symbol: R(J)
-    run-on-projects: built-projects
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
     chunks:
         by-test-platform:
             android-em-4.3-arm7-api-16/debug: 100
             android-em-7.0-x86_64/opt: 4
@@ -87,17 +90,16 @@ jsreftest:
             windows10-64-ccov/debug: 7200
             macosx64-ccov/debug: 7200
             default: 3600
 
 reftest:
     description: "Reftest run"
     suite: reftest/reftest
     treeherder-symbol: R(R)
-    run-on-projects: built-projects
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
     virtualization: virtual-with-gpu
     chunks:
         by-test-platform:
             android-em-4.3-arm7-api-16/debug: 56
--- a/taskcluster/ci/test/test-platforms.yml
+++ b/taskcluster/ci/test/test-platforms.yml
@@ -361,16 +361,22 @@ android-em-4.3-arm7-api-16/debug:
 #         - android-ccov-tests
 
 android-em-4.3-arm7-api-16/opt:
     build-platform: android-api-16/opt
     test-sets:
         - android-common-tests
         - android-opt-tests
 
+android-em-4.3-arm7-api-16-pgo/opt:
+    build-platform: android-api-16-pgo/opt
+    test-sets:
+        - android-common-tests
+        - android-opt-tests
+
 android-em-7.0-x86/opt:
     build-platform: android-x86/opt
     test-sets:
         - android-x86-tests
 
 android-em-7.0-x86_64/opt:
     build-platform: android-x86_64/opt
     test-sets:
@@ -388,18 +394,33 @@ android-em-7.0-x86_64/debug:
 
 android-hw-g5-7-0-arm7-api-16/opt:
     build-platform: android-api-16/opt
     test-sets:
         - android-hw-arm7-raptor
         - android-hw-arm7-raptor-power
         - raptor-fetch-geckoview
 
+android-hw-g5-7-0-arm7-api-16-pgo/opt:
+    build-platform: android-api-16-pgo/opt
+    test-sets:
+        - android-hw-arm7-raptor
+        - android-hw-arm7-raptor-power
+        - raptor-fetch-geckoview
+
 # android-hw-p2-8-0 Google Pixel 2 Android 8.0
 
+android-hw-p2-8-0-arm7-api-16-pgo/opt:
+    build-platform: android-api-16-pgo/opt
+    test-sets:
+        - android-hw-arm7-opt-unittests
+        - android-hw-arm7-raptor
+        - android-hw-arm7-raptor-power
+        - raptor-fetch-geckoview
+
 android-hw-p2-8-0-arm7-api-16/opt:
     build-platform: android-api-16/opt
     test-sets:
         - android-hw-arm7-opt-unittests
         - android-hw-arm7-raptor
         - android-hw-arm7-raptor-power
         - raptor-fetch-geckoview
 
--- a/taskcluster/ci/test/xpcshell.yml
+++ b/taskcluster/ci/test/xpcshell.yml
@@ -29,16 +29,17 @@ job-defaults:
 xpcshell:
     description: "xpcshell test run"
     suite: xpcshell
     treeherder-symbol: X(X)
     run-on-projects:
         by-test-platform:
             windows10-64-asan/opt: []  # No XPCShell on ASAN yet
             windows10-aarch64/opt: ['try', 'mozilla-central']
+            android-em-4.3-arm7-api-16/opt: ['try']
             default: built-projects
     chunks:
         by-test-platform:
             linux32/debug: 12
             linux64/debug: 10
             android-em-4.3-arm7-api-16/debug: 12
             macosx.*: 1
             windows.*: 1
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -608,16 +608,17 @@ def set_treeherder_machine_platform(conf
         'win64-aarch64/opt': 'windows10-aarch64/opt',
         'win32-pgo/opt': 'windows7-32/pgo',
         'win64-pgo/opt': 'windows10-64/pgo',
         # The build names for Android platforms have partially evolved over the
         # years and need to be translated.
         'android-api-16/debug': 'android-em-4-3-armv7-api16/debug',
         'android-api-16-ccov/debug': 'android-em-4-3-armv7-api16-ccov/debug',
         'android-api-16/opt': 'android-em-4-3-armv7-api16/opt',
+        'android-api-16-pgo/opt': 'android-em-4-3-armv7-api16-pgo/opt',
         'android-x86/opt': 'android-em-4-2-x86/opt',
         'android-api-16-gradle/opt': 'android-api-16-gradle/opt',
     }
     for test in tests:
         # For most desktop platforms, the above table is not used for "regular"
         # builds, so we'll always pick the test platform here.
         # On macOS though, the regular builds are in the table.  This causes a
         # conflict in `verify_task_graph_symbol` once you add a new test
@@ -681,16 +682,17 @@ def set_tier(config, tests):
                                          'macosx64/opt',
                                          'macosx64/debug',
                                          'macosx64-nightly/opt',
                                          'macosx64-devedition/opt',
                                          'macosx64-qr/opt',
                                          'macosx64-qr/debug',
                                          'android-em-4.3-arm7-api-16/opt',
                                          'android-em-4.3-arm7-api-16/debug',
+                                         'android-em-4.3-arm7-api-16-pgo/opt',
                                          'android-em-4.2-x86/opt',
                                          'android-em-7.0-x86_64/opt',
                                          'android-em-7.0-x86_64/debug',
                                          'android-em-7.0-x86/opt']:
                 test['tier'] = 1
             else:
                 test['tier'] = 2
 
--- a/taskcluster/taskgraph/try_option_syntax.py
+++ b/taskcluster/taskgraph/try_option_syntax.py
@@ -125,16 +125,17 @@ UNITTEST_PLATFORM_PRETTY_NAMES = {
         'linux64-stylo-sequential'
     ],
     'x64': [
         'linux64',
         'linux64-asan',
         'linux64-stylo-sequential'
     ],
     'Android 4.3 Emulator': ['android-em-4.3-arm7-api-16'],
+    'Android 4.3 Emulator PGO': ['android-em-4-3-armv7-api16-pgo'],
     'Android 7.0 Moto G5 32bit': ['android-hw-g5-7.0-arm7-api-16'],
     'Android 8.0 Google Pixel 2 32bit': ['android-hw-p2-8.0-arm7-api-16'],
     'Android 8.0 Google Pixel 2 64bit': ['android-hw-p2-8.0-android-aarch64'],
     '10.10': ['macosx64'],
     # other commonly-used substrings for platforms not yet supported with
     # in-tree taskgraphs:
     # '10.10.5': [..TODO..],
     # '10.6': [..TODO..],