Revision b2dabfd6 test/ganeti.locking_unittest.py
b/test/ganeti.locking_unittest.py | ||
---|---|---|
470 | 470 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
471 | 471 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
472 | 472 |
|
473 |
def testEmptyLockSet(self): |
|
474 |
# get the set-lock |
|
475 |
self.assertEqual(self.ls.acquire(None), set(['one', 'two', 'three'])) |
|
476 |
# now empty it... |
|
477 |
self.ls.remove(['one', 'two', 'three']) |
|
478 |
# and adds/locks by another thread still wait |
|
479 |
Thread(target=self._doAddSet, args=(['nine'])).start() |
|
480 |
Thread(target=self._doLockSet, args=(None, 1)).start() |
|
481 |
Thread(target=self._doLockSet, args=(None, 0)).start() |
|
482 |
self.assertRaises(Queue.Empty, self.done.get, True, 0.2) |
|
483 |
self.ls.release() |
|
484 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
|
485 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
|
486 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
|
487 |
# empty it again... |
|
488 |
self.assertEqual(self.ls.remove(['nine']), ['nine']) |
|
489 |
# now share it... |
|
490 |
self.assertEqual(self.ls.acquire(None, shared=1), set()) |
|
491 |
# other sharers can go, adds still wait |
|
492 |
Thread(target=self._doLockSet, args=(None, 1)).start() |
|
493 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
|
494 |
Thread(target=self._doAddSet, args=(['nine'])).start() |
|
495 |
self.assertRaises(Queue.Empty, self.done.get, True, 0.2) |
|
496 |
self.ls.release() |
|
497 |
self.assertEqual(self.done.get(True, 1), 'DONE') |
|
498 |
|
|
473 | 499 |
|
474 | 500 |
class TestGanetiLockManager(unittest.TestCase): |
475 | 501 |
|
Also available in: Unified diff