示例#1
0
    def startMaster(self, sch, startSlave=False, wantPBListener=False):
        BuildmasterConfig['schedulers'] = [sch]
        self.sch = sch

        if wantPBListener:
            self.pblistener = client.PBListener(0)
            BuildmasterConfig['status'] = [self.pblistener]
        else:
            BuildmasterConfig['status'] = []

        # create the master and set its config
        m = self.master = master.BuildMaster(self.basedir, self.configfile)
        m.config = config.MasterConfig.loadConfig(
            self.basedir, self.configfile)

        # set up the db
        yield m.db.setup(check_version=False)
        yield m.db.model.create()

        # stub out m.db.setup since it was already called above
        m.db.setup = lambda: None

        # mock reactor.stop (which trial *really* doesn't
        # like test code to call!)
        mock_reactor = mock.Mock(spec=reactor)
        mock_reactor.callWhenRunning = reactor.callWhenRunning

        # start the service
        yield m.startService(_reactor=mock_reactor)
        self.failIf(mock_reactor.stop.called,
                    "startService tried to stop the reactor; check logs")

        # hang out until the scheduler has registered its PB port
        if isinstance(self.sch, trysched.Try_Userpass):
            def getSchedulerPort():
                if not self.sch.registrations:
                    return
                self.serverPort = self.sch.registrations[0].getPort()
                log.msg("Scheduler registered at port %d" % self.serverPort)
                return True
            yield waitFor(getSchedulerPort)

        # now start the fake slave
        if startSlave:
            self.slave = FakeRemoteSlave(self.serverPort)
            yield self.slave.start()
示例#2
0
 def test_PBListener_logs(self):
     client.PBListener(9989)
     self.assertLogged('PBListener.*unused')
示例#3
0
 def test_PBListener_IStatusListener(self):
     pbl = client.PBListener(9989)
     self.failUnless(interfaces.IStatusReceiver.providedBy(pbl))
示例#4
0
                                              request.postpath)

        self.site.resource = RewriterResource(rootResource, rewriteXSL)


waterfall = MyWaterfall(http_port=8010,
                        css="buildbot.css",
                        results_directory="/home/buildresults/results/",
                        allowForce=False)

allBuildsEmail = mail.MailNotifier(
    fromaddr="*****@*****.**",
    extraRecipients=["*****@*****.**"],
    sendToInterestedUsers=False)
breakageEmail = mail.MailNotifier(
    fromaddr="*****@*****.**",
    extraRecipients=["*****@*****.**"],
    lookup=mail.Domain("opensource.apple.com"),
    mode="breakage")

IRC = words.IRC(host="irc.freenode.net",
                nick="webkit-build",
                channels=["#webkit-build"],
                announceAllBuilds=True)

PBClient = client.PBListener("tcp:9988", "statusClient", "clientpw")


def getStatusListeners():
    return [waterfall, allBuildsEmail, breakageEmail, IRC, PBClient]