Пример #1
0
        public virtual void TestPackWithDuplicateBlob()
        {
            byte[] data = Constants.Encode("0123456789abcdefg");
            TestRepository <Repository> d = new TestRepository <Repository>(db);

            NUnit.Framework.Assert.IsTrue(db.HasObject(d.Blob(data)));
            TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
            PackHeader(pack, 1);
            pack.Write((Constants.OBJ_BLOB) << 4 | unchecked ((int)(0x80)) | 1);
            pack.Write(1);
            Deflate(pack, data);
            Digest(pack);
            byte[]    raw = pack.ToByteArray();
            IndexPack ip  = IndexPack.Create(db, new ByteArrayInputStream(raw));

            ip.Index(NullProgressMonitor.INSTANCE);
            ip.RenameAndOpenPack();
        }
Пример #2
0
        public virtual void TestTinyThinPack()
        {
            TestRepository d = new TestRepository(db);
            RevBlob        a = d.Blob("a");

            TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
            PackHeader(pack, 1);
            pack.Write((Constants.OBJ_REF_DELTA) << 4 | 4);
            a.CopyRawTo(pack);
            Deflate(pack, new byte[] { unchecked ((int)(0x1)), unchecked ((int)(0x1)), unchecked (
                                           (int)(0x1)), (byte)('b') });
            Digest(pack);
            byte[]    raw = pack.ToByteArray();
            IndexPack ip  = IndexPack.Create(db, new ByteArrayInputStream(raw));

            ip.SetFixThin(true);
            ip.Index(NullProgressMonitor.INSTANCE);
            ip.RenameAndOpenPack();
        }