Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Side by Side Diff: third_party/buildbot_7_12/buildbot/test/test_reconfig.py

Issue 12207158: Bye bye buildbot 0.7.12. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 from twisted.trial import unittest
2 from twisted.internet import reactor, defer
3 from twisted.python import log
4
5 from buildbot.test.runutils import RunMixin
6 from buildbot.sourcestamp import SourceStamp
7
8 config_base = """
9 from buildbot.process import factory
10 from buildbot.steps import dummy
11 from buildbot.buildslave import BuildSlave
12 from buildbot.scheduler import Triggerable, Dependent
13 from buildbot.config import BuilderConfig
14
15 BuildmasterConfig = c = {}
16
17 f = factory.BuildFactory()
18 f.addStep(dummy.Dummy, timeout=%d)
19
20 c['slaves'] = [BuildSlave('bot1', 'sekrit')]
21
22 upstream = Triggerable('s_upstream', ['upstream'], {'prop': '%s'})
23 dep = Dependent('s_dep', upstream, ['depend'], {'dep prop': '%s'})
24 c['schedulers'] = [upstream, dep]
25 c['builders'] = [
26 BuilderConfig(name='upstream', slavename='bot1', factory=f),
27 BuilderConfig(name='depend', slavename='bot1', factory=f),
28 ]
29 c['slavePortnum'] = 0
30 """
31
32 class DependingScheduler(RunMixin, unittest.TestCase):
33 '''Test an upstream and a dependent scheduler while reconfiguring.'''
34
35 def testReconfig(self):
36 self.reconfigured = 0
37 self.master.loadConfig(config_base % (1, 'prop value', 'dep prop value') )
38 self.prop_value = 'prop value'
39 self.dep_prop_value = 'dep prop value'
40 self.master.readConfig = True
41 self.master.startService()
42 d = self.connectSlave(builders=['upstream', 'depend'])
43 d.addCallback(self._triggerUpstream)
44 return d
45 def _triggerUpstream(self, res):
46 log.msg("trigger upstream")
47 ss = SourceStamp()
48 upstream = [s for s in self.master.allSchedulers()
49 if s.name == 's_upstream'][0]
50 d = upstream.trigger(ss)
51 d.addCallback(self._gotBuild)
52 return d
53
54 def _gotBuild(self, res):
55 log.msg("done")
56 d = defer.Deferred()
57 d.addCallback(self._doChecks)
58 reactor.callLater(2, d.callback, None)
59 return d
60
61 def _doChecks(self, res):
62 log.msg("starting tests")
63 ub = self.status.getBuilder('upstream').getLastFinishedBuild()
64 tb = self.status.getBuilder('depend').getLastFinishedBuild()
65 self.assertEqual(ub.getProperty('prop'), self.prop_value)
66 self.assertEqual(ub.getNumber(), self.reconfigured)
67 self.assertEqual(tb.getProperty('dep prop'), self.dep_prop_value)
68 self.assertEqual(tb.getNumber(), self.reconfigured)
69
70 # now further on to the reconfig
71 if self.reconfigured > 2:
72 # actually, we're done,
73 return
74 if self.reconfigured == 0:
75 # reconfig without changes now
76 d = self.master.loadConfig(config_base% (1, 'prop value',
77 'dep prop value'))
78 elif self.reconfigured == 1:
79 # reconfig with changes to upstream now
80 d = self.master.loadConfig(config_base% (1, 'other prop value',
81 'dep prop value'))
82 self.prop_value = 'other prop value'
83 self.dep_prop_value = 'dep prop value'
84 else:
85 # reconfig with changes to dep now
86 d = self.master.loadConfig(config_base% (1, 'other prop value',
87 'other dep prop value'))
88 self.prop_value = 'other prop value'
89 self.dep_prop_value = 'other dep prop value'
90 self.reconfigured += 1
91 d.addCallback(self._triggerUpstream)
92 return d
OLDNEW
« no previous file with comments | « third_party/buildbot_7_12/buildbot/test/test_properties.py ('k') | third_party/buildbot_7_12/buildbot/test/test_run.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698