| Index: third_party/buildbot_7_12/buildbot/test/test_dependencies.py
|
| diff --git a/third_party/buildbot_7_12/buildbot/test/test_dependencies.py b/third_party/buildbot_7_12/buildbot/test/test_dependencies.py
|
| deleted file mode 100644
|
| index c9748294436ec3879592308cd82d182f68320402..0000000000000000000000000000000000000000
|
| --- a/third_party/buildbot_7_12/buildbot/test/test_dependencies.py
|
| +++ /dev/null
|
| @@ -1,169 +0,0 @@
|
| -# -*- test-case-name: buildbot.test.test_dependencies -*-
|
| -
|
| -from twisted.trial import unittest
|
| -
|
| -from twisted.internet import reactor, defer
|
| -
|
| -from buildbot.test.runutils import RunMixin
|
| -from buildbot.status import base
|
| -
|
| -config_1 = """
|
| -from buildbot import scheduler
|
| -from buildbot.process import factory
|
| -from buildbot.steps import dummy
|
| -from buildbot.buildslave import BuildSlave
|
| -s = factory.s
|
| -from buildbot.test.test_locks import LockStep
|
| -from buildbot.config import BuilderConfig
|
| -
|
| -BuildmasterConfig = c = {}
|
| -c['slaves'] = [BuildSlave('bot1', 'sekrit'), BuildSlave('bot2', 'sekrit')]
|
| -c['schedulers'] = []
|
| -c['slavePortnum'] = 0
|
| -
|
| -# upstream1 (fastfail, slowpass)
|
| -# -> downstream2 (b3, b4)
|
| -# upstream3 (slowfail, slowpass)
|
| -# -> downstream4 (b3, b4)
|
| -# -> downstream5 (b5)
|
| -
|
| -s1 = scheduler.Scheduler('upstream1', None, 10, ['slowpass', 'fastfail'])
|
| -s2 = scheduler.Dependent('downstream2', s1, ['b3', 'b4'])
|
| -s3 = scheduler.Scheduler('upstream3', None, 10, ['fastpass', 'slowpass'])
|
| -s4 = scheduler.Dependent('downstream4', s3, ['b3', 'b4'])
|
| -s5 = scheduler.Dependent('downstream5', s4, ['b5'])
|
| -c['schedulers'] = [s1, s2, s3, s4, s5]
|
| -
|
| -f_fastpass = factory.BuildFactory([s(dummy.Dummy, timeout=1)])
|
| -f_slowpass = factory.BuildFactory([s(dummy.Dummy, timeout=2)])
|
| -f_fastfail = factory.BuildFactory([s(dummy.FailingDummy, timeout=1)])
|
| -
|
| -def builder(name, f):
|
| - return BuilderConfig(
|
| - name=name,
|
| - slavename='bot1',
|
| - factory=f)
|
| -
|
| -c['builders'] = [builder('slowpass', f_slowpass),
|
| - builder('fastfail', f_fastfail),
|
| - builder('fastpass', f_fastpass),
|
| - builder('b3', f_fastpass),
|
| - builder('b4', f_fastpass),
|
| - builder('b5', f_fastpass),
|
| - ]
|
| -"""
|
| -
|
| -class Logger(base.StatusReceiverMultiService):
|
| - def __init__(self, master):
|
| - base.StatusReceiverMultiService.__init__(self)
|
| - self.builds = []
|
| - for bn in master.status.getBuilderNames():
|
| - master.status.getBuilder(bn).subscribe(self)
|
| -
|
| - def buildStarted(self, builderName, build):
|
| - self.builds.append(builderName)
|
| -
|
| -class Dependencies(RunMixin, unittest.TestCase):
|
| - def setUp(self):
|
| - RunMixin.setUp(self)
|
| - self.master.loadConfig(config_1)
|
| - self.master.startService()
|
| - d = self.connectSlave(["slowpass", "fastfail", "fastpass",
|
| - "b3", "b4", "b5"])
|
| - return d
|
| -
|
| - def findScheduler(self, name):
|
| - for s in self.master.allSchedulers():
|
| - if s.name == name:
|
| - return s
|
| - raise KeyError("No Scheduler named '%s'" % name)
|
| -
|
| - def testParse(self):
|
| - self.master.loadConfig(config_1)
|
| - # that's it, just make sure this config file is loaded successfully
|
| -
|
| - def testRun_Fail(self):
|
| - # add an extra status target to make pay attention to which builds
|
| - # start and which don't.
|
| - self.logger = Logger(self.master)
|
| -
|
| - # kick off upstream1, which has a failing Builder and thus will not
|
| - # trigger downstream3
|
| - s = self.findScheduler("upstream1")
|
| - # this is an internal function of the Scheduler class
|
| - s.fireTimer() # fires a build
|
| - # t=0: two builders start: 'slowpass' and 'fastfail'
|
| - # t=1: builder 'fastfail' finishes
|
| - # t=2: builder 'slowpass' finishes
|
| - d = defer.Deferred()
|
| - d.addCallback(self._testRun_Fail_1)
|
| - reactor.callLater(5, d.callback, None)
|
| - return d
|
| -
|
| - def _testRun_Fail_1(self, res):
|
| - # 'slowpass' and 'fastfail' should have run one build each
|
| - b = self.status.getBuilder('slowpass').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| - b = self.status.getBuilder('fastfail').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| -
|
| - # none of the other builders should have run
|
| - self.failIf(self.status.getBuilder('b3').getLastFinishedBuild())
|
| - self.failIf(self.status.getBuilder('b4').getLastFinishedBuild())
|
| - self.failIf(self.status.getBuilder('b5').getLastFinishedBuild())
|
| -
|
| - # in fact, none of them should have even started
|
| - self.failUnlessEqual(len(self.logger.builds), 2)
|
| - self.failUnless("slowpass" in self.logger.builds)
|
| - self.failUnless("fastfail" in self.logger.builds)
|
| - self.failIf("b3" in self.logger.builds)
|
| - self.failIf("b4" in self.logger.builds)
|
| - self.failIf("b5" in self.logger.builds)
|
| -
|
| - def testRun_Pass(self):
|
| - # kick off upstream3, which will fire downstream4 and then
|
| - # downstream5
|
| - s = self.findScheduler("upstream3")
|
| - # this is an internal function of the Scheduler class
|
| - s.fireTimer() # fires a build
|
| - # t=0: slowpass and fastpass start
|
| - # t=1: builder 'fastpass' finishes
|
| - # t=2: builder 'slowpass' finishes
|
| - # scheduler 'downstream4' fires
|
| - # builds b3 and b4 are started
|
| - # t=3: builds b3 and b4 finish
|
| - # scheduler 'downstream5' fires
|
| - # build b5 is started
|
| - # t=4: build b5 is finished
|
| - d = defer.Deferred()
|
| - d.addCallback(self._testRun_Pass_1)
|
| - reactor.callLater(5, d.callback, None)
|
| - return d
|
| -
|
| - def _testRun_Pass_1(self, res):
|
| - # 'fastpass' and 'slowpass' should have run one build each
|
| - b = self.status.getBuilder('fastpass').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| -
|
| - b = self.status.getBuilder('slowpass').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| -
|
| - self.failIf(self.status.getBuilder('fastfail').getLastFinishedBuild())
|
| -
|
| - b = self.status.getBuilder('b3').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| -
|
| - b = self.status.getBuilder('b4').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| -
|
| - b = self.status.getBuilder('b4').getLastFinishedBuild()
|
| - self.failUnless(b)
|
| - self.failUnlessEqual(b.getNumber(), 0)
|
| -
|
| -
|
|
|