private static void TestBinaryStream(DiskIo stream)
        {
            FileHeaderBlock header = stream.LastCommittedHeader;

            header = header.CloneEditable();
            SubFileHeader node = header.CreateNewFile(SubFileName.CreateRandom());

            header.CreateNewFile(SubFileName.CreateRandom());
            header.CreateNewFile(SubFileName.CreateRandom());

            SubFileStream ds = new SubFileStream(stream, node, header, false);

            BinaryStreamTest.Test(ds);
        }
Esempio n. 2
0
        public void Test()
        {
            MemoryPoolTest.TestMemoryLeak();
            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);
            FileHeaderBlock header = FileHeaderBlock.CreateNew(4096);

            header = header.CloneEditable();
            header.CreateNewFile(SubFileName.CreateRandom());
            header.CreateNewFile(SubFileName.CreateRandom());
            header.CreateNewFile(SubFileName.CreateRandom());
            header.IsReadOnly = true;

            FileHeaderBlock header2 = FileHeaderBlock.Open(header.GetBytes());

            CheckEqual(header2, header);
            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);
            //verify they are the same;
            MemoryPoolTest.TestMemoryLeak();
        }
        private static void TestReadAndWrites(DiskIo stream)
        {
            FileHeaderBlock header = stream.LastCommittedHeader;

            header = header.CloneEditable();
            SubFileHeader node = header.CreateNewFile(SubFileName.CreateRandom());

            header.CreateNewFile(SubFileName.CreateRandom());
            header.CreateNewFile(SubFileName.CreateRandom());

            SubFileStream ds = new SubFileStream(stream, node, header, false);

            TestSingleByteWrite(ds);
            TestSingleByteRead(ds);

            TestCustomSizeWrite(ds, 5);
            TestCustomSizeRead(ds, 5);

            TestCustomSizeWrite(ds, BlockDataLength + 20);
            TestCustomSizeRead(ds, BlockDataLength + 20);
            stream.CommitChanges(header);
        }