From 4badc36c5c65ae18a154e688b3a4648321ad65b8 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Wed, 27 Oct 2010 15:09:01 +0100 Subject: [PATCH] Add test for modifiable locking levels Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- test/ganeti.locking_unittest.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/ganeti.locking_unittest.py b/test/ganeti.locking_unittest.py index b3edda815..9c85886be 100755 --- a/test/ganeti.locking_unittest.py +++ b/test/ganeti.locking_unittest.py @@ -1535,6 +1535,20 @@ class TestGanetiLockManager(_ThreadedTestCase): self.assertRaises(AssertionError, self.GL.acquire, locking.LEVEL_INSTANCE, ['i2']) + def testModifiableLevels(self): + self.assertRaises(AssertionError, self.GL.add, locking.LEVEL_CLUSTER, + ['BGL2']) + self.GL.acquire(locking.LEVEL_CLUSTER, ['BGL']) + self.GL.add(locking.LEVEL_INSTANCE, ['i4']) + self.GL.remove(locking.LEVEL_INSTANCE, ['i3']) + self.GL.remove(locking.LEVEL_INSTANCE, ['i1']) + self.assertEqual(self.GL._names(locking.LEVEL_INSTANCE), set(['i2', 'i4'])) + self.GL.add(locking.LEVEL_NODE, ['n3']) + self.GL.remove(locking.LEVEL_NODE, ['n1']) + self.assertEqual(self.GL._names(locking.LEVEL_NODE), set(['n2', 'n3'])) + self.assertRaises(AssertionError, self.GL.remove, locking.LEVEL_CLUSTER, + ['BGL2']) + # Helper function to run as a thread that shared the BGL and then acquires # some locks at another level. def _doLock(self, level, names, shared): -- GitLab