Bug 932431 - Add 10.9 to the buildbot-configs, enabled on cedar only - r=armenzg
authorChris Cooper <ccooper@deadsquid.com>
Fri, 29 Nov 2013 15:12:25 -0500
changeset 9505 3b738daad2ab872b3c996a889fc9dcbbb17afff2
parent 9503 bd2e4c9b3fa3bc3d77af34637d40b4ee78f1cb48
child 9506 5d2865250ab6755b4f3542e569868b4ea5cc7abf
push id1
push userroot
push dateWed, 17 Dec 2014 00:18:48 +0000
reviewersarmenzg
bugs932431
Bug 932431 - Add 10.9 to the buildbot-configs, enabled on cedar only - r=armenzg
mozilla-tests/BuildSlaves.py.template
mozilla-tests/config.py
mozilla-tests/config_common.py
mozilla-tests/production_config.py
--- a/mozilla-tests/BuildSlaves.py.template
+++ b/mozilla-tests/BuildSlaves.py.template
@@ -15,16 +15,17 @@ SlavePasswords = {
     "ubuntu64_vm-b2gdt": "pass",
     "ubuntu64_hw": "pass",
     "ubuntu64_hw-b2g": "pass",
     "ubuntu64_hw-b2g-emulator": "pass",
     "tiger": "pass",
     "snowleopard": "pass",
     "mountainlion": "pass",
     "mountainlion-b2gdt": "pass",
+    "mavericks": "pass",
     "xp": "pass",
     "xp-ix": "pass",
     "win7": "pass",
     "win7-ix": "pass",
     "win8": "pass",
     "w764": "pass",
     "win64_vm": "pass",
     "vista": "pass",
--- a/mozilla-tests/config.py
+++ b/mozilla-tests/config.py
@@ -1,14 +1,14 @@
 from copy import deepcopy
 
 import config_common
 reload(config_common)
 from config_common import TALOS_CMD, loadDefaultValues, loadCustomTalosSuites, \
-    nested_haskey, get_talos_slave_platforms
+    nested_haskey, get_talos_slave_platforms, delete_slave_platform
 
 import master_common
 reload(master_common)
 from master_common import setMainFirefoxVersions, items_before, items_at_least
 
 import project_branches
 reload(project_branches)
 from project_branches import PROJECT_BRANCHES, ACTIVE_PROJECT_BRANCHES
@@ -124,20 +124,21 @@ PLATFORMS = {
     'macosx64': {},
     'win32': {},
     'linux': {},
     'linux64': {},
     'linux64-asan': {},
     'win64': {},
 }
 
-PLATFORMS['macosx64']['slave_platforms'] = ['snowleopard', 'mountainlion']
+PLATFORMS['macosx64']['slave_platforms'] = ['snowleopard', 'mountainlion', 'mavericks']
 PLATFORMS['macosx64']['env_name'] = 'mac-perf'
 PLATFORMS['macosx64']['snowleopard'] = {'name': "Rev4 MacOSX Snow Leopard 10.6"}
 PLATFORMS['macosx64']['mountainlion'] = {'name': "Rev5 MacOSX Mountain Lion 10.8"}
+PLATFORMS['macosx64']['mavericks'] = {'name': "Rev5 MacOSX Mavericks 10.9"}
 PLATFORMS['macosx64']['stage_product'] = 'firefox'
 PLATFORMS['macosx64']['mozharness_config'] = {
     'mozharness_python': '/tools/buildbot/bin/python',
     'hg_bin': 'hg',
     'reboot_command': ['/tools/buildbot/bin/python'] + MOZHARNESS_REBOOT_CMD,
     'system_bits': '64',
     'config_file': 'talos/mac_config.py',
 }
@@ -217,17 +218,16 @@ for platform, platform_config in PLATFOR
                               platform_config.get('talos_slave_platforms', []))
     for slave_platform in all_slave_platforms:
         platform_config[slave_platform]['slaves'] = sorted(SLAVES[slave_platform])
         if slave_platform in TRY_SLAVES:
             platform_config[slave_platform]['try_slaves'] = sorted(TRY_SLAVES[slave_platform])
         else:
             platform_config[slave_platform]['try_slaves'] = platform_config[slave_platform]['slaves']
 
