Improve precedence test
The jobs were starting in the correct order, but because they all
ran in parallel, they had a race to finish, and the build history
is built from finished jobs, which is what the test checked.
Instead, only allow one job at a time to run.
Change-Id: Ie09369d7c27b286c2339c9cc40658f8d5f629488
diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index 0a8b16a..ca80ab9 100644
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -2320,6 +2320,7 @@
"Test that queue precedence works"
self.gearman_server.hold_jobs_in_queue = True
+ self.worker.hold_jobs_in_build = True
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
A.addApproval('CRVW', 2)
@@ -2330,6 +2331,13 @@
self.gearman_server.release()
self.waitUntilSettled()
+ # Run one build at a time to ensure non-race order:
+ for x in range(6):
+ self.release(self.builds[0])
+ self.waitUntilSettled()
+ self.worker.hold_jobs_in_build = False
+ self.waitUntilSettled()
+
self.log.debug(self.history)
self.assertEqual(self.history[0].pipeline, 'gate')
self.assertEqual(self.history[1].pipeline, 'check')