Bug 1288501 - Accept total-chunk, this-chunk options in android_emulator_unittest.py; r=kmoir
authorGeoff Brown <gbrown@mozilla.com>
Fri, 22 Jul 2016 14:31:37 -0600
changeset 331483 06d44cf3896ac44f50af9ca28983e9a26b6fa456
parent 331482 c7a461e12223126b0c03c8037e896e26cc0bb6f0
child 331484 cd089ab2eadabd3ef34c399a43567725bff6f4dd
push id9858
push userjlund@mozilla.com
push dateMon, 01 Aug 2016 14:37:10 +0000
treeherdermozilla-aurora@203106ef6cb6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskmoir
bugs1288501
milestone50.0a1
Bug 1288501 - Accept total-chunk, this-chunk options in android_emulator_unittest.py; r=kmoir
testing/mozharness/configs/android/androidarm_4_3.py
testing/mozharness/mozharness/mozilla/testing/errors.py
testing/mozharness/scripts/android_emulator_unittest.py
--- a/testing/mozharness/configs/android/androidarm_4_3.py
+++ b/testing/mozharness/configs/android/androidarm_4_3.py
@@ -75,16 +75,17 @@ config = {
                 "--certificate-path=%(certs_path)s",
                 "--symbols-path=%(symbols_path)s",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
                 "--log-errorsummary=%(error_summary_file)s",
                 "--extra-profile-file=fonts",
                 "--extra-profile-file=hyphenation",
                 "--screenshot-on-fail",
+                "--total-chunks=20",
             ],
         },
         "mochitest-gl": {
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest",
             "options": [
                 "--dm_trans=adb",
                 "--app=%(app)s",
@@ -98,16 +99,38 @@ config = {
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
                 "--log-errorsummary=%(error_summary_file)s",
                 "--screenshot-on-fail",
                 "--total-chunks=10",
                 "--subsuite=webgl",
             ],
         },
+        "mochitest-chrome": {
+            "run_filename": "runtestsremote.py",
+            "testsdir": "mochitest",
+            "options": [
+                "--dm_trans=adb",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
+                "--extra-profile-file=fonts",
+                "--extra-profile-file=hyphenation",
+                "--screenshot-on-fail",
+                "--chrome",
+            ],
+        },
         "mochitest-plain-gpu": {
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest",
             "options": [
                 "--dm_trans=adb",
                 "--app=%(app)s",
                 "--remote-webserver=%(remote_webserver)s",
                 "--xre-path=%(xre_path)s",
@@ -327,604 +350,14 @@ config = {
                 "--dm_trans=adb",
                 "--localBinDir=../bin",
                 "--apk=%(installer_path)s",
                 ".",
             ],
         },
 
     },  # end suite_definitions
-    "test_suite_definitions": {
-        "jsreftest-1": {
-            "category": "jsreftest",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "jsreftest-2": {
-            "category": "jsreftest",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "jsreftest-3": {
-            "category": "jsreftest",
-            "extra_args": ["--this-chunk=3"],
-        },
-        "jsreftest-4": {
-            "category": "jsreftest",
-            "extra_args": ["--this-chunk=4"],
-        },
-        "jsreftest-5": {
-            "category": "jsreftest",
-            "extra_args": ["--this-chunk=5"],
-        },
-        "jsreftest-6": {
-            "category": "jsreftest",
-            "extra_args": ["--this-chunk=6"],
-        },
-        "jsreftest-debug-1": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "jsreftest-debug-2": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "jsreftest-debug-3": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=3"],
-        },
-        "jsreftest-debug-4": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=4"],
-        },
-        "jsreftest-debug-5": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=5"],
-        },
-        "jsreftest-debug-6": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=6"],
-        },
-        "jsreftest-debug-7": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=7"],
-        },
-        "jsreftest-debug-8": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=8"],
-        },
-        "jsreftest-debug-9": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=9"],
-        },
-        "jsreftest-debug-10": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=10"],
-        },
-        "jsreftest-debug-11": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=11"],
-        },
-        "jsreftest-debug-12": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=12"],
-        },
-        "jsreftest-debug-13": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=13"],
-        },
-        "jsreftest-debug-14": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=14"],
-        },
-        "jsreftest-debug-15": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=15"],
-        },
-        "jsreftest-debug-16": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=16"],
-        },
-        "jsreftest-debug-17": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=17"],
-        },
-        "jsreftest-debug-18": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=18"],
-        },
-        "jsreftest-debug-19": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=19"],
-        },
-        "jsreftest-debug-20": {
-            "category": "jsreftest-debug",
-            "extra_args": ["--this-chunk=20"],
-        },
-        "mochitest-1": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=1"],
-        },
-        "mochitest-2": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=2"],
-        },
-        "mochitest-3": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=3"],
-        },
-        "mochitest-4": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=4"],
-        },
-        "mochitest-5": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=5"],
-        },
-        "mochitest-6": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=6"],
-        },
-        "mochitest-7": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=7"],
-        },
-        "mochitest-8": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=8"],
-        },
-        "mochitest-9": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=9"],
-        },
-        "mochitest-10": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=10"],
-        },
-        "mochitest-11": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=11"],
-        },
-        "mochitest-12": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=12"],
-        },
-        "mochitest-13": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=13"],
-        },
-        "mochitest-14": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=14"],
-        },
-        "mochitest-15": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=15"],
-        },
-        "mochitest-16": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=16"],
-        },
-        "mochitest-17": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=17"],
-        },
-        "mochitest-18": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=18"],
-        },
-        "mochitest-19": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=19"],
-        },
-        "mochitest-20": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=20", "--this-chunk=20"],
-        },
-        "mochitest-chrome": {
-            "category": "mochitest",
-            "extra_args": ["--chrome"],
-        },
-        "mochitest-media-1": {
-            "category": "mochitest-media",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "mochitest-media-2": {
-            "category": "mochitest-media",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "mochitest-plain-gpu": {
-            "category": "mochitest-plain-gpu",
-            "extra_args": [],
-        },
-        "mochitest-plain-clipboard": {
-            "category": "mochitest-plain-clipboard",
-            "extra_args": [],
-        },
-        "mochitest-gl-1": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "mochitest-gl-2": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "mochitest-gl-3": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=3"],
-        },
-        "mochitest-gl-4": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=4"],
-        },
-        "mochitest-gl-5": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=5"],
-        },
-        "mochitest-gl-6": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=6"],
-        },
-        "mochitest-gl-7": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=7"],
-        },
-        "mochitest-gl-8": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=8"],
-        },
-        "mochitest-gl-9": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=9"],
-        },
-        "mochitest-gl-10": {
-            "category": "mochitest-gl",
-            "extra_args": ["--this-chunk=10"],
-        },
-        "reftest-1": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=1"],
-        },
-        "reftest-2": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=2"],
-        },
-        "reftest-3": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=3"],
-        },
-        "reftest-4": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=4"],
-        },
-        "reftest-5": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=5"],
-        },
-        "reftest-6": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=6"],
-        },
-        "reftest-7": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=7"],
-        },
-        "reftest-8": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=8"],
-        },
-        "reftest-9": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=9"],
-        },
-        "reftest-10": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=10"],
-        },
-        "reftest-11": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=11"],
-        },
-        "reftest-12": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=12"],
-        },
-        "reftest-13": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=13"],
-        },
-        "reftest-14": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=14"],
-        },
-        "reftest-15": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=15"],
-        },
-        "reftest-16": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=16", "--this-chunk=16"],
-        },
-        "reftest-debug-1": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=1"],
-        },
-        "reftest-debug-2": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=2"],
-        },
-        "reftest-debug-3": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=3"],
-        },
-        "reftest-debug-4": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=4"],
-        },
-        "reftest-debug-5": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=5"],
-        },
-        "reftest-debug-6": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=6"],
-        },
-        "reftest-debug-7": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=7"],
-        },
-        "reftest-debug-8": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=8"],
-        },
-        "reftest-debug-9": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=9"],
-        },
-        "reftest-debug-10": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=10"],
-        },
-        "reftest-debug-11": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=11"],
-        },
-        "reftest-debug-12": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=12"],
-        },
-        "reftest-debug-13": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=13"],
-        },
-        "reftest-debug-14": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=14"],
-        },
-        "reftest-debug-15": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=15"],
-        },
-        "reftest-debug-16": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=16"],
-        },
-        "reftest-debug-17": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=17"],
-        },
-        "reftest-debug-18": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=18"],
-        },
-        "reftest-debug-19": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=19"],
-        },
-        "reftest-debug-20": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=20"],
-        },
-        "reftest-debug-21": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=21"],
-        },
-        "reftest-debug-22": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=22"],
-        },
-        "reftest-debug-23": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=23"],
-        },
-        "reftest-debug-24": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=24"],
-        },
-        "reftest-debug-25": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=25"],
-        },
-        "reftest-debug-26": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=26"],
-        },
-        "reftest-debug-27": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=27"],
-        },
-        "reftest-debug-28": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=28"],
-        },
-        "reftest-debug-29": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=29"],
-        },
-        "reftest-debug-30": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=30"],
-        },
-        "reftest-debug-31": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=31"],
-        },
-        "reftest-debug-32": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=32"],
-        },
-        "reftest-debug-33": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=33"],
-        },
-        "reftest-debug-34": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=34"],
-        },
-        "reftest-debug-35": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=35"],
-        },
-        "reftest-debug-36": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=36"],
-        },
-        "reftest-debug-37": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=37"],
-        },
-        "reftest-debug-38": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=38"],
-        },
-        "reftest-debug-39": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=39"],
-        },
-        "reftest-debug-40": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=40"],
-        },
-        "reftest-debug-41": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=41"],
-        },
-        "reftest-debug-42": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=42"],
-        },
-        "reftest-debug-43": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=43"],
-        },
-        "reftest-debug-44": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=44"],
-        },
-        "reftest-debug-45": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=45"],
-        },
-        "reftest-debug-46": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=46"],
-        },
-        "reftest-debug-47": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=47"],
-        },
-        "reftest-debug-48": {
-            "category": "reftest-debug",
-            "extra_args": ["--total-chunks=48", "--this-chunk=48"],
-        },
-        "crashtest-1": {
-            "category": "crashtest",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "crashtest-2": {
-            "category": "crashtest",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "crashtest-3": {
-            "category": "crashtest",
-            "extra_args": ["--this-chunk=3"],
-        },
-        "crashtest-4": {
-            "category": "crashtest",
-            "extra_args": ["--this-chunk=4"],
-        },
-        "crashtest-debug-1": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "crashtest-debug-2": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "crashtest-debug-3": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=3"],
-        },
-        "crashtest-debug-4": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=4"],
-        },
-        "crashtest-debug-5": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=5"],
-        },
-        "crashtest-debug-6": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=6"],
-        },
-        "crashtest-debug-7": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=7"],
-        },
-        "crashtest-debug-8": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=8"],
-        },
-        "crashtest-debug-9": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=9"],
-        },
-        "crashtest-debug-10": {
-            "category": "crashtest-debug",
-            "extra_args": ["--this-chunk=10"],
-        },
-        "xpcshell-1": {
-            "category": "xpcshell",
-            "extra_args": ["--total-chunks=3", "--this-chunk=1"],
-        },
-        "xpcshell-2": {
-            "category": "xpcshell",
-            "extra_args": ["--total-chunks=3", "--this-chunk=2"],
-        },
-        "xpcshell-3": {
-            "category": "xpcshell",
-            "extra_args": ["--total-chunks=3", "--this-chunk=3"],
-        },
-        "robocop-1": {
-            "category": "robocop",
-            "extra_args": ["--this-chunk=1"],
-        },
-        "robocop-2": {
-            "category": "robocop",
-            "extra_args": ["--this-chunk=2"],
-        },
-        "robocop-3": {
-            "category": "robocop",
-            "extra_args": ["--this-chunk=3"],
-        },
-        "robocop-4": {
-            "category": "robocop",
-            "extra_args": ["--this-chunk=4"],
-        },
-        "cppunittest": {
-            "category": "cppunittest",
-            "extra_args": [],
-        },
-    },  # end of "test_definitions"
     "download_minidump_stackwalk": True,
     "default_blob_upload_servers": [
         "https://blobupload.elasticbeanstalk.com",
     ],
     "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
 }
