diff --git a/test/ganeti.locking_unittest.py b/test/ganeti.locking_unittest.py index 85fa0fc66251016660a7332ea98153f7b71ff771..494994cdba113fea977a30e2ed0df7990dd6336f 100755 --- a/test/ganeti.locking_unittest.py +++ b/test/ganeti.locking_unittest.py @@ -1703,6 +1703,21 @@ class TestLockSet(_ThreadedTestCase): self.ls.release() + def testDowngradeEverything(self): + self.assertEqual(self.ls.acquire(locking.ALL_SET, shared=0), + set(["one", "two", "three"])) + + # Ensure all locks are now owned in exclusive mode + for name in self.ls._names(): + self.assertTrue(self.ls.check_owned(name, shared=0)) + + # Downgrade everything + self.assertTrue(self.ls.downgrade()) + + # Ensure all locks are now owned in shared mode + for name in self.ls._names(): + self.assertTrue(self.ls.check_owned(name, shared=1)) + def testPriority(self): def _Acquire(prev, next, name, priority, success_fn): prev.wait()