Bug 1185499 - Split linux32/64 debug xpcshell into two chunks, r=catlee
authorJonathan Griffin <jgriffin@mozilla.com>
Tue, 21 Jul 2015 09:28:04 -0700 (2015-07-21)
changeset 12677 3701f9b8de826ac6f29691783fc39765733ed447
parent 12676 ff9c87e5ffd537f05c3c223c77413e7b145c4b4e
child 12678 8f9ec68b1af7fa7dd955ef5b2c11d19b759cca3a
push id9064
push userjgriffin@mozilla.com
push dateTue, 21 Jul 2015 16:28:37 +0000 (2015-07-21)
reviewerscatlee
bugs1185499
Bug 1185499 - Split linux32/64 debug xpcshell into two chunks, r=catlee
mozilla-tests/config.py
--- a/mozilla-tests/config.py
+++ b/mozilla-tests/config.py
@@ -666,16 +666,26 @@ XPCSHELL = [
         'use_mozharness': True,
         'script_path': 'scripts/desktop_unittest.py',
         'extra_args': ['--xpcshell-suite', 'xpcshell'],
         'blob_upload': True,
         'script_maxtime': 7200,
     }),
 ]
 
+XPCSHELL_TWO_CHUNKS = [
+    ('xpcshell', {
+        'use_mozharness': True,
+        'script_path': 'scripts/desktop_unittest.py',
+        'extra_args': ['--xpcshell-suite', 'xpcshell'],
+        'blob_upload': True,
+        'script_maxtime': 7200,
+        'totalChunks': 2,
+    }),
+]
 CPPUNIT = [
     ('cppunit', {
         'use_mozharness': True,
         'script_path': 'scripts/desktop_unittest.py',
         'extra_args': ['--cppunittest-suite', 'cppunittest'],
         'blob_upload': True,
         'script_maxtime': 7200,
     }),
@@ -785,34 +795,34 @@ WEB_PLATFORM_TESTS_CHUNKED_MORE = [
         'blob_upload': True,
         'script_maxtime': 7200,
     }),
 ]
 
 
 UNITTEST_SUITES = {
     'opt_unittest_suites': MOCHITEST + REFTEST_ONE_CHUNK + REFTEST_NO_IPC + XPCSHELL + CPPUNIT + MOCHITEST_DT,
-    'debug_unittest_suites': MOCHITEST + REFTEST_ONE_CHUNK + REFTEST_NO_IPC + XPCSHELL + CPPUNIT + MARIONETTE + MOCHITEST_DT_4,
+    'debug_unittest_suites': MOCHITEST + REFTEST_ONE_CHUNK + REFTEST_NO_IPC + CPPUNIT + MARIONETTE + MOCHITEST_DT_4,
 }
 
 
 # You must define opt_unittest_suites when enable_opt_unittests is True for a
 # platform. Likewise debug_unittest_suites for enable_debug_unittests
 PLATFORM_UNITTEST_VARS = {
     'linux': {
         'product_name': 'firefox',
         'app_name': 'browser',
         'brand_name': 'Minefield',
         'builds_before_reboot': 1,
         'unittest-env': {'DISPLAY': ':0'},
         'enable_opt_unittests': True,
         'enable_debug_unittests': True,
         'ubuntu32_vm': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:] + REFTEST_NOACCEL,
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL_TWO_CHUNKS,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -901,17 +911,17 @@ PLATFORM_UNITTEST_VARS = {
         'app_name': 'browser',
         'brand_name': 'Minefield',
         'builds_before_reboot': 1,
         'unittest-env': {'DISPLAY': ':0'},
         'enable_opt_unittests': True,
         'enable_debug_unittests': True,
         'ubuntu64_vm': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL_TWO_CHUNKS,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -994,17 +1004,17 @@ PLATFORM_UNITTEST_VARS = {
         'app_name': 'browser',
         'brand_name': 'Minefield',
         'builds_before_reboot': 1,
         'unittest-env': {'DISPLAY': ':0'},
         'enable_opt_unittests': True,
         'enable_debug_unittests': False,
         'ubuntu64-asan_vm': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -1084,17 +1094,17 @@ PLATFORM_UNITTEST_VARS = {
         'app_name': 'browser',
         'brand_name': 'Minefield',
         'builds_before_reboot': 1,
         'unittest-env': {'DISPLAY': ':0'},
         'enable_opt_unittests': True,
         'enable_debug_unittests': False,
         'ubuntu64-tsan_vm': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/linux_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -1624,17 +1634,17 @@ PLATFORM_UNITTEST_VARS = {
         'product_name': 'firefox',
         'app_name': 'browser',
         'brand_name': 'Minefield',
         'builds_before_reboot': 1,
         'enable_opt_unittests': True,
         'enable_debug_unittests': True,
         'snowleopard': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -1705,17 +1715,17 @@ PLATFORM_UNITTEST_VARS = {
                 },
                 'mozbase': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
             },
         },
         'mountainlion': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -1786,17 +1796,17 @@ PLATFORM_UNITTEST_VARS = {
                 },
                 'mozbase': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
             },
         },
         'yosemite': {
             'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
-            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+            'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL,
             'suite_config': {
                 'mochitest': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
                 'mochitest-push': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
                 'mochitest-e10s': {
@@ -2092,26 +2102,26 @@ BRANCHES['try']['tp5o_tests'] = (1, Fals
 BRANCHES['try']['other_tests'] = (0, False, {}, ALL_TALOS_PLATFORMS)
 BRANCHES['try']['other_nol64_tests'] = (1, False, {}, NO_LINUX64)
 BRANCHES['try']['other_l64_tests'] = (1, False, {}, LINUX64_ONLY)
 BRANCHES['try']['g1_tests'] = (1, False, TALOS_TP_NEW_OPTS, ALL_TALOS_PLATFORMS)
 BRANCHES['try']['g2_tests'] = (1, False, TALOS_TP_NEW_OPTS, ALL_TALOS_PLATFORMS)
 BRANCHES['try']['pgo_strategy'] = None
 BRANCHES['try']['enable_try'] = True
 BRANCHES['try']['platforms']['macosx64']['yosemite']['opt_unittest_suites'] = UNITTEST_SUITES['opt_unittest_suites'][:]
-BRANCHES['try']['platforms']['macosx64']['yosemite']['debug_unittest_suites'] = UNITTEST_SUITES['debug_unittest_suites'][:]
+BRANCHES['try']['platforms']['macosx64']['yosemite']['debug_unittest_suites'] = UNITTEST_SUITES['debug_unittest_suites'][:] + XPCSHELL
 
 ######## cedar
 BRANCHES['cedar']['platforms']['linux64-asan']['ubuntu64-asan_vm']['opt_unittest_suites'] += MARIONETTE[:]
 BRANCHES['cedar']['platforms']['win32']['xp-ix']['opt_unittest_suites'] += REFTEST_OMTC[:]
 BRANCHES['cedar']['platforms']['win32']['win7-ix']['opt_unittest_suites'] += REFTEST_OMTC[:]
 BRANCHES['cedar']['platforms']['win64']['win8_64']['opt_unittest_suites'] += REFTEST_OMTC[:]
-BRANCHES['cedar']['platforms']['win32']['xp-ix']['debug_unittest_suites'] += REFTEST_OMTC[:]
-BRANCHES['cedar']['platforms']['win32']['win7-ix']['debug_unittest_suites'] += REFTEST_OMTC[:]
-BRANCHES['cedar']['platforms']['win64']['win8_64']['debug_unittest_suites'] += REFTEST_OMTC[:]
+BRANCHES['cedar']['platforms']['win32']['xp-ix']['debug_unittest_suites'] += REFTEST_OMTC[:] + XPCSHELL
+BRANCHES['cedar']['platforms']['win32']['win7-ix']['debug_unittest_suites'] += REFTEST_OMTC[:] + XPCSHELL
+BRANCHES['cedar']['platforms']['win64']['win8_64']['debug_unittest_suites'] += REFTEST_OMTC[:] + XPCSHELL
 
 loadSkipConfig(BRANCHES,"desktop")
 
 # Filter the tests that are enabled on holly for bug 985718.
 for platform in BRANCHES['holly']['platforms'].keys():
     if platform not in PLATFORMS:
         continue
 
@@ -2262,16 +2272,28 @@ for platform in PLATFORMS.keys():
             if slave_platform not in ('ubuntu32_vm',):
                 continue
             if platform in BRANCHES[name]['platforms']:
                 if slave_platform in BRANCHES[name]['platforms'][platform]:
                     debug_suites = BRANCHES[name]['platforms'][platform][slave_platform]['debug_unittest_suites']
                     debug_suites = [x for x in debug_suites if x[0] and x[0] != 'mochitest-devtools-chrome']
                     BRANCHES[name]['platforms'][platform][slave_platform]['debug_unittest_suites'] = debug_suites + MOCHITEST_DT_8[:]
 
+# Bug 1185499 - use only one chunk for linux32/linux64 debug xpcshell tests, gecko < 41
+for platform in PLATFORMS.keys():
+    for name, branch in items_before(BRANCHES, 'gecko_version', 41):
+        for slave_platform in PLATFORMS[platform]['slave_platforms']:
+            if slave_platform not in ('ubuntu32_vm', 'ubuntu64_vm'):
+                continue
+            if platform in BRANCHES[name]['platforms']:
+                if slave_platform in BRANCHES[name]['platforms'][platform]:
+                    debug_suites = BRANCHES[name]['platforms'][platform][slave_platform]['debug_unittest_suites']
+                    debug_suites = [x for x in debug_suites if x[0] and x[0] != 'xpcshell']
+                    BRANCHES[name]['platforms'][platform][slave_platform]['debug_unittest_suites'] = debug_suites + XPCSHELL[:]
+
 # reftest is chunked x2 on opt and x4 on debug linux platforms, gecko >= 36
 for platform in PLATFORMS.keys():
     for name, branch in items_at_least(BRANCHES, 'gecko_version', 36):
         for slave_platform in PLATFORMS[platform]['slave_platforms']:
             if slave_platform not in ('ubuntu64_vm', 'ubuntu32_vm', 'ubuntu64-asan_vm'):
                 continue
             if platform in BRANCHES[name]['platforms']:
                 if slave_platform in BRANCHES[name]['platforms'][platform]: