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); } }
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); } }
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)); } } }
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); } }
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); } }
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); } }