public void CreateEmptyFileTest() { using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true)) { using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream)) { using (var s = filesystem.CreateFile(filesystem.RootDirectory, "a.txt")) { } var f = filesystem.FindChild(filesystem.RootDirectory, "a.txt"); using (var s2 = filesystem.OpenFile(f, FileAccess.Read)) { Assert.AreEqual(-1, s2.ReadByte()); } } } }
public void RandomReadWriteTest() { using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true)) { using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream)) { var testFolder = filesystem.CreateDirectory(filesystem.RootDirectory, "inner looping test"); var random = new Random(0); var fileIndex = 0; var catalogCache = new List <string>(); for (int loop = 0; loop < 10; loop++) { // delete some var existingFiles = filesystem.EnumerateFileSystemEntries(testFolder).ToArray(); for (int index = 0; index < existingFiles.Length; index++) { if (random.Next(0, 2) == 0) { filesystem.Delete(existingFiles[index]); Assert.IsTrue(catalogCache.Remove(existingFiles[index].Name)); } } // add some var newFilesCount = random.Next(100, 300); for (int index = 0; index < newFilesCount; index++) { ++fileIndex; var fileName = fileIndex.ToString(); using (var s = filesystem.CreateFile(testFolder, fileName)) { var l = random.Next(0, 1000); var b = BitConverter.GetBytes(fileIndex); for (int i = 0; i < l; i++) { s.Write(b, 0, b.Length); } } catalogCache.Add(fileName); } } } } }
public void LengthenFileTest() { using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true)) { using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream)) { using (var s = filesystem.CreateFile(filesystem.RootDirectory, "newlong")) { var length = 200000; s.SetLength(length); s.Seek(-1, SeekOrigin.End); s.WriteByte(12); Assert.AreEqual(length, s.Length); s.WriteByte(34); Assert.AreEqual(length + 1, s.Length); } } } }