Rev 6477: (gz) Merge 2.5 for fixes to texinfo doc script and btree tests (Martin in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/

Patch Queue Manager pqm at pqm.ubuntu.com
Mon Feb 27 15:20:55 UTC 2012


At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 6477 [merge]
revision-id: pqm at pqm.ubuntu.com-20120227152055-sw2fya70kpfk3h4y
parent: pqm at pqm.ubuntu.com-20120225152853-nz1w2gsfv7lc1yq4
parent: martin.packman at canonical.com-20120227145041-gc9wmhu97liqc9se
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2012-02-27 15:20:55 +0000
message:
  (gz) Merge 2.5 for fixes to texinfo doc script and btree tests (Martin
   Packman)
modified:
  bzrlib/doc_generate/builders/texinfo.py texinfo_builder.py-20100428165122-t24toqlqz1nxzsc0-1
  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/doc_generate/builders/texinfo.py'
--- a/bzrlib/doc_generate/builders/texinfo.py	2012-02-24 10:07:50 +0000
+++ b/bzrlib/doc_generate/builders/texinfo.py	2012-02-24 13:35:31 +0000
@@ -41,5 +41,4 @@
 
 
 def setup(app):
-    import pdb; pdb.set_trace()
     app.add_builder(TexinfoBuilder)

=== modified file 'bzrlib/tests/test_btree_index.py'
--- a/bzrlib/tests/test_btree_index.py	2011-11-16 20:59:10 +0000
+++ b/bzrlib/tests/test_btree_index.py	2012-02-27 13:07:18 +0000
@@ -103,6 +103,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):
 
@@ -199,7 +209,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",
@@ -233,7 +243,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",
@@ -255,7 +265,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",
@@ -314,7 +324,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",
@@ -700,7 +710,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,
@@ -750,7 +760,7 @@
             builder.add_node(*node)
         t = transport.get_transport_from_url('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)
@@ -773,7 +783,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)
@@ -783,15 +793,16 @@
         t = transport.get_transport_from_url('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.
@@ -860,8 +871,6 @@
             builder.add_node(*node)
         t = transport.get_transport_from_url('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)
@@ -883,7 +892,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 14:21:55 +0000
+++ b/doc/en/release-notes/bzr-2.4.txt	2012-02-27 13:07:18 +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