VOL-351: Assign unique ID to Channelgroup xPON object for HA
Change-Id: I14bb71dde475aaaafc7c8b53ec9fbc3d1a3dc3cc
diff --git a/tests/utests/common/utils/test_indexpool.py b/tests/utests/common/utils/test_indexpool.py
new file mode 100644
index 0000000..609ed2f
--- /dev/null
+++ b/tests/utests/common/utils/test_indexpool.py
@@ -0,0 +1,35 @@
+from unittest import TestCase, main
+from common.utils.indexpool import IndexPool
+
+class TestIndexPool(TestCase):
+ pool = IndexPool(8, 0)
+ def test_01_get_next(self):
+ self.assertEqual(self.pool.indices.bin, '00000000')
+ for i in range(8):
+ self.assertEqual(self.pool.get_next(), i)
+ #to check if there's any bit left after using all 8 bits
+ self.assertIsNone(self.pool.get_next())
+
+ def test_02_pre_allocate(self):
+ _pool2 = IndexPool(8, 0)
+ self.assertEqual(_pool2.indices.bin, '00000000')
+ _pool2.pre_allocate((0,1,2,))
+ self.assertEqual(_pool2.indices.bin, '11100000')
+
+ def test_03_release(self):
+ self.pool.release(5)
+ self.assertEqual(self.pool.indices.bin, '11111011')
+ self.pool.release(10)
+ self.assertEqual(self.pool.indices.bin, '11111011')
+ self.pool.release(0)
+ self.assertEqual(self.pool.indices.bin, '01111011')
+
+ def test_04_check_offset(self):
+ _offset = 5
+ self.pool = IndexPool(8, _offset)
+ for i in range(8):
+ self.assertEqual(self.pool.get_next(), _offset + i)
+
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file