Rev 5494: Basic testing that adding a new offset puts it in the right place and updates the info. in http://bazaar.launchpad.net/~jameinel/bzr/2.3-gcb-peak-mem
John Arbash Meinel
john at arbash-meinel.com
Wed Oct 20 18:54:02 BST 2010
At http://bazaar.launchpad.net/~jameinel/bzr/2.3-gcb-peak-mem
------------------------------------------------------------
revno: 5494
revision-id: john at arbash-meinel.com-20101020175400-vx7l3rhs04kh48ju
parent: john at arbash-meinel.com-20101018211803-e88mvx0f2serp0nd
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.3-gcb-peak-mem
timestamp: Wed 2010-10-20 12:54:00 -0500
message:
Basic testing that adding a new offset puts it in the right place and updates the info.
-------------- next part --------------
=== modified file '.bzrignore'
--- a/.bzrignore 2010-10-14 21:45:37 +0000
+++ b/.bzrignore 2010-10-20 17:54:00 +0000
@@ -52,7 +52,7 @@
bzrlib/_btree_serializer_pyx.c
bzrlib/_chk_map_pyx.c
bzrlib/_chunks_to_lines_pyx.c
-bzrlib/_delta_index.c
+bzrlib/_delta_index_pyx.c
bzrlib/_dirstate_helpers_pyx.c
bzrlib/_groupcompress_pyx.c
bzrlib/_knit_load_data_pyx.c
=== modified file 'bzrlib/_delta_index_pyx.pyx'
--- a/bzrlib/_delta_index_pyx.pyx 2010-10-18 21:18:03 +0000
+++ b/bzrlib/_delta_index_pyx.pyx 2010-10-20 17:54:00 +0000
@@ -143,6 +143,7 @@
cdef _add_offset(self, rabin_offset offset):
self._add_offset_to_buckets(self.buckets, self.hash_mask, offset)
+ self.num_entries += 1
def _py_add_offset(self, val, source):
"""A python thunk for testing _add_offset
@@ -184,6 +185,7 @@
self._add_offset_to_buckets(new_buckets, new_mask, offset)
offset = offset.next
self.buckets = new_buckets
+ self.hash_mask = new_mask
def add_source(self, source):
"""Add a source of more data to delta against.
=== modified file 'bzrlib/tests/test__delta_index.py'
--- a/bzrlib/tests/test__delta_index.py 2010-10-18 21:18:03 +0000
+++ b/bzrlib/tests/test__delta_index.py 2010-10-20 17:54:00 +0000
@@ -164,29 +164,50 @@
class TestRabinIndex_ensure_enough_buckets(TestCaseWithRabinIndex):
def test_create_empty_buckets(self):
- self.index._ensure_enough_buckets(0)
self.assertEqual(16, len(self.index.buckets))
self.assertEqual([None]*16, self.index.buckets)
+ self.assertEqual(15, self.index.hash_mask)
def test_buckets_get_reassigned(self):
bucket = self._module.RabinBucket()
- self.index.buckets[0] = bucket
+ self.index.buckets[1] = bucket
+ self.index.num_entries = 1
offset = self._module.rabin_offset()
- offset.val = 1
+ offset.val = 17
bucket.first = offset
bucket.count = 1
- self.index._ensure_enough_buckets(0)
# At this point, we should get a 16-wide buckets array, with the offset
# moved to the right location
self.assertEqual(16, len(self.index.buckets))
+ self.assertEqual(15, self.index.hash_mask)
bucket = self.index.buckets[1]
self.assertIsNot(None, bucket)
self.assertIs(offset, bucket.first)
self.assertEqual(1, bucket.count)
self.assertEqual([None], self.index.buckets[:1])
self.assertEqual([None]*14, self.index.buckets[2:])
+ # Now switch to a wider bucket
+ self.index._ensure_enough_buckets(2048)
+ self.assertEqual(32, len(self.index.buckets))
+ self.assertEqual(31, self.index.hash_mask)
+ bucket = self.index.buckets[17]
+ self.assertIsNot(None, bucket)
+ self.assertIs(offset, bucket.first)
+ self.assertEqual(1, bucket.count)
+ self.assertEqual([None]*17, self.index.buckets[:17])
+ self.assertEqual([None]*14, self.index.buckets[18:])
class TestRabinIndex_add_offset(TestCaseWithRabinIndex):
def test_add_offset_simple(self):
+ offset = self.index._py_add_offset(1, 0)
+ self.assertEqual(1, offset.val)
+ self.assertEqual(0, offset.source)
+ self.assertEqual(1, self.index.num_entries)
+ self.assertIsNot(None, self.index.buckets[1])
+ bucket = self.index.buckets[1]
+ self.assertEqual(1, bucket.count)
+ offset = bucket.first
+ self.assertIsNot(None, offset)
+ self.assertIs(None, offset.next)
More information about the bazaar-commits
mailing list