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]))
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()
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)
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])
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]))
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')