diff options
Diffstat (limited to 'bitbake/lib/hashserv/tests.py')
| -rw-r--r-- | bitbake/lib/hashserv/tests.py | 60 |
1 files changed, 48 insertions, 12 deletions
diff --git a/bitbake/lib/hashserv/tests.py b/bitbake/lib/hashserv/tests.py index 1fcfb6b929..efaf3bdf42 100644 --- a/bitbake/lib/hashserv/tests.py +++ b/bitbake/lib/hashserv/tests.py | |||
| @@ -19,10 +19,10 @@ import time | |||
| 19 | import signal | 19 | import signal |
| 20 | 20 | ||
| 21 | def server_prefunc(server, idx): | 21 | def server_prefunc(server, idx): |
| 22 | logging.basicConfig(level=logging.DEBUG, filename='bbhashserv.log', filemode='w', | 22 | logging.basicConfig(level=logging.DEBUG, filename='bbhashserv-%d.log' % idx, filemode='w', |
| 23 | format='%(levelname)s %(filename)s:%(lineno)d %(message)s') | 23 | format='%(levelname)s %(filename)s:%(lineno)d %(message)s') |
| 24 | server.logger.debug("Running server %d" % idx) | 24 | server.logger.debug("Running server %d" % idx) |
| 25 | sys.stdout = open('bbhashserv-%d.log' % idx, 'w') | 25 | sys.stdout = open('bbhashserv-stdout-%d.log' % idx, 'w') |
| 26 | sys.stderr = sys.stdout | 26 | sys.stderr = sys.stdout |
| 27 | 27 | ||
| 28 | class HashEquivalenceTestSetup(object): | 28 | class HashEquivalenceTestSetup(object): |
| @@ -140,12 +140,17 @@ class HashEquivalenceCommonTests(object): | |||
| 140 | }) | 140 | }) |
| 141 | self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') | 141 | self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') |
| 142 | 142 | ||
| 143 | result = self.client.get_taskhash(self.METHOD, taskhash, True) | 143 | result_unihash = self.client.get_taskhash(self.METHOD, taskhash, True) |
| 144 | self.assertEqual(result['taskhash'], taskhash) | 144 | self.assertEqual(result_unihash['taskhash'], taskhash) |
| 145 | self.assertEqual(result['unihash'], unihash) | 145 | self.assertEqual(result_unihash['unihash'], unihash) |
| 146 | self.assertEqual(result['method'], self.METHOD) | 146 | self.assertEqual(result_unihash['method'], self.METHOD) |
| 147 | self.assertEqual(result['outhash'], outhash) | 147 | |
| 148 | self.assertEqual(result['outhash_siginfo'], siginfo) | 148 | result_outhash = self.client.get_outhash(self.METHOD, outhash, taskhash) |
| 149 | self.assertEqual(result_outhash['taskhash'], taskhash) | ||
| 150 | self.assertEqual(result_outhash['method'], self.METHOD) | ||
| 151 | self.assertEqual(result_outhash['unihash'], unihash) | ||
| 152 | self.assertEqual(result_outhash['outhash'], outhash) | ||
| 153 | self.assertEqual(result_outhash['outhash_siginfo'], siginfo) | ||
| 149 | 154 | ||
| 150 | def test_stress(self): | 155 | def test_stress(self): |
| 151 | def query_server(failures): | 156 | def query_server(failures): |
| @@ -260,6 +265,39 @@ class HashEquivalenceCommonTests(object): | |||
| 260 | result = down_client.report_unihash(taskhash6, self.METHOD, outhash5, unihash6) | 265 | result = down_client.report_unihash(taskhash6, self.METHOD, outhash5, unihash6) |
| 261 | self.assertEqual(result['unihash'], unihash5, 'Server failed to copy unihash from upstream') | 266 | self.assertEqual(result['unihash'], unihash5, 'Server failed to copy unihash from upstream') |
| 262 | 267 | ||
| 268 | # Tests read through from server with | ||
| 269 | taskhash7 = '9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74' | ||
| 270 | outhash7 = '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69' | ||
| 271 | unihash7 = '05d2a63c81e32f0a36542ca677e8ad852365c538' | ||
| 272 | self.client.report_unihash(taskhash7, self.METHOD, outhash7, unihash7) | ||
| 273 | |||
| 274 | result = down_client.get_taskhash(self.METHOD, taskhash7, True) | ||
| 275 | self.assertEqual(result['unihash'], unihash7, 'Server failed to copy unihash from upstream') | ||
| 276 | self.assertEqual(result['outhash'], outhash7, 'Server failed to copy unihash from upstream') | ||
| 277 | self.assertEqual(result['taskhash'], taskhash7, 'Server failed to copy unihash from upstream') | ||
| 278 | self.assertEqual(result['method'], self.METHOD) | ||
| 279 | |||
| 280 | taskhash8 = '86978a4c8c71b9b487330b0152aade10c1ee58aa' | ||
| 281 | outhash8 = 'ca8c128e9d9e4a28ef24d0508aa20b5cf880604eacd8f65c0e366f7e0cc5fbcf' | ||
| 282 | unihash8 = 'd8bcf25369d40590ad7d08c84d538982f2023e01' | ||
| 283 | self.client.report_unihash(taskhash8, self.METHOD, outhash8, unihash8) | ||
| 284 | |||
| 285 | result = down_client.get_outhash(self.METHOD, outhash8, taskhash8) | ||
| 286 | self.assertEqual(result['unihash'], unihash8, 'Server failed to copy unihash from upstream') | ||
| 287 | self.assertEqual(result['outhash'], outhash8, 'Server failed to copy unihash from upstream') | ||
| 288 | self.assertEqual(result['taskhash'], taskhash8, 'Server failed to copy unihash from upstream') | ||
| 289 | self.assertEqual(result['method'], self.METHOD) | ||
| 290 | |||
| 291 | taskhash9 = 'ae6339531895ddf5b67e663e6a374ad8ec71d81c' | ||
| 292 | outhash9 = 'afc78172c81880ae10a1fec994b5b4ee33d196a001a1b66212a15ebe573e00b5' | ||
| 293 | unihash9 = '6662e699d6e3d894b24408ff9a4031ef9b038ee8' | ||
| 294 | self.client.report_unihash(taskhash9, self.METHOD, outhash9, unihash9) | ||
| 295 | |||
| 296 | result = down_client.get_taskhash(self.METHOD, taskhash9, False) | ||
| 297 | self.assertEqual(result['unihash'], unihash9, 'Server failed to copy unihash from upstream') | ||
| 298 | self.assertEqual(result['taskhash'], taskhash9, 'Server failed to copy unihash from upstream') | ||
| 299 | self.assertEqual(result['method'], self.METHOD) | ||
| 300 | |||
| 263 | def test_ro_server(self): | 301 | def test_ro_server(self): |
| 264 | (ro_client, ro_server) = self.start_server(dbpath=self.server.dbpath, read_only=True) | 302 | (ro_client, ro_server) = self.start_server(dbpath=self.server.dbpath, read_only=True) |
| 265 | 303 | ||
| @@ -287,10 +325,8 @@ class HashEquivalenceCommonTests(object): | |||
| 287 | 325 | ||
| 288 | 326 | ||
| 289 | def test_slow_server_start(self): | 327 | def test_slow_server_start(self): |
| 290 | """ | 328 | # Ensures that the server will exit correctly even if it gets a SIGTERM |
| 291 | Ensures that the server will exit correctly even if it gets a SIGTERM | 329 | # before entering the main loop |
| 292 | before entering the main loop | ||
| 293 | """ | ||
| 294 | 330 | ||
| 295 | event = multiprocessing.Event() | 331 | event = multiprocessing.Event() |
| 296 | 332 | ||
