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