-
 ALL_TALOS_PLATFORMS = get_talos_slave_platforms(PLATFORMS, platforms=('linux', 'linux64', 'win32', 'macosx64'))
 NO_WIN = get_talos_slave_platforms(PLATFORMS, platforms=('linux', 'linux64', 'macosx64'))
 NO_WINXP = [platform for platform in ALL_TALOS_PLATFORMS if platform != 'xp' and platform != 'xp-ix']
 NO_MAC = get_talos_slave_platforms(PLATFORMS, platforms=('linux', 'linux64', 'win32'))
 MAC_ONLY = get_talos_slave_platforms(PLATFORMS, platforms=('macosx64',))
 WIN7_ONLY = ['win7-ix']
 WIN8_ONLY = ['win8']
 
@@ -1482,16 +1482,82 @@ PLATFORM_UNITTEST_VARS = {
                 'marionette': {
                     'config_files': ["marionette/prod_config.py"],
                 },
                 'jittest': {
                     'config_files': ["unittests/mac_unittest.py"],
                 },
             },
         },
+        'mavericks': {
+            'opt_unittest_suites': [],
+            'debug_unittest_suites': [],
+            'suite_config': {
+                'mochitest-1': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-2': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-3': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-4': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-5': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-browser-chrome': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-browser-chrome-1': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-browser-chrome-2': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-browser-chrome-3': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'mochitest-other': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'reftest': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'jsreftest': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'crashtest': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'reftest-no-accel': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'reftest-ipc': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'crashtest-ipc': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'xpcshell': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'cppunit': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+                'marionette': {
+                    'config_files': ["marionette/prod_config.py"],
+                },
+                'jittest': {
+                    'config_files': ["unittests/mac_unittest.py"],
+                },
+            },
+        },
     },
 }
 
 # Copy project branches into BRANCHES keys
 for branch in ACTIVE_PROJECT_BRANCHES:
     BRANCHES[branch] = deepcopy(PROJECT_BRANCHES[branch])
 
 # Copy unittest vars in first, then platform vars
