Rev 6066: (gz) Cope with better than expected compression from new zlib in btree tests in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/2.4/
Patch Queue Manager
pqm at pqm.ubuntu.com
Mon Feb 27 12:57:46 UTC 2012
At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/2.4/
------------------------------------------------------------
revno: 6066 [merge]
revision-id: pqm at pqm.ubuntu.com-20120227125745-rren91v7krkuka65
parent: pqm at pqm.ubuntu.com-20120113113133-eh846y7w12s9hm9s
parent: martin.packman at canonical.com-20120226195615-z2pg4qs5z7mfqm74
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: 2.4
timestamp: Mon 2012-02-27 12:57:45 +0000
message:
(gz) Cope with better than expected compression from new zlib in btree tests
(Martin Packman)
modified:
bzrlib/tests/test_btree_index.py test_index.py-20080624222253-p0x5f92uyh5hw734-13
doc/en/release-notes/bzr-2.4.txt bzr2.4.txt-20110114053217-k7ym9jfz243fddjm-1
=== modified file 'bzrlib/tests/test_btree_index.py'
--- a/bzrlib/tests/test_btree_index.py 2011-01-27 14:27:18 +0000
+++ b/bzrlib/tests/test_btree_index.py 2012-02-26 19:56:07 +0000
@@ -100,6 +100,16 @@
self.overrideAttr(btree_index, '_PAGE_SIZE')
btree_index._PAGE_SIZE = 2048
+ def assertEqualsApproxCompressed(self, expected, actual, slop=6):
+ """Check a count of compressed bytes is approximately as expected
+
+ Relying on compressed length being stable even with fixed inputs is
+ slightly bogus, but zlib is stable enough that this mostly works.
+ """
+ if not expected - slop < actual < expected + slop:
+ self.fail("Expected around %d bytes compressed but got %d" %
+ (expected, actual))
+
class TestBTreeBuilder(BTreeTestCase):
@@ -196,7 +206,7 @@
temp_file = builder.finish()
content = temp_file.read()
del temp_file
- self.assertEqual(9283, len(content))
+ self.assertEqualsApproxCompressed(9283, len(content))
self.assertEqual(
"B+Tree Graph Index 2\nnode_ref_lists=0\nkey_elements=1\nlen=400\n"
"row_lengths=1,2\n",
@@ -230,7 +240,7 @@
temp_file = builder.finish()
content = temp_file.read()
del temp_file
- self.assertEqual(155, len(content))
+ self.assertEqualsApproxCompressed(155, len(content))
self.assertEqual(
"B+Tree Graph Index 2\nnode_ref_lists=0\nkey_elements=1\nlen=10\n"
"row_lengths=1\n",
@@ -252,7 +262,7 @@
temp_file = builder.finish()
content = temp_file.read()
del temp_file
- self.assertEqual(9283, len(content))
+ self.assertEqualsApproxCompressed(9283, len(content))
self.assertEqual(
"B+Tree Graph Index 2\nnode_ref_lists=0\nkey_elements=1\nlen=400\n"
"row_lengths=1,2\n",
@@ -311,7 +321,7 @@
temp_file = builder.finish()
content = temp_file.read()
del temp_file
- self.assertEqual(12643, len(content))
+ self.assertEqualsApproxCompressed(12643, len(content))
self.assertEqual(
"B+Tree Graph Index 2\nnode_ref_lists=2\nkey_elements=2\nlen=200\n"
"row_lengths=1,3\n",
@@ -697,7 +707,7 @@
# The entire index should have been read, as it is one page long.
self.assertEqual([('readv', 'index', [(0, size)], False, None)],
t._activity)
- self.assertEqual(1173, size)
+ self.assertEqualsApproxCompressed(1173, size)
def test_with_offset_no_size(self):
index = self.make_index_with_offset(key_elements=1, ref_lists=1,
@@ -747,7 +757,7 @@
builder.add_node(*node)
t = transport.get_transport('trace+' + self.get_url(''))
size = t.put_file('index', builder.finish())
- self.assertEqual(17692, size)
+ self.assertEqualsApproxCompressed(17692, size)
index = btree_index.BTreeGraphIndex(t, 'index', size)
del t._activity[:]
self.assertEqual([], t._activity)
@@ -770,7 +780,7 @@
# The entire index should have been read linearly.
self.assertEqual([('readv', 'index', [(0, size)], False, None)],
t._activity)
- self.assertEqual(1488, size)
+ self.assertEqualsApproxCompressed(1488, size)
def test_validate_two_pages(self):
builder = btree_index.BTreeBuilder(key_elements=2, reference_lists=2)
@@ -780,15 +790,16 @@
t = transport.get_transport('trace+' + self.get_url(''))
size = t.put_file('index', builder.finish())
# Root page, 2 leaf pages
- self.assertEqual(9339, size)
+ self.assertEqualsApproxCompressed(9339, size)
index = btree_index.BTreeGraphIndex(t, 'index', size)
del t._activity[:]
self.assertEqual([], t._activity)
index.validate()
+ rem = size - 8192 # Number of remaining bytes after second block
# The entire index should have been read linearly.
self.assertEqual(
[('readv', 'index', [(0, 4096)], False, None),
- ('readv', 'index', [(4096, 4096), (8192, 1147)], False, None)],
+ ('readv', 'index', [(4096, 4096), (8192, rem)], False, None)],
t._activity)
# XXX: TODO: write some badly-ordered nodes, and some pointers-to-wrong
# node and make validate find them.
@@ -849,8 +860,6 @@
builder.add_node(*node)
t = transport.get_transport('trace+' + self.get_url(''))
size = t.put_file('index', builder.finish())
- self.assertEqual(1303220, size, 'number of expected bytes in the'
- ' output changed')
page_size = btree_index._PAGE_SIZE
del builder
index = btree_index.BTreeGraphIndex(t, 'index', size)
@@ -872,7 +881,7 @@
# The entire index should have been read
total_pages = sum(index._row_lengths)
self.assertEqual(total_pages, index._row_offsets[-1])
- self.assertEqual(1303220, size)
+ self.assertEqualsApproxCompressed(1303220, size)
# The start of the leaves
first_byte = index._row_offsets[-2] * page_size
readv_request = []
=== modified file 'doc/en/release-notes/bzr-2.4.txt'
--- a/doc/en/release-notes/bzr-2.4.txt 2011-12-05 13:44:00 +0000
+++ b/doc/en/release-notes/bzr-2.4.txt 2012-02-26 19:56:15 +0000
@@ -79,6 +79,9 @@
suite. This can include new facilities for writing tests, fixes to
spurious test failures and changes to the way things should be tested.
+* Account for slightly improved compression with newer versions of zlib in
+ ``bt.test_btree_index`` tests. (Martin Packman, #940453)
+
bzr 2.4.2
#########
More information about the bazaar-commits
mailing list