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

Unified Diff: scripts/master/unittests/floating_builder_test.py

Issue 2255643002: Floating builder logic waits at startup. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Fix nits. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « scripts/master/floating_builder.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/master/unittests/floating_builder_test.py
diff --git a/scripts/master/unittests/floating_builder_test.py b/scripts/master/unittests/floating_builder_test.py
index b048be8b7f29d49f4daa97e4c0facf4dbb1e7a10..87d02eeaf8abf2f04cf577654827808b9f52d6bc 100755
--- a/scripts/master/unittests/floating_builder_test.py
+++ b/scripts/master/unittests/floating_builder_test.py
@@ -123,7 +123,7 @@ class FloatingBuilderTest(unittest.TestCase):
# Mock current date/time.
self.now = datetime.datetime(2016, 1, 1, 8, 0, 0) # 1/1/2016 @8:00
- fb._get_now.return_value = self.now
+ fb._get_now.side_effect = lambda: self.now
# Mock PokeBuilderTimer to record when the poke builder was set, but not
# actually schedule any reactor magic.
@@ -145,14 +145,31 @@ class FloatingBuilderTest(unittest.TestCase):
for patcher in reversed(self._mocks):
patcher.stop()
+ def testJustStartedNoPrimariesOnlineWaits(self):
+ fs = fb.FloatingSet()
+ fs.AddPrimary('primary-a')
+ fs.AddFloating('floating-a', 'floating-b')
+ fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
+
+ self.builder.set_online_slaves('floating-a', 'floating-b')
+
+ nsb = fnsf(self.builder, self.builder.slavebuilders)
+ self.assertIsNone(nsb)
+ self.assertEqual(self.poke_delta, datetime.timedelta(seconds=10))
+
+ self.now += datetime.timedelta(seconds=11)
+ nsb = fnsf(self.builder, self.builder.slavebuilders)
+ self.assertIsNotNone(nsb)
+ self.assertEqual(nsb.slave.slavename, 'floating-a')
+
def testPrimaryBuilderIsSelectedWhenAvailable(self):
fs = fb.FloatingSet()
fs.AddPrimary('primary-a')
fs.AddFloating('floating-a', 'floating-b')
+ fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
self.builder.set_online_slaves('primary-a', 'floating-a', 'floating-b')
- fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
nsb = fnsf(self.builder, self.builder.slavebuilders)
self.assertIsNotNone(nsb)
self.assertEqual(nsb.slave.slavename, 'primary-a')
@@ -161,12 +178,12 @@ class FloatingBuilderTest(unittest.TestCase):
fs = fb.FloatingSet()
fs.AddPrimary('primary-a', 'primary-b')
fs.AddFloating('floating-a', 'floating-b')
+ fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
self.builder.set_online_slaves('primary-a', 'primary-b', 'floating-a',
'floating-b')
self.builder.set_busy_slaves('primary-a')
- fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
nsb = fnsf(self.builder, self.builder.slavebuilders)
self.assertIsNotNone(nsb)
self.assertEqual(nsb.slave.slavename, 'primary-b')
@@ -175,11 +192,12 @@ class FloatingBuilderTest(unittest.TestCase):
fs = fb.FloatingSet()
fs.AddPrimary('primary-a', 'primary-b')
fs.AddFloating('floating-a', 'floating-b')
+ fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
+ self.now += datetime.timedelta(seconds=30)
self.builder.set_online_slaves('floating-a')
self._slaves['primary-b']._set_last_seen(self.now, seconds=-1)
- fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
nsb = fnsf(self.builder, self.builder.slavebuilders)
self.assertIsNone(nsb)
self.assertEqual(self.poke_delta, datetime.timedelta(seconds=9))
@@ -188,10 +206,11 @@ class FloatingBuilderTest(unittest.TestCase):
fs = fb.FloatingSet()
fs.AddPrimary('primary-a', 'primary-b')
fs.AddFloating('floating-a', 'floating-b')
+ fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
+ self.now += datetime.timedelta(seconds=30)
self.builder.set_online_slaves('floating-a')
- fnsf = fs.NextSlaveFunc(datetime.timedelta(seconds=10))
nsb = fnsf(self.builder, self.builder.slavebuilders)
self.assertIsNotNone(nsb)
self.assertEqual(nsb.slave.slavename, 'floating-a')
« no previous file with comments | « scripts/master/floating_builder.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698