BIND 10 trac2856, updated. 89a447a134798d2d59ae7a5565a9f07271ed6e9e [2856] Add more thorough remove_reader() tests
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Jul 8 13:01:03 UTC 2013
The branch, trac2856 has been updated
via 89a447a134798d2d59ae7a5565a9f07271ed6e9e (commit)
from 292f28a54f954f44b4771f359c9a3cc4753da22a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 89a447a134798d2d59ae7a5565a9f07271ed6e9e
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Jul 8 18:25:06 2013 +0530
[2856] Add more thorough remove_reader() tests
-----------------------------------------------------------------------
Summary of changes:
.../python/isc/memmgr/tests/datasrc_info_tests.py | 59 ++++++++++++++++++++
1 file changed, 59 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/lib/python/isc/memmgr/tests/datasrc_info_tests.py b/src/lib/python/isc/memmgr/tests/datasrc_info_tests.py
index a69c814..8c8e5e2 100644
--- a/src/lib/python/isc/memmgr/tests/datasrc_info_tests.py
+++ b/src/lib/python/isc/memmgr/tests/datasrc_info_tests.py
@@ -270,6 +270,65 @@ class TestSegmentInfo(unittest.TestCase):
self.assertRaises(SegmentInfoError, self.__sgmt_info.remove_reader, (0))
self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.COPYING)
+ # in SYNCHRONIZING state:
+ #
+ # a) ID is not in old readers set or readers set.
+ self.__si_to_synchronizing_state()
+ self.__sgmt_info.add_reader(4)
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {4})
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
+ self.assertRaises(SegmentInfoError, self.__sgmt_info.remove_reader, (1))
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
+
+ # b) ID is in readers set.
+ self.__si_to_synchronizing_state()
+ self.__sgmt_info.add_reader(4)
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {4})
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
+ e = self.__sgmt_info.remove_reader(4)
+ self.assertIsNone(e)
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
+ self.assertSetEqual(self.__sgmt_info.get_readers(), set())
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
+ # we only change state if it was removed from old_readers
+ # specifically and it became empty.
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
+
+ # c) ID is in old_readers set and it becomes empty.
+ self.__si_to_synchronizing_state()
+ self.__sgmt_info.add_reader(4)
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3})
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {4})
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
+ e = self.__sgmt_info.remove_reader(3)
+ self.assertTupleEqual(e, (42,))
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), set())
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {4})
+ self.assertListEqual(self.__sgmt_info.get_events(), [])
+ # we only change state if it was removed from old_readers
+ # specifically and it became empty.
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.COPYING)
+
+ # d) ID is in old_readers set and it doesn't become empty.
+ self.__si_to_updating_state()
+ self.__sgmt_info.add_reader(4)
+ self.__sgmt_info.complete_update()
+ self.__sgmt_info.add_reader(5)
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {3, 4})
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {5})
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
+ e = self.__sgmt_info.remove_reader(3)
+ self.assertIsNone(e)
+ self.assertSetEqual(self.__sgmt_info.get_old_readers(), {4})
+ self.assertSetEqual(self.__sgmt_info.get_readers(), {5})
+ self.assertListEqual(self.__sgmt_info.get_events(), [(42,)])
+ # we only change state if it was removed from old_readers
+ # specifically and it became empty.
+ self.assertEqual(self.__sgmt_info.get_state(), SegmentInfo.SYNCHRONIZING)
+
def test_switch_versions(self):
self.__sgmt_info.switch_versions()
self.__check_sgmt_reset_param(SegmentInfo.WRITER, 1)
More information about the bind10-changes
mailing list