Example #1
0
        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());
                    }
                }
            }
        }
Example #2
0
 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);
                 }
             }
         }
     }
 }
Example #3
0
 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);
             }
         }
     }
 }