summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/tests/runqueue.py40
1 files changed, 38 insertions, 2 deletions
diff --git a/bitbake/lib/bb/tests/runqueue.py b/bitbake/lib/bb/tests/runqueue.py
index 2bf00dc62a..35d5a843ff 100644
--- a/bitbake/lib/bb/tests/runqueue.py
+++ b/bitbake/lib/bb/tests/runqueue.py
@@ -59,6 +59,8 @@ class RunQueueTests(unittest.TestCase):
59 expected = ['a1:' + x for x in self.alltasks] 59 expected = ['a1:' + x for x in self.alltasks]
60 self.assertEqual(set(tasks), set(expected)) 60 self.assertEqual(set(tasks), set(expected))
61 61
62 self.shutdown(tempdir)
63
62 def test_single_setscenevalid(self): 64 def test_single_setscenevalid(self):
63 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 65 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
64 cmd = ["bitbake", "a1"] 66 cmd = ["bitbake", "a1"]
@@ -69,6 +71,8 @@ class RunQueueTests(unittest.TestCase):
69 'a1:populate_sysroot', 'a1:build'] 71 'a1:populate_sysroot', 'a1:build']
70 self.assertEqual(set(tasks), set(expected)) 72 self.assertEqual(set(tasks), set(expected))
71 73
74 self.shutdown(tempdir)
75
72 def test_intermediate_setscenevalid(self): 76 def test_intermediate_setscenevalid(self):
73 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 77 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
74 cmd = ["bitbake", "a1"] 78 cmd = ["bitbake", "a1"]
@@ -78,6 +82,8 @@ class RunQueueTests(unittest.TestCase):
78 'a1:populate_sysroot_setscene', 'a1:build'] 82 'a1:populate_sysroot_setscene', 'a1:build']
79 self.assertEqual(set(tasks), set(expected)) 83 self.assertEqual(set(tasks), set(expected))
80 84
85 self.shutdown(tempdir)
86
81 def test_intermediate_notcovered(self): 87 def test_intermediate_notcovered(self):
82 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 88 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
83 cmd = ["bitbake", "a1"] 89 cmd = ["bitbake", "a1"]
@@ -87,6 +93,8 @@ class RunQueueTests(unittest.TestCase):
87 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene'] 93 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
88 self.assertEqual(set(tasks), set(expected)) 94 self.assertEqual(set(tasks), set(expected))
89 95
96 self.shutdown(tempdir)
97
90 def test_all_setscenevalid(self): 98 def test_all_setscenevalid(self):
91 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 99 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
92 cmd = ["bitbake", "a1"] 100 cmd = ["bitbake", "a1"]
@@ -96,6 +104,8 @@ class RunQueueTests(unittest.TestCase):
96 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene'] 104 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
97 self.assertEqual(set(tasks), set(expected)) 105 self.assertEqual(set(tasks), set(expected))
98 106
107 self.shutdown(tempdir)
108
99 def test_no_settasks(self): 109 def test_no_settasks(self):
100 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 110 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
101 cmd = ["bitbake", "a1", "-c", "patch"] 111 cmd = ["bitbake", "a1", "-c", "patch"]
@@ -104,6 +114,8 @@ class RunQueueTests(unittest.TestCase):
104 expected = ['a1:fetch', 'a1:unpack', 'a1:patch'] 114 expected = ['a1:fetch', 'a1:unpack', 'a1:patch']
105 self.assertEqual(set(tasks), set(expected)) 115 self.assertEqual(set(tasks), set(expected))
106 116
117 self.shutdown(tempdir)
118
107 def test_mix_covered_notcovered(self): 119 def test_mix_covered_notcovered(self):
108 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 120 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
109 cmd = ["bitbake", "a1:do_patch", "a1:do_populate_sysroot"] 121 cmd = ["bitbake", "a1:do_patch", "a1:do_populate_sysroot"]
@@ -112,6 +124,7 @@ class RunQueueTests(unittest.TestCase):
112 expected = ['a1:fetch', 'a1:unpack', 'a1:patch', 'a1:populate_sysroot_setscene'] 124 expected = ['a1:fetch', 'a1:unpack', 'a1:patch', 'a1:populate_sysroot_setscene']
113 self.assertEqual(set(tasks), set(expected)) 125 self.assertEqual(set(tasks), set(expected))
114 126
127 self.shutdown(tempdir)
115 128
116 # Test targets with intermediate setscene tasks alongside a target with no intermediate setscene tasks 129 # Test targets with intermediate setscene tasks alongside a target with no intermediate setscene tasks
117 def test_mixed_direct_tasks_setscene_tasks(self): 130 def test_mixed_direct_tasks_setscene_tasks(self):
@@ -123,6 +136,8 @@ class RunQueueTests(unittest.TestCase):
123 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene'] 136 'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
124 self.assertEqual(set(tasks), set(expected)) 137 self.assertEqual(set(tasks), set(expected))
125 138
139 self.shutdown(tempdir)
140
126 # This test slows down the execution of do_package_setscene until after other real tasks have 141 # This test slows down the execution of do_package_setscene until after other real tasks have
127 # started running which tests for a bug where tasks were being lost from the buildable list of real 142 # started running which tests for a bug where tasks were being lost from the buildable list of real
128 # tasks if they weren't in tasks_covered or tasks_notcovered 143 # tasks if they weren't in tasks_covered or tasks_notcovered
@@ -137,6 +152,8 @@ class RunQueueTests(unittest.TestCase):
137 'a1:populate_sysroot', 'a1:build'] 152 'a1:populate_sysroot', 'a1:build']
138 self.assertEqual(set(tasks), set(expected)) 153 self.assertEqual(set(tasks), set(expected))
139 154
155 self.shutdown(tempdir)
156
140 def test_setscenewhitelist(self): 157 def test_setscenewhitelist(self):
141 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 158 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
142 cmd = ["bitbake", "a1"] 159 cmd = ["bitbake", "a1"]
@@ -150,6 +167,8 @@ class RunQueueTests(unittest.TestCase):
150 'a1:populate_sysroot_setscene', 'a1:package_setscene'] 167 'a1:populate_sysroot_setscene', 'a1:package_setscene']
151 self.assertEqual(set(tasks), set(expected)) 168 self.assertEqual(set(tasks), set(expected))
152 169
170 self.shutdown(tempdir)
171
153 # Tests for problems with dependencies between setscene tasks 172 # Tests for problems with dependencies between setscene tasks
154 def test_no_setscenevalid_harddeps(self): 173 def test_no_setscenevalid_harddeps(self):
155 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 174 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
@@ -163,6 +182,8 @@ class RunQueueTests(unittest.TestCase):
163 'd1:populate_sysroot', 'd1:build'] 182 'd1:populate_sysroot', 'd1:build']
164 self.assertEqual(set(tasks), set(expected)) 183 self.assertEqual(set(tasks), set(expected))
165 184
185 self.shutdown(tempdir)
186
166 def test_no_setscenevalid_withdeps(self): 187 def test_no_setscenevalid_withdeps(self):
167 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 188 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
168 cmd = ["bitbake", "b1"] 189 cmd = ["bitbake", "b1"]
@@ -173,6 +194,8 @@ class RunQueueTests(unittest.TestCase):
173 expected.remove('a1:package_qa') 194 expected.remove('a1:package_qa')
174 self.assertEqual(set(tasks), set(expected)) 195 self.assertEqual(set(tasks), set(expected))
175 196
197 self.shutdown(tempdir)
198
176 def test_single_a1_setscenevalid_withdeps(self): 199 def test_single_a1_setscenevalid_withdeps(self):
177 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 200 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
178 cmd = ["bitbake", "b1"] 201 cmd = ["bitbake", "b1"]
@@ -183,6 +206,8 @@ class RunQueueTests(unittest.TestCase):
183 'a1:populate_sysroot'] + ['b1:' + x for x in self.alltasks] 206 'a1:populate_sysroot'] + ['b1:' + x for x in self.alltasks]
184 self.assertEqual(set(tasks), set(expected)) 207 self.assertEqual(set(tasks), set(expected))
185 208
209 self.shutdown(tempdir)
210
186 def test_single_b1_setscenevalid_withdeps(self): 211 def test_single_b1_setscenevalid_withdeps(self):
187 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 212 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
188 cmd = ["bitbake", "b1"] 213 cmd = ["bitbake", "b1"]
@@ -194,6 +219,8 @@ class RunQueueTests(unittest.TestCase):
194 expected.remove('b1:package') 219 expected.remove('b1:package')
195 self.assertEqual(set(tasks), set(expected)) 220 self.assertEqual(set(tasks), set(expected))
196 221
222 self.shutdown(tempdir)
223
197 def test_intermediate_setscenevalid_withdeps(self): 224 def test_intermediate_setscenevalid_withdeps(self):
198 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 225 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
199 cmd = ["bitbake", "b1"] 226 cmd = ["bitbake", "b1"]
@@ -204,6 +231,8 @@ class RunQueueTests(unittest.TestCase):
204 expected.remove('b1:package') 231 expected.remove('b1:package')
205 self.assertEqual(set(tasks), set(expected)) 232 self.assertEqual(set(tasks), set(expected))
206 233
234 self.shutdown(tempdir)
235
207 def test_all_setscenevalid_withdeps(self): 236 def test_all_setscenevalid_withdeps(self):
208 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 237 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
209 cmd = ["bitbake", "b1"] 238 cmd = ["bitbake", "b1"]
@@ -214,6 +243,8 @@ class RunQueueTests(unittest.TestCase):
214 'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene'] 243 'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene']
215 self.assertEqual(set(tasks), set(expected)) 244 self.assertEqual(set(tasks), set(expected))
216 245
246 self.shutdown(tempdir)
247
217 def test_multiconfig_setscene_optimise(self): 248 def test_multiconfig_setscene_optimise(self):
218 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 249 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
219 extraenv = { 250 extraenv = {
@@ -233,6 +264,8 @@ class RunQueueTests(unittest.TestCase):
233 expected.remove(x) 264 expected.remove(x)
234 self.assertEqual(set(tasks), set(expected)) 265 self.assertEqual(set(tasks), set(expected))
235 266
267 self.shutdown(tempdir)
268
236 def test_multiconfig_bbmask(self): 269 def test_multiconfig_bbmask(self):
237 # This test validates that multiconfigs can independently mask off 270 # This test validates that multiconfigs can independently mask off
238 # recipes they do not want with BBMASK. It works by having recipes 271 # recipes they do not want with BBMASK. It works by having recipes
@@ -249,6 +282,8 @@ class RunQueueTests(unittest.TestCase):
249 cmd = ["bitbake", "mc:mc-1:fails-mc2", "mc:mc_2:fails-mc1"] 282 cmd = ["bitbake", "mc:mc-1:fails-mc2", "mc:mc_2:fails-mc1"]
250 self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv) 283 self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv)
251 284
285 self.shutdown(tempdir)
286
252 def test_multiconfig_mcdepends(self): 287 def test_multiconfig_mcdepends(self):
253 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 288 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
254 extraenv = { 289 extraenv = {
@@ -279,6 +314,8 @@ class RunQueueTests(unittest.TestCase):
279 ["mc_2:a1:%s" % t for t in rerun_tasks] 314 ["mc_2:a1:%s" % t for t in rerun_tasks]
280 self.assertEqual(set(tasks), set(expected)) 315 self.assertEqual(set(tasks), set(expected))
281 316
317 self.shutdown(tempdir)
318
282 def test_hashserv_single(self): 319 def test_hashserv_single(self):
283 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 320 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
284 extraenv = { 321 extraenv = {
@@ -359,7 +396,6 @@ class RunQueueTests(unittest.TestCase):
359 396
360 def shutdown(self, tempdir): 397 def shutdown(self, tempdir):
361 # Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup 398 # Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup
362 while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal")): 399 while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal") or os.path.exists(tempdir + "/bitbake.lock")):
363 time.sleep(0.5) 400 time.sleep(0.5)
364 401
365