Bug 1131269 - use SETA data to disable unneeded tests on Windows 7 r=catlee
authorkmoir@mozilla.com
Mon, 06 Apr 2015 10:36:24 -0400 (2015-04-06)
changeset 4176 728dc76b5ad054195a7db2943368ec59aa234c7a
parent 4173 eb930c1a0263a20c2814af61a721fb38ba14a63f
child 4177 17e4004c89fd55013dd0f88dbd447fc9d2785718
push id3480
push userkmoir@mozilla.com
push dateMon, 06 Apr 2015 14:37:00 +0000 (2015-04-06)
reviewerscatlee
bugs1131269
Bug 1131269 - use SETA data to disable unneeded tests on Windows 7 r=catlee
misc.py
--- a/misc.py
+++ b/misc.py
@@ -2711,37 +2711,57 @@ def generateTalosBranchObjects(branch, b
                             extra_args = {}
                             if branch_config.get('enable_try'):
                                 scheduler_class = BuilderChooserScheduler
                                 extra_args['chooserFunc'] = tryChooser
                                 extra_args['prettyNames'] = prettyNames
                                 extra_args['unittestSuites'] = unittestSuites
                                 extra_args['buildersWithSetsMap'] = builders_with_sets_mapping
                                 extra_args['buildbotBranch'] = branch
+                                branchObjects['schedulers'].append(scheduler_class(
+                                        name=scheduler_name,
+                                        branch=scheduler_branch,
+                                        builderNames=test_builders,
+                                        treeStableTimer=None,
+                                        **extra_args
+                                ))
                             else:
                                 scheduler_class = Scheduler
-                                if test_type == 'debug':
-                                    skipcount = branch_config['platforms'][platform][slave_platform].get('debug_unittest_skipcount')
-                                    skiptimeout = branch_config['platforms'][platform][slave_platform].get('debug_unittest_skiptimeout')
-                                else:
-                                    skipcount = branch_config['platforms'][platform][slave_platform].get('opt_unittest_skipcount')
-                                    skiptimeout = branch_config['platforms'][platform][slave_platform].get('opt_unittest_skiptimeout')
-
-                                if skipcount:
-                                    scheduler_class = EveryNthScheduler
-                                    extra_args['n'] = skipcount
-                                    extra_args['idleTimeout'] = skiptimeout
-
-                            branchObjects['schedulers'].append(scheduler_class(
-                                name=scheduler_name,
-                                branch=scheduler_branch,
-                                builderNames=test_builders,
-                                treeStableTimer=None,
-                                **extra_args
-                            ))
+                                suites_by_skipconfig = collections.defaultdict(list)
+                                skipcount = 0
+                                skiptimeout = 0
+                                for test in test_builders:
+                                    skipcount = 0
+                                    skiptimeout = 0
+                                    if branch_config['platforms'][platform][slave_platform].get('skipconfig'):
+                                        #extract last word in the test string as it should correspond to the name of the test
+                                        test_name = test.split()[-1]
+                                        if (test_type, test_name) in branch_config['platforms'][platform][slave_platform]['skipconfig']:
+                                            skipcount, skiptimeout = branch_config['platforms'][platform][slave_platform]['skipconfig'][test_type, test_name]
+                                    suites_by_skipconfig[skipcount, skiptimeout].append(test)
+                                
+                                # Create a new Scheduler for every skip config
+                                for (skipcount, skiptimeout), test_builders in suites_by_skipconfig.items():
+                                    scheduler_class = Scheduler
+                                    s_name = scheduler_name
+                                    extra_args = {}
+
+                                    if skipcount > 0:
+                                        scheduler_class = EveryNthScheduler
+                                        extra_args['n'] = skipcount
+                                        extra_args['idleTimeout'] = skiptimeout
+                                        s_name = scheduler_name + "-" + str(skipcount) + "-"  + str(skiptimeout)
+
+                                    branchObjects['schedulers'].append(scheduler_class(
+                                        name=s_name,
+                                        branch=scheduler_branch,
+                                        builderNames=test_builders,
+                                        treeStableTimer=None,
+                                        **extra_args
+                                    ))
                         for scheduler_name, test_builders, merge in pgoUnittestBuilders:
                             for test in test_builders:
                                 unittestSuites.append(test.split(' ')[-1])
                             scheduler_branch = '%s-%s-pgo-unittest' % (
                                 branch, platform)
                             if not merge:
                                 nomergeBuilders.update(pgo_builders)
                             extra_args = {}