~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_groupcompress.py

  • Committer: John Arbash Meinel
  • Date: 2009-03-27 16:10:03 UTC
  • mto: (3735.40.10 vilajam)
  • mto: This revision was merged to the branch mainline in revision 4280.
  • Revision ID: john@arbash-meinel.com-20090327161003-snhpx5qx7bcw7v1i
Make the text for key4 slightly longer, rather than include key3.
We were running into the 'rebuild because not enough bytes used' check,
so we just needed a few more bytes on the wire to be used.

Show diffs side-by-side

added added

removed removed

Lines of Context:
595
595
        ('key3',): "yet another text which won't be extracted\n"
596
596
                   "with a reasonable amount of compressible bytes\n",
597
597
        ('key4',): "this will be extracted\n"
598
 
                   "but references bytes from\n"
 
598
                   "but references most of its bytes from\n"
599
599
                   "yet another text which won't be extracted\n"
600
600
                   "with a reasonable amount of compressible bytes\n",
601
601
    }
661
661
        entries, block = self.make_block(self._texts)
662
662
        manager = groupcompress._LazyGroupContentManager(block)
663
663
        self.add_key_to_manager(('key1',), entries, block, manager)
664
 
        self.add_key_to_manager(('key3',), entries, block, manager)
665
664
        self.add_key_to_manager(('key4',), entries, block, manager)
666
665
        block_bytes = block.to_bytes()
667
666
        wire_bytes = manager._wire_bytes()
671
670
        header_len = int(header_len)
672
671
        block_len = int(block_len)
673
672
        self.assertEqual('groupcompress-block', storage_kind)
674
 
        self.assertEqual(41, z_header_len)
675
 
        self.assertEqual(39, header_len)
 
673
        self.assertEqual(33, z_header_len)
 
674
        self.assertEqual(25, header_len)
676
675
        self.assertEqual(len(block_bytes), block_len)
677
676
        z_header = rest[:z_header_len]
678
677
        header = zlib.decompress(z_header)
679
678
        self.assertEqual(header_len, len(header))
680
679
        entry1 = entries[('key1',)]
681
 
        entry3 = entries[('key3',)]
682
680
        entry4 = entries[('key4',)]
683
681
        self.assertEqualDiff('key1\n'
684
682
                             '\n'  # no parents
685
683
                             '%d\n' # start offset
686
 
                             '%d\n' # end byte
687
 
                             'key3\n'
688
 
                             '\n'
689
 
                             '%d\n'
690
 
                             '%d\n'
 
684
                             '%d\n' # end offset
691
685
                             'key4\n'
692
686
                             '\n'
693
687
                             '%d\n'
694
688
                             '%d\n'
695
689
                             % (entry1.start, entry1.end,
696
 
                                entry3.start, entry3.end,
697
690
                                entry4.start, entry4.end),
698
691
                            header)
699
692
        z_block = rest[z_header_len:]
703
696
        entries, block = self.make_block(self._texts)
704
697
        manager = groupcompress._LazyGroupContentManager(block)
705
698
        self.add_key_to_manager(('key1',), entries, block, manager)
706
 
        self.add_key_to_manager(('key3',), entries, block, manager)
707
699
        self.add_key_to_manager(('key4',), entries, block, manager)
708
700
        wire_bytes = manager._wire_bytes()
709
701
        self.assertStartsWith(wire_bytes, 'groupcompress-block\n')
710
702
        manager = groupcompress._LazyGroupContentManager.from_bytes(wire_bytes)
711
703
        self.assertIsInstance(manager, groupcompress._LazyGroupContentManager)
712
 
        self.assertEqual(3, len(manager._factories))
 
704
        self.assertEqual(2, len(manager._factories))
713
705
        self.assertEqual(block._z_content, manager._block._z_content)
714
706
        result_order = []
715
707
        for record in manager.get_record_stream():
716
708
            result_order.append(record.key)
717
709
            text = self._texts[record.key]
718
710
            self.assertEqual(text, record.get_bytes_as('fulltext'))
719
 
        self.assertEqual([('key1',), ('key3',), ('key4',)], result_order)
 
711
        self.assertEqual([('key1',), ('key4',)], result_order)
720
712
 
721
713
    def test__check_rebuild_no_changes(self):
722
714
        entries, block = self.make_block(self._texts)