--- a/testing/mozharness/mozharness/mozilla/testing/errors.py
+++ b/testing/mozharness/mozharness/mozilla/testing/errors.py
@@ -22,16 +22,17 @@ from mozharness.base.log import INFO, WA
     'regex': re.compile(r'''(\d+ INFO (Passed|Failed|Todo):\ +(\d+)|\t(Passed|Failed|Todo): (\d+))'''),
     'pass_group': "Passed",
     'fail_group': "Failed",
     'known_fail_group': "Todo",
 }
 
 TinderBoxPrintRe = {
     "mochitest_summary": _mochitest_summary,
+    "mochitest-chrome_summary": _mochitest_summary,
     "mochitest-gl_summary": _mochitest_summary,
     "mochitest-media_summary": _mochitest_summary,
     "mochitest-plain-clipboard_summary": _mochitest_summary,
     "mochitest-plain-gpu_summary": _mochitest_summary,
     "reftest_summary": {
         'regex': re.compile(r'''REFTEST INFO \| (Successful|Unexpected|Known problems): (\d+) \('''),
         'pass_group': "Successful",
         'fail_group': "Unexpected",
--- a/testing/mozharness/scripts/android_emulator_unittest.py
+++ b/testing/mozharness/scripts/android_emulator_unittest.py
@@ -4,16 +4,17 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 # ***** END LICENSE BLOCK *****
 
 import copy
 import datetime
 import glob
 import os
+import re
 import sys
 import signal
 import socket
 import subprocess
 import telnetlib
 import time
 import tempfile
 
@@ -31,24 +32,38 @@ from mozharness.mozilla.testing.testbase
 from mozharness.mozilla.testing.unittest import EmulatorMixin
 
 
 class AndroidEmulatorTest(BlobUploadMixin, TestingMixin, EmulatorMixin, VCSMixin, BaseScript, MozbaseMixin):
     config_options = [[
         ["--test-suite"],
         {"action": "store",
          "dest": "test_suite",
-         }
+        }
     ], [
         ["--adb-path"],
         {"action": "store",
          "dest": "adb_path",
          "default": None,
          "help": "Path to adb",
-         }
+        }
+    ], [
+        ["--total-chunk"],
+        {"action": "store",
+         "dest": "total_chunks",
+         "default": None,
+         "help": "Number of total chunks",
+        }
+    ], [
+        ["--this-chunk"],
+        {"action": "store",
+         "dest": "this_chunk",
+         "default": None,
+         "help": "Number of this chunk",
+        }
     ]] + copy.deepcopy(testing_config_options) + \
         copy.deepcopy(blobupload_config_options)
 
     error_list = [
     ]
 
     virtualenv_requirements = [
     ]