@@ -1739,16 +1805,23 @@ BRANCHES['try']['tp5o_tests'] = (1, Fals
 BRANCHES['try']['pgo_strategy'] = 'try'
 BRANCHES['try']['enable_try'] = True
 BRANCHES['try']['platforms']['win32']['xp']['debug_unittest_suites'] = MOCHITEST + REFTEST_NO_IPC + XPCSHELL
 BRANCHES['try']['platforms']['win32']['xp-ix']['debug_unittest_suites'] = MOCHITEST + REFTEST_NO_IPC + XPCSHELL
 BRANCHES['try']['platforms']['win32']['win7']['opt_unittest_suites'] = UNITTEST_SUITES['opt_unittest_suites'] + REFTEST_NOACCEL
 BRANCHES['try']['platforms']['win32']['win7-ix']['opt_unittest_suites'] = UNITTEST_SUITES['opt_unittest_suites'] + REFTEST_NOACCEL
 BRANCHES['try']['platforms']['win32']['win7-ix']['debug_unittest_suites'] = MOCHITEST + REFTEST_NO_IPC + XPCSHELL
 
+######## cedar
+BRANCHES['cedar']['platforms']['macosx64']['mavericks']['opt_unittest_suites'] = UNITTEST_SUITES['opt_unittest_suites'][:]
+BRANCHES['cedar']['platforms']['macosx64']['mavericks']['debug_unittest_suites'] = UNITTEST_SUITES['debug_unittest_suites'][:]
+
+# Enable mavericks testing on select branches only
+delete_slave_platform(BRANCHES, PLATFORMS, {'macosx64': 'mavericks'}, branch_exclusions=['cedar'])
+
 # Load jetpack for branches that have at least FF21
 for name, branch in items_at_least(BRANCHES, 'gecko_version', 21):
     for pf in PLATFORMS:
         if pf not in branch['platforms']:
             continue
         for slave_pf in branch['platforms'][pf].get(
                 'slave_platforms', PLATFORMS[pf]['slave_platforms']):
             if slave_pf not in branch['platforms'][pf]:
@@ -1773,34 +1846,36 @@ for platform in PLATFORMS.keys():
                 else:
                     BRANCHES[branch]['platforms'][platform][slave_platform][suites] = CPPUNIT[:]
 
 # Enable jittests on cedar https://bugzilla.mozilla.org/show_bug.cgi?id=912997
 for platform in PLATFORMS.keys():
     if platform not in (BRANCHES['cedar']['platforms'] or BRANCHES['try']['platforms']):
         continue
     for slave_platform in PLATFORMS[platform]['slave_platforms']:
-        if slave_platform not in (BRANCHES['cedar']['platforms'][platform] or BRANCHES['try']['platforms'][platform]):
-            continue
-        if BRANCHES['cedar']['platforms'][platform][slave_platform]['opt_unittest_suites']:
-            BRANCHES['cedar']['platforms'][platform][slave_platform]['opt_unittest_suites'] += JITTEST[:]
-        else:
-            BRANCHES['cedar']['platforms'][platform][slave_platform]['opt_unittest_suites'] = JITTEST[:]
-        if BRANCHES['cedar']['platforms'][platform][slave_platform]['debug_unittest_suites']:
-            BRANCHES['cedar']['platforms'][platform][slave_platform]['debug_unittest_suites'] += JITTEST[:]
-        else:
-            BRANCHES['cedar']['platforms'][platform][slave_platform]['debug_unittest_suites'] = JITTEST[:]
-        if BRANCHES['try']['platforms'][platform][slave_platform]['opt_unittest_suites']:
-            BRANCHES['try']['platforms'][platform][slave_platform]['opt_unittest_suites'] += JITTEST[:]
-        else:
-            BRANCHES['try']['platforms'][platform][slave_platform]['opt_unittest_suites'] = JITTEST[:]
-        if BRANCHES['try']['platforms'][platform][slave_platform]['debug_unittest_suites']:
-            BRANCHES['try']['platforms'][platform][slave_platform]['debug_unittest_suites'] += JITTEST[:]
-        else:
-            BRANCHES['try']['platforms'][platform][slave_platform]['debug_unittest_suites'] = JITTEST[:]
+        # cedar
+        if slave_platform in BRANCHES['cedar']['platforms'][platform]:
+            if BRANCHES['cedar']['platforms'][platform][slave_platform]['opt_unittest_suites']:
+                BRANCHES['cedar']['platforms'][platform][slave_platform]['opt_unittest_suites'] += JITTEST[:]
+            else:
+                BRANCHES['cedar']['platforms'][platform][slave_platform]['opt_unittest_suites'] = JITTEST[:]
+            if BRANCHES['cedar']['platforms'][platform][slave_platform]['debug_unittest_suites']:
+                BRANCHES['cedar']['platforms'][platform][slave_platform]['debug_unittest_suites'] += JITTEST[:]
+            else:
+                BRANCHES['cedar']['platforms'][platform][slave_platform]['debug_unittest_suites'] = JITTEST[:]
+        # try
+        if slave_platform in BRANCHES['try']['platforms'][platform]:
+            if BRANCHES['try']['platforms'][platform][slave_platform]['opt_unittest_suites']:
+                BRANCHES['try']['platforms'][platform][slave_platform]['opt_unittest_suites'] += JITTEST[:]
+            else:
+                BRANCHES['try']['platforms'][platform][slave_platform]['opt_unittest_suites'] = JITTEST[:]
+            if BRANCHES['try']['platforms'][platform][slave_platform]['debug_unittest_suites']:
+                BRANCHES['try']['platforms'][platform][slave_platform]['debug_unittest_suites'] += JITTEST[:]
+            else:
+                BRANCHES['try']['platforms'][platform][slave_platform]['debug_unittest_suites'] = JITTEST[:]
 
 # Enable 3 chunks mochitest-bc on cedar https://bugzilla.mozilla.org/show_bug.cgi?id=819963
 for platform in PLATFORMS.keys():
     if platform not in BRANCHES['cedar']['platforms']:
         continue
     for slave_platform in PLATFORMS[platform]['slave_platforms']:
         if slave_platform not in BRANCHES['cedar']['platforms'][platform]:
             continue
--- a/mozilla-tests/config_common.py
+++ b/mozilla-tests/config_common.py
@@ -1,12 +1,11 @@
 from copy import deepcopy
 
 from buildbot.steps.shell import WithProperties
-
 TALOS_CMD = ['python', 'run_tests.py', '--noisy', WithProperties('%(configFile)s')]
 
 
 def loadDefaultValues(BRANCHES, branch, branchConfig):
     BRANCHES[branch]['repo_path'] = branchConfig.get('repo_path', 'projects/' + branch)
     BRANCHES[branch]['branch_name'] = branchConfig.get('branch_name', branch.title())
     BRANCHES[branch]['build_branch'] = branchConfig.get('build_branch', branch.title())
     BRANCHES[branch]['mobile_branch_name'] = branch.title()
@@ -70,8 +69,22 @@ def nested_haskey(dictionary, *keys):
 
 def get_talos_slave_platforms(platforms_dict, platforms):
     """Returns talos_slave_platforms if defined or slave_platform otherwise"""
     ret = []
     for p in platforms:
         ret.extend(platforms_dict[p].get('talos_slave_platforms',
                                          platforms_dict[p]['slave_platforms']))
     return ret
+
+def delete_slave_platform(BRANCHES, PLATFORMS, platforms_to_delete, branch_exclusions=[]):
+    for branch in set(BRANCHES.keys()) - set(branch_exclusions):
+        for platform, slave_platform in platforms_to_delete.iteritems():
+            if platform not in BRANCHES[branch]['platforms']:
+                continue
+            if nested_haskey(BRANCHES[branch]['platforms'], platform, slave_platform):
+                del BRANCHES[branch]['platforms'][platform][slave_platform]
+            # Disable talos for this branch by making sure talos_slave_platforms is set.
+            if 'talos_slave_platforms' not in BRANCHES[branch]['platforms'][platform]:
+                # Need to copy the list from PLATFORMS, so we don't change what's in PLATFORMS.
+                BRANCHES[branch]['platforms'][platform]['talos_slave_platforms'] = PLATFORMS[platform]['slave_platforms'][:]
+            if slave_platform in BRANCHES[branch]['platforms'][platform]['talos_slave_platforms']:
+                BRANCHES[branch]['platforms'][platform]['talos_slave_platforms'].remove(slave_platform)
--- a/mozilla-tests/production_config.py
+++ b/mozilla-tests/production_config.py
@@ -9,16 +9,17 @@ SLAVES = {
     'win7': dict([("talos-r3-w7-%03i" % x, {}) for x in range(4,135) \
         if x not in [10, 17]]), # bug 861326 & bug 747734
     'win7-ix': dict([("t-w732-ix-%03i" % x, {}) for x in range(1,131)]),
     'win8': dict([("t-w864-ix-%03i" % x, {}) for x in range(1,131)]),
     'snowleopard':dict([("talos-r4-snow-%03i" % x, {}) for x in range(1,171) \
         if x not in [81, 84]]), # bug 729090, bug 795558
     'mountainlion': dict([("talos-mtnlion-r5-%03i" % x, {}) for x in range(1,90) \
         if x not in [87]]), # bug 786994
+    'mavericks': dict([("t-mavericks-r5-%03i" % x, {}) for x in range(1,6)]),
     'tegra_android': dict([('tegra-%03i' % x, {'http_port': '30%03i' % x, 'ssl_port': '31%03i' % x}) \
         for x in range(31,371) \
         if x not in range(122,129) + [30,33,34,43,44,49,65,69,77,131,137,143,147,\
             153,156,161,175,176,180,184,185,186,193,197,198,202,203,204,205,222,224,\
             226,241,268,275,289,291,292,301,307,349,368]]), # decommissioned tegras
     'panda_android': dict(
         [('panda-%04i' % x, {'http_port': '30%03i' % x, 'ssl_port': '31%03i' % x}) \
             for x in range(22,257) + range(270,306) + range(320,874) + range(885,910)]