Exemplo n.º 1
0
        public void XfsVhdxZip()
        {
            SetupHelper.SetupComplete();
            using (FileStream fs = File.OpenRead(Path.Combine("..", "..", "..", "Xfs", "Data", "xfs.zip")))
                using (Stream vhdx = ZipUtilities.ReadFileFromZip(fs))
                    using (var diskImage = new DiskImageFile(vhdx, Ownership.Dispose))
                        using (var disk = new Disk(new List <DiskImageFile> {
                            diskImage
                        }, Ownership.Dispose))
                        {
                            var manager        = new VolumeManager(disk);
                            var logicalVolumes = manager.GetLogicalVolumes();
                            Assert.Equal(1, logicalVolumes.Length);

                            var volume      = logicalVolumes[0];
                            var filesystems = FileSystemManager.DetectFileSystems(volume);
                            Assert.Equal(1, filesystems.Length);

                            var filesystem = filesystems[0];
                            Assert.Equal("xfs", filesystem.Name);

                            var xfs = filesystem.Open(volume);
                            Assert.IsType <XfsFileSystem>(xfs);

                            Assert.Equal(9082019840, xfs.AvailableSpace);
                            Assert.Equal(10725863424, xfs.Size);
                            Assert.Equal(1643843584, xfs.UsedSpace);
                            ValidateContent(xfs);
                        }
        }
Exemplo n.º 2
0
        public void SwapVhdxGzip()
        {
            SetupHelper.SetupComplete();
            using (FileStream fs = File.OpenRead(Path.Combine("..", "..", "..", "Swap", "Data", "swap.zip")))
                using (Stream vhdx = ZipUtilities.ReadFileFromZip(fs))
                    using (var diskImage = new DiskImageFile(vhdx, Ownership.Dispose))
                        using (var disk = new Disk(new List <DiskImageFile> {
                            diskImage
                        }, Ownership.Dispose))
                        {
                            var manager        = new VolumeManager(disk);
                            var logicalVolumes = manager.GetLogicalVolumes();
                            Assert.Equal(1, logicalVolumes.Length);

                            var volume      = logicalVolumes[0];
                            var filesystems = FileSystemManager.DetectFileSystems(volume);
                            Assert.Equal(1, filesystems.Length);

                            var filesystem = filesystems[0];
                            Assert.Equal("Swap", filesystem.Name);

                            var swap = filesystem.Open(volume);
                            Assert.IsType <SwapFileSystem>(swap);

                            Assert.Equal(0, swap.AvailableSpace);
                            Assert.Equal(10737414144, swap.Size);
                            Assert.Equal(swap.Size, swap.UsedSpace);
                        }
        }