@@ -96,29 +111,35 @@ class AndroidEmulatorTest(BlobUploadMixi
         self.installer_url = c.get('installer_url')
         self.installer_path = c.get('installer_path')
         self.test_url = c.get('test_url')
         self.test_packages_url = c.get('test_packages_url')
         self.test_manifest = c.get('test_manifest')
         self.robocop_path = os.path.join(abs_dirs['abs_work_dir'], "robocop.apk")
         self.minidump_stackwalk_path = c.get("minidump_stackwalk_path")
         self.emulator = c.get('emulator')
-        self.test_suite_definitions = c['test_suite_definitions']
         self.test_suite = c.get('test_suite')
+        self.this_chunk = c.get('this_chunk')
+        self.total_chunks = c.get('total_chunks')
+        if self.test_suite not in self.config["suite_definitions"]:
+            # accept old-style test suite name like "mochitest-3"
+            m = re.match("(.*)-(\d*)", self.test_suite)
+            if m:
+                self.test_suite = m.group(1)
+                if self.this_chunk is None:
+                    self.this_chunk = m.group(2)
         self.sdk_level = None
         self.xre_path = None
-        assert self.test_suite in self.test_suite_definitions
 
     def _query_tests_dir(self):
         dirs = self.query_abs_dirs()
-        suite_category = self.test_suite_definitions[self.test_suite]["category"]
         try:
-            test_dir = self.config["suite_definitions"][suite_category]["testsdir"]
+            test_dir = self.config["suite_definitions"][self.test_suite]["testsdir"]
         except:
-            test_dir = suite_category
+            test_dir = self.test_suite
         return os.path.join(dirs['abs_test_install_dir'], test_dir)
 
     def query_abs_dirs(self):
         if self.abs_dirs:
             return self.abs_dirs
         abs_dirs = super(AndroidEmulatorTest, self).query_abs_dirs()
         dirs = {}
         dirs['abs_test_install_dir'] = os.path.join(
@@ -430,27 +451,26 @@ class AndroidEmulatorTest(BlobUploadMixi
 
     def preflight_install(self):
         # in the base class, this checks for mozinstall, but we don't use it
         pass
 
     def _build_command(self):
         c = self.config
         dirs = self.query_abs_dirs()
-        suite_category = self.test_suite_definitions[self.test_suite]["category"]
 
-        if suite_category not in self.config["suite_definitions"]:
-            self.fatal("Key '%s' not defined in the config!" % suite_category)
+        if self.test_suite not in self.config["suite_definitions"]:
+            self.fatal("Key '%s' not defined in the config!" % self.test_suite)
 
         cmd = [
             self.query_python_path('python'),
             '-u',
             os.path.join(
                 self._query_tests_dir(),
-                self.config["suite_definitions"][suite_category]["run_filename"]
+                self.config["suite_definitions"][self.test_suite]["run_filename"]
             ),
         ]
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % self.test_suite)
 
         error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
                                           '%s_errorsummary.log' % self.test_suite)
@@ -471,31 +491,35 @@ class AndroidEmulatorTest(BlobUploadMixi
             'error_summary_file': error_summary_file,
             'dm_trans': c['device_manager'],
         }
         if self.config["device_manager"] == "sut":
             str_format_values.update({
                 'device_ip': c['device_ip'],
                 'device_port': str(self.emulator['sut_port1']),
             })
-        for option in self.config["suite_definitions"][suite_category]["options"]:
+        for option in self.config["suite_definitions"][self.test_suite]["options"]:
+            opt = option.split('=')[0]
+            # override configured chunk options with script args, if specified
+            if opt == '--this-chunk' and self.this_chunk is not None:
+                continue
+            if opt == '--total-chunks' and self.total_chunks is not None:
+                continue
             cmd.extend([option % str_format_values])
 
-        for arg in self.test_suite_definitions[self.test_suite]["extra_args"]:
-            argname = arg.split('=')[0]
-            # only add the extra arg if it wasn't already defined by in-tree configs
-            if any(a.split('=')[0] == argname for a in cmd):
-                continue
-            cmd.append(arg)
+        if self.this_chunk is not None:
+            cmd.extend(['--this-chunk', self.this_chunk])
+        if self.total_chunks is not None:
+            cmd.extend(['--total-chunks', self.total_chunks])
 
-        try_options, try_tests = self.try_args(suite_category)
+        try_options, try_tests = self.try_args(self.test_suite)
         cmd.extend(try_options)
         cmd.extend(self.query_tests_args(
-            self.config["suite_definitions"][suite_category].get("tests"),
-            self.test_suite_definitions[self.test_suite].get("tests"),
+            self.config["suite_definitions"][self.test_suite].get("tests"),
+            None,
             try_tests))
 
         return cmd
 
     def _tooltool_fetch(self, url, dir):
         c = self.config
 
         manifest_path = self.download_file(
@@ -616,18 +640,17 @@ class AndroidEmulatorTest(BlobUploadMixi
         # Get a post-boot emulator process list for diagnostics
         ps_cmd = [self.adb_path, '-s', self.emulator["device_id"], 'shell', 'ps']
         self._run_with_timeout(30, ps_cmd)
 
     def download_and_extract(self):
         """
         Download and extract fennec APK, tests.zip, host utils, and robocop (if required).
         """
-        suite_category = self.test_suite_definitions[self.test_suite]['category']
-        super(AndroidEmulatorTest, self).download_and_extract(suite_categories=[suite_category])
+        super(AndroidEmulatorTest, self).download_and_extract(suite_categories=[self.test_suite])
         dirs = self.query_abs_dirs()
         if self.test_suite.startswith('robocop'):
             robocop_url = self.installer_url[:self.installer_url.rfind('/')] + '/robocop.apk'
             self.info("Downloading robocop...")
             self.download_file(robocop_url, 'robocop.apk', dirs['abs_work_dir'], error_level=FATAL)
         self.rmtree(dirs['abs_xre_dir'])
         self.mkdir_p(dirs['abs_xre_dir'])
         if self.config["hostutils_manifest_path"]:
@@ -685,18 +708,17 @@ class AndroidEmulatorTest(BlobUploadMixi
         self.info("##### %s log begins" % self.test_suite)
 
         # TinderBoxPrintRe does not know about the '-debug' categories
         aliases = {
             'reftest-debug': 'reftest',
             'jsreftest-debug': 'jsreftest',
             'crashtest-debug': 'crashtest',
         }
-        suite_category = self.test_suite_definitions[self.test_suite]["category"]
-        suite_category = aliases.get(suite_category, suite_category)
+        suite_category = aliases.get(self.test_suite, self.test_suite)
         parser = self.get_test_output_parser(
             suite_category,
             config=self.config,
             log_obj=self.log_obj,
             error_list=self.error_list)
         self.run_command(cmd, cwd=cwd, env=env, output_parser=parser)
         tbpl_status, log_level = parser.evaluate_parser(0)
         parser.append_tinderboxprint_line(self.test_suite)