public void Test()
        {
            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);

            string fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".tmp");

            try
            {
                using (DiskIo stream = DiskIo.CreateFile(fileName, Globals.MemoryPool, BlockSize))
                {
                    TestReadAndWrites(stream);

                    TestReadAndWritesWithCommit(stream);
                    TestReadAndWritesToDifferentFilesWithCommit(stream);
                    TestBinaryStream(stream);
                }
            }
            finally
            {
                File.Delete(fileName);
            }


            Assert.IsTrue(true);
            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);
        }
        public void Test()
        {
            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);

            string fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".tmp");

            try
            {
                using (DiskIo stream = DiskIo.CreateFile(fileName, Globals.MemoryPool, BlockSize))
                {
                    FileHeaderBlock fat = stream.LastCommittedHeader;
                    //obtain a readonly copy of the file allocation table.
                    fat = stream.LastCommittedHeader;
                    TestCreateNewFile(stream, fat);
                    fat = stream.LastCommittedHeader;
                    TestOpenExistingFile(stream, fat);
                    fat = stream.LastCommittedHeader;
                    TestRollback(stream, fat);
                    fat = stream.LastCommittedHeader;
                    TestVerifyRollback(stream, fat);
                    Assert.IsTrue(true);
                }
            }
            finally
            {
                File.Delete(fileName);
            }

            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);
        }
예제 #3
0
        /// <summary>
        /// Creates a new archive file using the provided file. File is editable.
        /// </summary>
        public static TransactionalFileStructure CreateFile(string fileName, int blockSize, params Guid[] flags)
        {
            if (fileName is null)
            {
                throw new ArgumentNullException("fileName");
            }
            if (File.Exists(fileName))
            {
                throw new Exception("fileName Already Exists");
            }

            DiskIo disk = DiskIo.CreateFile(fileName, Globals.MemoryPool, blockSize, flags);

            return(new TransactionalFileStructure(disk));
        }