diff options
| -rw-r--r-- | bitbake/lib/bb/tests/runqueue.py | 40 |
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 | |||