Exemplo n.º 3
0
        public void BtrfsVhdxZip()
        {
            DiscUtils.Setup.SetupHelper.RegisterAssembly(typeof(Disk).GetTypeInfo().Assembly);
            DiscUtils.Setup.SetupHelper.RegisterAssembly(typeof(BtrfsFileSystem).GetTypeInfo().Assembly);
            using (FileStream fs = File.OpenRead(Path.Combine("..", "..", "..", "Btrfs", "Data", "btrfs.zip")))
                using (Stream vhdx = ZipUtilities.ReadFileFromZip(fs))
                    using (var diskImage = new DiskImageFile(vhdx, Ownership.Dispose))
                        using (var disk = new Disk(new List <DiskImageFile> {
                            diskImage
                        }, Ownership.Dispose))
                        {
                            var manager        = new VolumeManager(disk);
                            var logicalVolumes = manager.GetLogicalVolumes();
                            Assert.Equal(1, logicalVolumes.Length);

                            var volume      = logicalVolumes[0];
                            var filesystems = FileSystemManager.DetectFileSystems(volume);
                            Assert.Equal(1, filesystems.Length);

                            var filesystem = filesystems[0];
                            Assert.Equal("btrfs", filesystem.Name);

                            using (var btrfs = filesystem.Open(volume))
                            {
                                Assert.IsType <BtrfsFileSystem>(btrfs);

                                Assert.Equal(1072594944, btrfs.AvailableSpace);
                                Assert.Equal(1072693248, btrfs.Size);
                                Assert.Equal(98304, btrfs.UsedSpace);

                                var subvolumes = ((BtrfsFileSystem)btrfs).GetSubvolumes();
                                Assert.Equal(1, subvolumes.Length);
                                Assert.Equal(256UL, subvolumes[0].Id);
                                Assert.Equal("subvolume", subvolumes[0].Name);

                                Assert.Equal("text\n", GetFileContent(@"\folder\subfolder\file", btrfs));
                                Assert.Equal("f64464c2024778f347277de6fa26fe87", GetFileChecksum(@"\folder\subfolder\f64464c2024778f347277de6fa26fe87", btrfs));
                                Assert.Equal("fa121c8b73cf3b01a4840b1041b35e9f", GetFileChecksum(@"\folder\subfolder\fa121c8b73cf3b01a4840b1041b35e9f", btrfs));
                                IsAllZero(@"folder\subfolder\sparse", btrfs);
                                Assert.Equal("test\n", GetFileContent(@"\subvolume\subvolumefolder\subvolumefile", btrfs));
                                Assert.Equal("b0d5fae237588b6641f974459404d197", GetFileChecksum(@"\folder\subfolder\compressed", btrfs));
                                Assert.Equal("test\n", GetFileContent(@"\folder\symlink", btrfs)); //PR#36
                                Assert.Equal("b0d5fae237588b6641f974459404d197", GetFileChecksum(@"\folder\subfolder\lzo", btrfs));
                            }

                            using (var subvolume = new BtrfsFileSystem(volume.Open(), new BtrfsFileSystemOptions {
                                SubvolumeId = 256, VerifyChecksums = true
                            }))
                            {
                                Assert.Equal("test\n", GetFileContent(@"\subvolumefolder\subvolumefile", subvolume));
                            }
                        }
        }
Exemplo n.º 4
0
 public void ReplayLog()
 {
     using (FileStream fs = File.OpenRead(Path.Combine("..", "..", "..", "Vhdx", "Data", "vhdx-log-replay.zip")))
         using (Stream vhdx = ZipUtilities.ReadFileFromZip(fs))
             using (var diskImage = new DiskImageFile(vhdx, Ownership.Dispose))
                 using (var disk = new Disk(new List <DiskImageFile> {
                     diskImage
                 }, Ownership.Dispose))
                 {
                     Assert.True(disk.IsPartitioned);
                     Assert.Equal(2, disk.Partitions.Count);
                 }
 }
Exemplo n.º 5
0
        public void AppleTestZip()
        {
            using (FileStream fs = File.OpenRead(Path.Combine("..", "..", "..", "Iso9660", "Data", "apple-test.zip")))
                using (Stream iso = ZipUtilities.ReadFileFromZip(fs))
                    using (CDReader cr = new CDReader(iso, false))
                    {
                        DiscDirectoryInfo dir = cr.GetDirectoryInfo("sub-directory");
                        Assert.NotNull(dir);
                        Assert.Equal("sub-directory", dir.Name);

                        DiscFileInfo[] file = dir.GetFiles("apple-test.txt");
                        Assert.Equal(1, file.Length);
                        Assert.Equal(21, file[0].Length);
                        Assert.Equal("apple-test.txt", file[0].Name);
                        Assert.Equal(dir, file[0].Directory);
                    }
        }
Exemplo n.º 6
0
        public void Lvm2VhdxZip()
        {
            SetupHelper.SetupComplete();
            using (FileStream fs = File.OpenRead(Path.Combine("..", "..", "..", "Lvm", "Data", "lvm2.zip")))
                using (Stream vhdx = ZipUtilities.ReadFileFromZip(fs))
                    using (var diskImage = new DiskImageFile(vhdx, Ownership.Dispose))
                        using (var disk = new Disk(new List <DiskImageFile> {
                            diskImage
                        }, Ownership.Dispose))
                        {
                            var manager        = new VolumeManager(disk);
                            var logicalVolumes = manager.GetLogicalVolumes();
                            Assert.Equal(3, logicalVolumes.Length);

                            Assert.Equal(1283457024, logicalVolumes[0].Length);
                            Assert.Equal(746586112, logicalVolumes[1].Length);
                            Assert.Equal(1178599424, logicalVolumes[2].Length);
                        }
        }