コード例 #1
0
    def test_renderableLocks(self):
        master_lock = locks.MasterLock("masterlock")
        worker_lock = locks.WorkerLock("workerlock")

        lock_accesses = []

        @renderer
        def rendered_locks(props):
            master_access = locks.LockAccess(master_lock, 'counting')
            worker_access = locks.LockAccess(worker_lock, 'exclusive')
            lock_accesses.append(master_access)
            lock_accesses.append(worker_access)
            return [master_access, worker_access]

        self.setupStep(self.LockBuildStep(testcase=self, lock_accesses=lock_accesses,
                                          locks=rendered_locks))
        self.expectOutcome(result=SUCCESS)
        yield self.runStep()

        self.assertEqual(len(lock_accesses), 2)

        botmaster = self.step.build.builder.botmaster
        real_master_lock = yield botmaster.getLockFromLockAccess(lock_accesses[0],
                                                                 self.build.config_version)
        real_worker_lock = yield botmaster.getLockFromLockAccess(lock_accesses[1],
                                                                 self.build.config_version)
        self.assertTrue(real_master_lock.isAvailable(self, lock_accesses[0]))
        self.assertIn('workername', real_worker_lock.locks)
        self.assertTrue(real_worker_lock.locks['workername'].isAvailable(self, lock_accesses[1]))
コード例 #2
0
ファイル: test_buildstep.py プロジェクト: taiyeoguns/buildbot
    def test_regularLocks(self):
        lock1 = locks.MasterLock("masterlock")
        lock2 = locks.WorkerLock("workerlock")

        self.setupStep(self.FakeBuildStep(
            locks=[locks.LockAccess(lock1, 'counting'), locks.LockAccess(lock2, 'exclusive')]))
        self.expectOutcome(result=SUCCESS)
        yield self.runStep()
コード例 #3
0
ファイル: test_worker_base.py プロジェクト: JPMMaia/buildbot
 def test_setServiceParent_workerLocks(self):
     """
     http://trac.buildbot.net/ticket/2278
     """
     master = self.master
     bsmanager = master.workers
     yield master.startService()
     lock = locks.WorkerLock('lock')
     bs = ConcreteWorker('bot', 'pass', locks=[lock.access("counting")])
     bs.setServiceParent(bsmanager)
コード例 #4
0
ファイル: test_buildstep.py プロジェクト: ylovecj/buildbot
    def test_renderableLocks(self):
        lock1 = locks.MasterLock("masterlock")
        lock2 = locks.WorkerLock("workerlock")

        renderedLocks = [False]

        @renderer
        def rendered_locks(props):
            renderedLocks[0] = True
            access1 = locks.LockAccess(lock1, 'counting')
            access2 = locks.LockAccess(lock2, 'exclusive')
            return [access1, access2]

        self.setupStep(self.FakeBuildStep(locks=rendered_locks))
        self.expectOutcome(result=SUCCESS)
        yield self.runStep()

        self.assertTrue(renderedLocks[0])
コード例 #5
0
    def test_regularLocks(self):
        master_lock = locks.MasterLock("masterlock")
        worker_lock = locks.WorkerLock("workerlock")
        lock_accesses = [locks.LockAccess(master_lock, 'counting'),
                         locks.LockAccess(worker_lock, 'exclusive')]

        self.setupStep(self.LockBuildStep(testcase=self, lock_accesses=lock_accesses,
                                          locks=lock_accesses))
        self.expectOutcome(result=SUCCESS)
        yield self.runStep()

        botmaster = self.step.build.builder.botmaster
        real_master_lock = yield botmaster.getLockFromLockAccess(lock_accesses[0],
                                                                 self.build.config_version)
        real_worker_lock = yield botmaster.getLockFromLockAccess(lock_accesses[1],
                                                                 self.build.config_version)
        self.assertTrue(real_master_lock.isAvailable(self, lock_accesses[0]))
        self.assertIn('workername', real_worker_lock.locks)
        self.assertTrue(real_worker_lock.locks['workername'].isAvailable(self, lock_accesses[1]))
コード例 #6
0
    def __init__(self):
        self.workers = []
        self.builders = []
        self.auto_builder_names = []
        self.local_builder_lock = locks.MasterLock("local", maxCount=2)
        self.deps_lock = locks.WorkerLock("deps", maxCount=1)

        # Add Linux workers and builders.
        for linux_distro, versions in CONFIG['linux'].items():
            factory = LINUX_FACTORIES[linux_distro]
            for version in versions:
                self._AddBuilderAndWorker(linux_distro, version, factory)

        # Add Ubuntu PPA.
        for linux_distro in CONFIG['linux']['ubuntu']:
            self._AddBuilder(
                name='Ubuntu Stable PPA %s' % linux_distro.title(),
                worker='ubuntu-%s' % linux_distro,
                build_factory=builders.MakePPABuilder(linux_distro, "stable",
                                                      PPA_STABLE))
            self._AddBuilder(
                name='Ubuntu Unstable PPA %s' % linux_distro.title(),
                worker='ubuntu-%s' % linux_distro,
                build_factory=builders.MakePPABuilder(linux_distro, "unstable",
                                                      PPA_UNSTABLE))

        # Add special workers.
        for name in CONFIG['special_workers']:
            self._AddWorker(name)

        # Source.
        self._AddBuilder(name='Source',
                         worker='opensuse-lp152',
                         build_factory=builders.MakeSourceBuilder())

        # AppImage.
        self._AddBuilder(
            name='AppImage Qt 5',
            worker='appimage-qt5',
            build_factory=builders.MakeAppImageBuilder(name="Qt5"))
        self._AddBuilder(
            name='AppImage Qt 6',
            worker='appimage-qt6',
            build_factory=builders.MakeAppImageBuilder(name="Qt6"))

        # MXE.
        self._AddBuilder(name='MXE',
                         worker='mingw',
                         build_factory=builders.MakeMXEBuilder(),
                         auto=False,
                         deps_lock='exclusive')

        # Windows.
        self._AddBuilder(name='Windows Release x86 Qt 5',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=False, is_64=False, with_qt6=False),
                         deps_lock='counting')
        self._AddBuilder(name='Windows Release x64 Qt 5',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=False, is_64=True, with_qt6=False),
                         deps_lock='counting')
        self._AddBuilder(name='Windows Debug x86 Qt 5',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=True, is_64=False, with_qt6=False),
                         deps_lock='counting')
        self._AddBuilder(name='Windows Debug x64 Qt 5',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=True, is_64=True, with_qt6=False),
                         deps_lock='counting')

        self._AddBuilder(name='Windows Release x86 Qt 6',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=False, is_64=False, with_qt6=True),
                         deps_lock='counting')
        self._AddBuilder(name='Windows Release x64 Qt 6',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=False, is_64=True, with_qt6=True),
                         deps_lock='counting')
        self._AddBuilder(name='Windows Debug x86 Qt 6',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=True, is_64=False, with_qt6=True),
                         deps_lock='counting')
        self._AddBuilder(name='Windows Debug x64 Qt 6',
                         worker='mingw',
                         build_factory=builders.MakeWindowsBuilder(
                             is_debug=True, is_64=True, with_qt6=True),
                         deps_lock='counting')