diff --git a/Aaru.Tests/Images/2MG.cs b/Aaru.Tests/Images/2MG.cs index 81833a00d..ddeebea59 100644 --- a/Aaru.Tests/Images/2MG.cs +++ b/Aaru.Tests/Images/2MG.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -87,46 +88,81 @@ namespace Aaru.Tests.Images "11ef56c80c94347d2e3f921d5c36c8de", "11ef56c80c94347d2e3f921d5c36c8de", "6f692a8fadfaa243d9f2d8d41f0e4cad" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "2mg"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "2mg", _testFiles[i]); - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.Apple2Mg(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.Apple2Mg(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.Apple2Mg(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/AaruFormat/V1.cs b/Aaru.Tests/Images/AaruFormat/V1.cs index 02a6831e8..cbe46d4e9 100644 --- a/Aaru.Tests/Images/AaruFormat/V1.cs +++ b/Aaru.Tests/Images/AaruFormat/V1.cs @@ -2539,74 +2539,77 @@ namespace Aaru.Tests.Images.AaruFormat } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "AaruFormat", "V1"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "AaruFormat", "V1"); + Environment.CurrentDirectory = _dataFolder; - for(int i = 0; i < _testFiles.Length; i++) + Assert.Multiple(() => { - var filter = new ZZZNoFilter(); - filter.Open(_testFiles[i]); - - var image = new DiscImages.AaruFormat(); - bool opened = image.Open(filter); - - Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - - using(new AssertionScope()) + for(int i = 0; i < _testFiles.Length; i++) { - Assert.Multiple(() => + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.AaruFormat(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + using(new AssertionScope()) { - Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}"); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - - if(image.Info.XmlMediaType != XmlMediaType.OpticalDisc) - return; - - Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); - - image.Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - image.Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - image.Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - image.Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - int trackNo = 0; - - byte[] flags = new byte[image.Tracks.Count]; - - foreach(Track currentTrack in image.Tracks) + Assert.Multiple(() => { - if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, - SectorTagType.CdTrackFlags)[0]; + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; - } + if(image.Info.XmlMediaType != XmlMediaType.OpticalDisc) + return; - flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); - }); + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); + } } - } + }); } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "AaruFormat", "V1"); + Environment.CurrentDirectory = Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -2639,15 +2642,15 @@ namespace Aaru.Tests.Images.AaruFormat { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, + : image.ReadSectors(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -2682,13 +2685,13 @@ namespace Aaru.Tests.Images.AaruFormat { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -2714,10 +2717,10 @@ namespace Aaru.Tests.Images.AaruFormat { byte[] sector; - if(image.Info.Sectors - doneSectors >= sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { @@ -2737,8 +2740,7 @@ namespace Aaru.Tests.Images.AaruFormat [Test] public void Tape() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "AaruFormat", "V1"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { diff --git a/Aaru.Tests/Images/Alcohol120.cs b/Aaru.Tests/Images/Alcohol120.cs index e1eda0f97..bb0d21133 100644 --- a/Aaru.Tests/Images/Alcohol120.cs +++ b/Aaru.Tests/Images/Alcohol120.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -1952,120 +1952,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Alcohol 120%"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Alcohol 120%"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.Alcohol120(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.Alcohol120(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.Alcohol120(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -2074,19 +2089,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -2097,6 +2111,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/Anex86.cs b/Aaru.Tests/Images/Anex86.cs index c5d11e02a..7916aed03 100644 --- a/Aaru.Tests/Images/Anex86.cs +++ b/Aaru.Tests/Images/Anex86.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -70,46 +71,81 @@ namespace Aaru.Tests.Images "243036c4617b666a6c886cc23d7274e0", "09bb2ff964a0c5c223a1900f085e3955" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Anex86"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Anex86", _testFiles[i]); - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.Anex86(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.Anex86(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.Anex86(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/AppleDOS/DOS.cs b/Aaru.Tests/Images/AppleDOS/DOS.cs index f8a4dfcb8..c2514143d 100644 --- a/Aaru.Tests/Images/AppleDOS/DOS.cs +++ b/Aaru.Tests/Images/AppleDOS/DOS.cs @@ -175,7 +175,7 @@ namespace Aaru.Tests.Images.AppleDOS } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -200,10 +200,10 @@ namespace Aaru.Tests.Images.AppleDOS { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/AppleDOS/DOS32.cs b/Aaru.Tests/Images/AppleDOS/DOS32.cs index 07f4569ae..9ef908c9f 100644 --- a/Aaru.Tests/Images/AppleDOS/DOS32.cs +++ b/Aaru.Tests/Images/AppleDOS/DOS32.cs @@ -103,7 +103,7 @@ namespace Aaru.Tests.Images.AppleDOS } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -128,10 +128,10 @@ namespace Aaru.Tests.Images.AppleDOS { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/AppleDOS/ProDOS.cs b/Aaru.Tests/Images/AppleDOS/ProDOS.cs index 70f076e8b..645ef9557 100644 --- a/Aaru.Tests/Images/AppleDOS/ProDOS.cs +++ b/Aaru.Tests/Images/AppleDOS/ProDOS.cs @@ -45,6 +45,7 @@ namespace Aaru.Tests.Images.AppleDOS "dos33.po.lz", "hfs1440.po.lz", "hfs.po.lz", "pascal800.po.lz", "pascal.po.lz", "prodos1440.po.lz", "prodos5mb.po.lz", "prodos800.po.lz", "prodosmod.po.lz", "prodos.po.lz" }; + readonly ulong[] _sectors = { // dos33.po.lz @@ -77,6 +78,7 @@ namespace Aaru.Tests.Images.AppleDOS // prodos.po.lz 560 }; + readonly uint[] _sectorSize = { // dos33.po.lz @@ -109,6 +111,7 @@ namespace Aaru.Tests.Images.AppleDOS // prodos.po.lz 256 }; + readonly MediaType[] _mediaTypes = { // dos33.po.lz @@ -141,6 +144,7 @@ namespace Aaru.Tests.Images.AppleDOS // prodos.po.lz MediaType.Apple33SS }; + readonly string[] _md5S = { // dos33.po.lz @@ -207,7 +211,7 @@ namespace Aaru.Tests.Images.AppleDOS } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -232,10 +236,10 @@ namespace Aaru.Tests.Images.AppleDOS { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/AppleNIB.cs b/Aaru.Tests/Images/AppleNIB.cs index aad8278bc..a578a6b74 100644 --- a/Aaru.Tests/Images/AppleNIB.cs +++ b/Aaru.Tests/Images/AppleNIB.cs @@ -140,7 +140,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -169,10 +169,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/Apridisk.cs b/Aaru.Tests/Images/Apridisk.cs index 2f2563cbf..4f2acd121 100644 --- a/Aaru.Tests/Images/Apridisk.cs +++ b/Aaru.Tests/Images/Apridisk.cs @@ -133,7 +133,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -158,10 +158,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/BlindWrite4.cs b/Aaru.Tests/Images/BlindWrite4.cs index 446fe6c07..c11602aef 100644 --- a/Aaru.Tests/Images/BlindWrite4.cs +++ b/Aaru.Tests/Images/BlindWrite4.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -1004,120 +1004,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 4"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 4"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.BlindWrite4(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.BlindWrite4(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.BlindWrite4(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -1126,19 +1141,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -1149,6 +1163,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/BlindWrite5.cs b/Aaru.Tests/Images/BlindWrite5.cs index 0d5c57ac3..895882c4b 100644 --- a/Aaru.Tests/Images/BlindWrite5.cs +++ b/Aaru.Tests/Images/BlindWrite5.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -1190,121 +1190,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 5"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 5"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.BlindWrite5(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.BlindWrite5(); - System.Console.WriteLine(_testFiles[i]); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.BlindWrite5(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -1313,19 +1327,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -1336,6 +1349,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/BlindWrite6.cs b/Aaru.Tests/Images/BlindWrite6.cs index 1d124ebd4..5a4f1599d 100644 --- a/Aaru.Tests/Images/BlindWrite6.cs +++ b/Aaru.Tests/Images/BlindWrite6.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -467,117 +467,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 6"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 6"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.BlindWrite5(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.BlindWrite5(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.BlindWrite5(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -586,19 +604,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -609,6 +626,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/BlindWrite7.cs b/Aaru.Tests/Images/BlindWrite7.cs index 1caed2439..f17695c1f 100644 --- a/Aaru.Tests/Images/BlindWrite7.cs +++ b/Aaru.Tests/Images/BlindWrite7.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -225,120 +225,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 7"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 7"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.BlindWrite5(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.BlindWrite5(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.BlindWrite5(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -347,19 +362,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -370,6 +384,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/CDRWin.cs b/Aaru.Tests/Images/CDRWin.cs index 02637a38b..bbb03e1fe 100644 --- a/Aaru.Tests/Images/CDRWin.cs +++ b/Aaru.Tests/Images/CDRWin.cs @@ -32,11 +32,11 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -864,120 +864,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CDRWin"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CDRWin"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new CdrWin(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new CdrWin(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new CdrWin(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -986,19 +1001,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -1009,6 +1023,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/CDRWin10.cs b/Aaru.Tests/Images/CDRWin10.cs index dc7c49042..6c9478139 100644 --- a/Aaru.Tests/Images/CDRWin10.cs +++ b/Aaru.Tests/Images/CDRWin10.cs @@ -370,10 +370,12 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CDRWin 10"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CDRWin 10"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -425,13 +427,13 @@ namespace Aaru.Tests.Images } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CDRWin 10"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -462,14 +464,15 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -504,12 +507,12 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/CPCDSK.cs b/Aaru.Tests/Images/CPCDSK.cs index df45f89be..e5c92f9cb 100644 --- a/Aaru.Tests/Images/CPCDSK.cs +++ b/Aaru.Tests/Images/CPCDSK.cs @@ -252,7 +252,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -277,10 +277,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/CisCopy/Uncompressed.cs b/Aaru.Tests/Images/CisCopy/Uncompressed.cs index 5dd7210ed..5d6caf463 100644 --- a/Aaru.Tests/Images/CisCopy/Uncompressed.cs +++ b/Aaru.Tests/Images/CisCopy/Uncompressed.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images.CisCopy @@ -80,46 +81,81 @@ namespace Aaru.Tests.Images.CisCopy "91f3fde8d56a536cdda4c6758e5dbc93", "91f3fde8d56a536cdda4c6758e5dbc93", "91f3fde8d56a536cdda4c6758e5dbc93" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CisCopy"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CisCopy", _testFiles[i]); - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.CisCopy(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.CisCopy(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.CisCopy(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/CloneCD.cs b/Aaru.Tests/Images/CloneCD.cs index a26f7f4cf..b0266617d 100644 --- a/Aaru.Tests/Images/CloneCD.cs +++ b/Aaru.Tests/Images/CloneCD.cs @@ -32,11 +32,11 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -1392,120 +1392,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CloneCD"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CloneCD"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new CloneCd(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new CloneCd(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new CloneCd(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -1514,19 +1529,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -1537,6 +1551,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/Commodore64/D64.cs b/Aaru.Tests/Images/Commodore64/D64.cs index 387f068e3..d1db495b0 100644 --- a/Aaru.Tests/Images/Commodore64/D64.cs +++ b/Aaru.Tests/Images/Commodore64/D64.cs @@ -98,7 +98,7 @@ namespace Aaru.Tests.Images.Commodore64 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -123,10 +123,10 @@ namespace Aaru.Tests.Images.Commodore64 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/Commodore64/D81.cs b/Aaru.Tests/Images/Commodore64/D81.cs index 540565606..688cb435c 100644 --- a/Aaru.Tests/Images/Commodore64/D81.cs +++ b/Aaru.Tests/Images/Commodore64/D81.cs @@ -98,7 +98,7 @@ namespace Aaru.Tests.Images.Commodore64 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -123,10 +123,10 @@ namespace Aaru.Tests.Images.Commodore64 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/CopyQM.cs b/Aaru.Tests/Images/CopyQM.cs index 21b4af044..7258f9278 100644 --- a/Aaru.Tests/Images/CopyQM.cs +++ b/Aaru.Tests/Images/CopyQM.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -2491,46 +2492,81 @@ namespace Aaru.Tests.Images "1a9f2eeb3cbeeb057b9a9a5c6e9b0cc6" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CopyQM"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CopyQM", _testFiles[i]); - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.CopyQm(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.CopyQm(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.CopyQm(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), $"Hash: {_testFiles[i]}"); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/CopyTape.cs b/Aaru.Tests/Images/CopyTape.cs index fc262aeb6..e276e5e95 100644 --- a/Aaru.Tests/Images/CopyTape.cs +++ b/Aaru.Tests/Images/CopyTape.cs @@ -906,7 +906,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -931,10 +931,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/D88.cs b/Aaru.Tests/Images/D88.cs index 41a26ae31..609256201 100644 --- a/Aaru.Tests/Images/D88.cs +++ b/Aaru.Tests/Images/D88.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -82,46 +83,88 @@ namespace Aaru.Tests.Images "c7df67f4e66dad658fe856d3c8b36c7a" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "D88"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "D88", _testFiles[i]); - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.D88(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.D88(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + if(!opened) + continue; + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.D88(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + if(!opened) + continue; + + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), $"Hash: {_testFiles[i]}"); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/DART.cs b/Aaru.Tests/Images/DART.cs index e3af5db00..d24fc0b46 100644 --- a/Aaru.Tests/Images/DART.cs +++ b/Aaru.Tests/Images/DART.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -67,46 +68,88 @@ namespace Aaru.Tests.Images "93e71b9ecdb39d3ec9245b4f451856d4", "93e71b9ecdb39d3ec9245b4f451856d4" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DART"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DART", _testFiles[i]); - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.Dart(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.Dart(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + if(!opened) + continue; + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.Dart(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + if(!opened) + continue; + + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), $"Hash: {_testFiles[i]}"); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/DiscJuggler.cs b/Aaru.Tests/Images/DiscJuggler.cs index 694fe43f0..4523b3d65 100644 --- a/Aaru.Tests/Images/DiscJuggler.cs +++ b/Aaru.Tests/Images/DiscJuggler.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -1968,120 +1968,135 @@ namespace Aaru.Tests.Images } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DiscJuggler"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DiscJuggler"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.DiscJuggler(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.DiscJuggler(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.DiscJuggler(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -2090,19 +2105,18 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -2113,6 +2127,7 @@ namespace Aaru.Tests.Images Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/DiskCopy42.cs b/Aaru.Tests/Images/DiskCopy42.cs index 04c75bcf1..4095087e5 100644 --- a/Aaru.Tests/Images/DiskCopy42.cs +++ b/Aaru.Tests/Images/DiskCopy42.cs @@ -26,11 +26,12 @@ // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ +using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; -using Aaru.CommonTypes.Interfaces; using Aaru.Filters; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images @@ -164,48 +165,81 @@ namespace Aaru.Tests.Images "fcf747bd356b48d442ff74adb8f3516b" }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DiskCopy 4.2"); + [Test] - public void Test() + public void Info() { - for(int i = 0; i < _testFiles.Length; i++) + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DiskCopy 4.2", - _testFiles[i]); - - IFilter filter = new LZip(); - filter.Open(location); - IMediaImage image = new DiscImages.DiskCopy42(); - Assert.AreEqual(true, image.Open(filter), _testFiles[i]); - Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]); - Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]); - Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]); - - // How many sectors to read at once - const uint sectorsToRead = 256; - ulong doneSectors = 0; - - var ctx = new Md5Context(); - - while(doneSectors < image.Info.Sectors) + for(int i = 0; i < _testFiles.Length; i++) { - byte[] sector; + var filter = new LZip(); + filter.Open(_testFiles[i]); - if(image.Info.Sectors - doneSectors >= sectorsToRead) - { - sector = image.ReadSectors(doneSectors, sectorsToRead); - doneSectors += sectorsToRead; - } - else - { - sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); - doneSectors += image.Info.Sectors - doneSectors; - } + var image = new DiscImages.DiskCopy42(); + bool opened = image.Open(filter); - ctx.Update(sector); + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + + using(new AssertionScope()) + { + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); + }); + } } + }); + } - Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]); - } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => + { + for(int i = 0; i < _testFiles.Length; i++) + { + var filter = new LZip(); + filter.Open(_testFiles[i]); + + var image = new DiscImages.DiskCopy42(); + bool opened = image.Open(filter); + ulong doneSectors = 0; + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + var ctx = new Md5Context(); + + while(doneSectors < image.Info.Sectors) + { + byte[] sector; + + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) + { + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; + } + else + { + sector = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors)); + doneSectors += image.Info.Sectors - doneSectors; + } + + ctx.Update(sector); + } + + Assert.AreEqual(_md5S[i], ctx.End(), $"Hash: {_testFiles[i]}"); + } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/DiskCopy633/DiskCopy42.cs b/Aaru.Tests/Images/DiskCopy633/DiskCopy42.cs index e91e60c66..874502711 100644 --- a/Aaru.Tests/Images/DiskCopy633/DiskCopy42.cs +++ b/Aaru.Tests/Images/DiskCopy633/DiskCopy42.cs @@ -163,7 +163,7 @@ namespace Aaru.Tests.Images.DiskCopy633 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -188,10 +188,10 @@ namespace Aaru.Tests.Images.DiskCopy633 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy633/NDIF/ROCo.cs b/Aaru.Tests/Images/DiskCopy633/NDIF/ROCo.cs index 02f8cb0d1..07672a3d4 100644 --- a/Aaru.Tests/Images/DiskCopy633/NDIF/ROCo.cs +++ b/Aaru.Tests/Images/DiskCopy633/NDIF/ROCo.cs @@ -316,7 +316,7 @@ namespace Aaru.Tests.Images.DiskCopy633.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -341,10 +341,10 @@ namespace Aaru.Tests.Images.DiskCopy633.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy633/NDIF/RdWr.cs b/Aaru.Tests/Images/DiskCopy633/NDIF/RdWr.cs index cc7eb541f..00359f87f 100644 --- a/Aaru.Tests/Images/DiskCopy633/NDIF/RdWr.cs +++ b/Aaru.Tests/Images/DiskCopy633/NDIF/RdWr.cs @@ -200,7 +200,7 @@ namespace Aaru.Tests.Images.DiskCopy633.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -225,10 +225,10 @@ namespace Aaru.Tests.Images.DiskCopy633.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy633/NDIF/Rdxx.cs b/Aaru.Tests/Images/DiskCopy633/NDIF/Rdxx.cs index ae53f9b1a..dd79abccf 100644 --- a/Aaru.Tests/Images/DiskCopy633/NDIF/Rdxx.cs +++ b/Aaru.Tests/Images/DiskCopy633/NDIF/Rdxx.cs @@ -205,7 +205,7 @@ namespace Aaru.Tests.Images.DiskCopy633.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -230,10 +230,10 @@ namespace Aaru.Tests.Images.DiskCopy633.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy65/UDCO.cs b/Aaru.Tests/Images/DiskCopy65/UDCO.cs index f2ef68901..85119b65e 100644 --- a/Aaru.Tests/Images/DiskCopy65/UDCO.cs +++ b/Aaru.Tests/Images/DiskCopy65/UDCO.cs @@ -201,7 +201,7 @@ namespace Aaru.Tests.Images.DiskCopy65 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -226,10 +226,10 @@ namespace Aaru.Tests.Images.DiskCopy65 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy65/UDCo_obsolete.cs b/Aaru.Tests/Images/DiskCopy65/UDCo_obsolete.cs index 09573c51a..0b6e2cf31 100644 --- a/Aaru.Tests/Images/DiskCopy65/UDCo_obsolete.cs +++ b/Aaru.Tests/Images/DiskCopy65/UDCo_obsolete.cs @@ -201,7 +201,7 @@ namespace Aaru.Tests.Images.DiskCopy65 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -226,10 +226,10 @@ namespace Aaru.Tests.Images.DiskCopy65 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy65/UDRO.cs b/Aaru.Tests/Images/DiskCopy65/UDRO.cs index ea117987f..b0cb71231 100644 --- a/Aaru.Tests/Images/DiskCopy65/UDRO.cs +++ b/Aaru.Tests/Images/DiskCopy65/UDRO.cs @@ -201,7 +201,7 @@ namespace Aaru.Tests.Images.DiskCopy65 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -226,10 +226,10 @@ namespace Aaru.Tests.Images.DiskCopy65 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskCopy65/UDRo_obsolete.cs b/Aaru.Tests/Images/DiskCopy65/UDRo_obsolete.cs index 5e5249391..ca672c5ed 100644 --- a/Aaru.Tests/Images/DiskCopy65/UDRo_obsolete.cs +++ b/Aaru.Tests/Images/DiskCopy65/UDRo_obsolete.cs @@ -201,7 +201,7 @@ namespace Aaru.Tests.Images.DiskCopy65 } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -226,10 +226,10 @@ namespace Aaru.Tests.Images.DiskCopy65 { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/DiskCopy42.cs b/Aaru.Tests/Images/DiskImagesFramework/DiskCopy42.cs index abaf94dde..86f39d335 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/DiskCopy42.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/DiskCopy42.cs @@ -199,7 +199,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -224,10 +224,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/NDIF/ROCo.cs b/Aaru.Tests/Images/DiskImagesFramework/NDIF/ROCo.cs index 9feba1d55..d7ec26887 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/NDIF/ROCo.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/NDIF/ROCo.cs @@ -285,7 +285,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -310,10 +310,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/NDIF/RdWr.cs b/Aaru.Tests/Images/DiskImagesFramework/NDIF/RdWr.cs index 9ed8baae9..fc538bbc7 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/NDIF/RdWr.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/NDIF/RdWr.cs @@ -285,7 +285,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -310,10 +310,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/NDIF/Rdxx.cs b/Aaru.Tests/Images/DiskImagesFramework/NDIF/Rdxx.cs index cd8a05e14..a93f0cbae 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/NDIF/Rdxx.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/NDIF/Rdxx.cs @@ -285,7 +285,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -310,10 +310,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/IPOD.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/IPOD.cs index 660501da3..ac28f752b 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/IPOD.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/IPOD.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDBZ.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDBZ.cs index e7aac5f25..07a7b8838 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDBZ.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDBZ.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDCO.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDCO.cs index 6f9e84df2..88bdd5678 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDCO.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDCO.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRO.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRO.cs index d0db6e9fe..0cc955940 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRO.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRO.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRW.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRW.cs index e5b8f0562..b0c34b59a 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRW.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDRW.cs @@ -297,7 +297,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -322,10 +322,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDTO.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDTO.cs index c290c69bb..da254ef18 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDTO.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDTO.cs @@ -297,7 +297,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -322,10 +322,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDZO.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDZO.cs index fd37da3ac..a479159c4 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDZO.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UDZO.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UFBI.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UFBI.cs index 4b9e01d17..a3fcadbf0 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/UFBI.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/UFBI.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskImagesFramework/UDIF/ULMO.cs b/Aaru.Tests/Images/DiskImagesFramework/UDIF/ULMO.cs index 7a08d582c..30e567f24 100644 --- a/Aaru.Tests/Images/DiskImagesFramework/UDIF/ULMO.cs +++ b/Aaru.Tests/Images/DiskImagesFramework/UDIF/ULMO.cs @@ -298,7 +298,7 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -323,10 +323,10 @@ namespace Aaru.Tests.Images.DiskImagesFramework.UDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskUtilities/ImageDisk.cs b/Aaru.Tests/Images/DiskUtilities/ImageDisk.cs index 0b7909866..42f6759e3 100644 --- a/Aaru.Tests/Images/DiskUtilities/ImageDisk.cs +++ b/Aaru.Tests/Images/DiskUtilities/ImageDisk.cs @@ -142,7 +142,7 @@ namespace Aaru.Tests.Images.DiskUtilities } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -171,10 +171,10 @@ namespace Aaru.Tests.Images.DiskUtilities { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DiskUtilities/Raw.cs b/Aaru.Tests/Images/DiskUtilities/Raw.cs index 43c24c71f..cea0e5790 100644 --- a/Aaru.Tests/Images/DiskUtilities/Raw.cs +++ b/Aaru.Tests/Images/DiskUtilities/Raw.cs @@ -175,7 +175,7 @@ namespace Aaru.Tests.Images.DiskUtilities } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -204,10 +204,10 @@ namespace Aaru.Tests.Images.DiskUtilities { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/DriDiskCopy.cs b/Aaru.Tests/Images/DriDiskCopy.cs index c1ef567b6..a58c2d0cb 100644 --- a/Aaru.Tests/Images/DriDiskCopy.cs +++ b/Aaru.Tests/Images/DriDiskCopy.cs @@ -2385,7 +2385,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -2410,10 +2410,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/GameJack6.cs b/Aaru.Tests/Images/GameJack6.cs index 4cc88650b..e31fd3db4 100644 --- a/Aaru.Tests/Images/GameJack6.cs +++ b/Aaru.Tests/Images/GameJack6.cs @@ -731,10 +731,12 @@ namespace Aaru.Tests.Images null }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "HD-COPY"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "GameJack 6"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -786,13 +788,13 @@ namespace Aaru.Tests.Images } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "GameJack 6"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -823,14 +825,15 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -865,12 +868,12 @@ namespace Aaru.Tests.Images { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/HDCopy.cs b/Aaru.Tests/Images/HDCopy.cs index fac768ebc..f43aea639 100644 --- a/Aaru.Tests/Images/HDCopy.cs +++ b/Aaru.Tests/Images/HDCopy.cs @@ -1178,7 +1178,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -1207,10 +1207,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/HxC/ImageDisk.cs b/Aaru.Tests/Images/HxC/ImageDisk.cs index 6f79dd5b9..cd04fbff0 100644 --- a/Aaru.Tests/Images/HxC/ImageDisk.cs +++ b/Aaru.Tests/Images/HxC/ImageDisk.cs @@ -410,7 +410,7 @@ namespace Aaru.Tests.Images.HxC } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -439,10 +439,10 @@ namespace Aaru.Tests.Images.HxC { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/HxC/Raw.cs b/Aaru.Tests/Images/HxC/Raw.cs index cdf7bc8dc..5d13f5bb9 100644 --- a/Aaru.Tests/Images/HxC/Raw.cs +++ b/Aaru.Tests/Images/HxC/Raw.cs @@ -422,7 +422,7 @@ namespace Aaru.Tests.Images.HxC } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -451,10 +451,10 @@ namespace Aaru.Tests.Images.HxC { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/HyperV.cs b/Aaru.Tests/Images/HyperV.cs index 8207b95bf..fd16f7ee9 100644 --- a/Aaru.Tests/Images/HyperV.cs +++ b/Aaru.Tests/Images/HyperV.cs @@ -190,7 +190,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -219,10 +219,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ImageDisk.cs b/Aaru.Tests/Images/ImageDisk.cs index a78fb69c0..71429aca6 100644 --- a/Aaru.Tests/Images/ImageDisk.cs +++ b/Aaru.Tests/Images/ImageDisk.cs @@ -3192,7 +3192,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -3221,10 +3221,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/IsoBuster/Cuesheet.cs b/Aaru.Tests/Images/IsoBuster/Cuesheet.cs index fa591b029..3d5241ecc 100644 --- a/Aaru.Tests/Images/IsoBuster/Cuesheet.cs +++ b/Aaru.Tests/Images/IsoBuster/Cuesheet.cs @@ -32,11 +32,11 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images.IsoBuster @@ -864,121 +864,136 @@ namespace Aaru.Tests.Images.IsoBuster } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "IsoBuster", "Cuesheet"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "IsoBuster", "Cuesheet"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new CdrWin(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new CdrWin(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new CdrWin(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -987,19 +1002,18 @@ namespace Aaru.Tests.Images.IsoBuster { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -1010,6 +1024,7 @@ namespace Aaru.Tests.Images.IsoBuster Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/KryoFlux/Raw.cs b/Aaru.Tests/Images/KryoFlux/Raw.cs index d21c9fc7c..8427d9b48 100644 --- a/Aaru.Tests/Images/KryoFlux/Raw.cs +++ b/Aaru.Tests/Images/KryoFlux/Raw.cs @@ -166,7 +166,7 @@ namespace Aaru.Tests.Images.KryoFlux } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -195,10 +195,10 @@ namespace Aaru.Tests.Images.KryoFlux { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/Lisa/Raw.cs b/Aaru.Tests/Images/Lisa/Raw.cs index 47667f457..070d262c6 100644 --- a/Aaru.Tests/Images/Lisa/Raw.cs +++ b/Aaru.Tests/Images/Lisa/Raw.cs @@ -167,7 +167,7 @@ namespace Aaru.Tests.Images.Lisa } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -196,10 +196,10 @@ namespace Aaru.Tests.Images.Lisa { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/MAME/v1.cs b/Aaru.Tests/Images/MAME/v1.cs index c6b745252..7e73db691 100644 --- a/Aaru.Tests/Images/MAME/v1.cs +++ b/Aaru.Tests/Images/MAME/v1.cs @@ -101,7 +101,7 @@ namespace Aaru.Tests.Images.MAME } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -130,10 +130,10 @@ namespace Aaru.Tests.Images.MAME { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/MagicISO/Cuesheet.cs b/Aaru.Tests/Images/MagicISO/Cuesheet.cs index 312d31f7a..1c8f5192f 100644 --- a/Aaru.Tests/Images/MagicISO/Cuesheet.cs +++ b/Aaru.Tests/Images/MagicISO/Cuesheet.cs @@ -32,11 +32,11 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images.MagicISO @@ -623,121 +623,136 @@ namespace Aaru.Tests.Images.MagicISO } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "MagicISO", "Cuesheet"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "MagicISO", "Cuesheet"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new CdrWin(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new CdrWin(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new CdrWin(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -746,19 +761,18 @@ namespace Aaru.Tests.Images.MagicISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -769,6 +783,7 @@ namespace Aaru.Tests.Images.MagicISO Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/MagicISO/Nero.cs b/Aaru.Tests/Images/MagicISO/Nero.cs index e55a395e3..d46929c34 100644 --- a/Aaru.Tests/Images/MagicISO/Nero.cs +++ b/Aaru.Tests/Images/MagicISO/Nero.cs @@ -708,11 +708,12 @@ namespace Aaru.Tests.Images.MagicISO null }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "MagicISO", "Nero"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "MagicISO", "Nero"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -764,14 +765,13 @@ namespace Aaru.Tests.Images.MagicISO } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "MagicISO", "Nero"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -802,14 +802,15 @@ namespace Aaru.Tests.Images.MagicISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -844,12 +845,12 @@ namespace Aaru.Tests.Images.MagicISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/MaxiDisk.cs b/Aaru.Tests/Images/MaxiDisk.cs index b1c8db4c6..50546f1fb 100644 --- a/Aaru.Tests/Images/MaxiDisk.cs +++ b/Aaru.Tests/Images/MaxiDisk.cs @@ -262,7 +262,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -291,10 +291,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/NHDr0.cs b/Aaru.Tests/Images/NHDr0.cs index 11901761b..6625db156 100644 --- a/Aaru.Tests/Images/NHDr0.cs +++ b/Aaru.Tests/Images/NHDr0.cs @@ -178,7 +178,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -207,10 +207,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/Nero/V1.cs b/Aaru.Tests/Images/Nero/V1.cs index 26ae3b1c5..3543721f7 100644 --- a/Aaru.Tests/Images/Nero/V1.cs +++ b/Aaru.Tests/Images/Nero/V1.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images.Nero @@ -45,31 +45,17 @@ namespace Aaru.Tests.Images.Nero { readonly string[] _testFiles = { - "cdiready_the_apprentice.nrg", "jaguarcd.nrg", "pcengine.nrg", "pcfx.nrg", "report_audiocd.nrg", + "cdiready_the_apprentice.nrg", "jaguarcd.nrg", "pcengine.nrg", "pcfx.nrg", "report_audiocd.nrg", "report_cdrom.nrg", "report_cdrw.nrg", "report_enhancedcd.nrg", "test_audiocd_cdtext.nrg", "test_data_track_as_audio.nrg", "test_incd_udf200_finalized.nrg", "test_multi_karaoke_sampler.nrg", "test_multiple_indexes.nrg", "test_multisession.nrg", "test_track2_inside_session2_leadin.nrg", - "test_track2_inside_track1.nrg", "test_videocd.nrg", - - "make_audiocd_dao.nrg", - "make_audiocd_tao.nrg", - "make_data_mode1_joliet_dao.nrg", - "make_data_mode1_joliet_level2_dao.nrg", - "make_data_mode1_joliet_level2_tao.nrg", - "make_data_mode1_joliet_tao.nrg", - "make_data_mode1_udf_dao.nrg", - "make_data_mode1_udf_tao.nrg", - "make_data_mode2_joliet_dao.nrg", - "make_data_mode2_joliet_level2_dao.nrg", - "make_data_mode2_joliet_level2_tao.nrg", - "make_data_mode2_joliet_tao.nrg", - "make_data_mode2_udf_dao.nrg", - "make_data_mode2_udf_tao.nrg", - "make_mixed_mode_dao.nrg", - "make_mixed_mode_tao.nrg", - "make_udf_dao.nrg", - "make_udf_tao.nrg", - + "test_track2_inside_track1.nrg", "test_videocd.nrg", "make_audiocd_dao.nrg", "make_audiocd_tao.nrg", + "make_data_mode1_joliet_dao.nrg", "make_data_mode1_joliet_level2_dao.nrg", + "make_data_mode1_joliet_level2_tao.nrg", "make_data_mode1_joliet_tao.nrg", "make_data_mode1_udf_dao.nrg", + "make_data_mode1_udf_tao.nrg", "make_data_mode2_joliet_dao.nrg", "make_data_mode2_joliet_level2_dao.nrg", + "make_data_mode2_joliet_level2_tao.nrg", "make_data_mode2_joliet_tao.nrg", "make_data_mode2_udf_dao.nrg", + "make_data_mode2_udf_tao.nrg", "make_mixed_mode_dao.nrg", "make_mixed_mode_tao.nrg", "make_udf_dao.nrg", + "make_udf_tao.nrg" }; readonly ulong[] _sectors = @@ -124,42 +110,60 @@ namespace Aaru.Tests.Images.Nero // test_videocd.nrg 48794, + // make_audiocd_dao.nrg 279196, + // make_audiocd_tao.nrg 277696, + // make_data_mode1_joliet_dao.nrg 83078, + // make_data_mode1_joliet_level2_dao.nrg 83084, + // make_data_mode1_joliet_level2_tao.nrg 83084, + // make_data_mode1_joliet_tao.nrg 83078, + // make_data_mode1_udf_dao.nrg 85733, + // make_data_mode1_udf_tao.nrg 85733, + // make_data_mode2_joliet_dao.nrg 83092, + // make_data_mode2_joliet_level2_dao.nrg 83092, + // make_data_mode2_joliet_level2_tao.nrg 83092, + // make_data_mode2_joliet_tao.nrg 83092, + // make_data_mode2_udf_dao.nrg 85747, + // make_data_mode2_udf_tao.nrg 85747, + // make_mixed_mode_dao.nrg 325928, + // make_mixed_mode_tao.nrg 324278, + // make_udf_dao.nrg 84985, + // make_udf_tao.nrg - 84985, + 84985 }; readonly MediaType[] _mediaTypes = @@ -214,42 +218,60 @@ namespace Aaru.Tests.Images.Nero // test_videocd.nrg MediaType.CDROMXA, + // make_audiocd_dao.nrg MediaType.CDDA, + // make_audiocd_tao.nrg MediaType.CDDA, + // make_data_mode1_joliet_dao.nrg MediaType.CDROM, + // make_data_mode1_joliet_level2_dao.nrg MediaType.CDROM, + // make_data_mode1_joliet_level2_tao.nrg MediaType.CDROM, + // make_data_mode1_joliet_tao.nrg MediaType.CDROM, + // make_data_mode1_udf_dao.nrg MediaType.CDROM, + // make_data_mode1_udf_tao.nrg MediaType.CDROM, + // make_data_mode2_joliet_dao.nrg MediaType.CDROMXA, + // make_data_mode2_joliet_level2_dao.nrg MediaType.CDROMXA, + // make_data_mode2_joliet_level2_tao.nrg MediaType.CDROMXA, + // make_data_mode2_joliet_tao.nrg MediaType.CDROMXA, + // make_data_mode2_udf_dao.nrg MediaType.CDROMXA, + // make_data_mode2_udf_tao.nrg MediaType.CDROMXA, + // make_mixed_mode_dao.nrg MediaType.CDROMXA, + // make_mixed_mode_tao.nrg MediaType.CDROMXA, + // make_udf_dao.nrg MediaType.CDROM, + // make_udf_tao.nrg - MediaType.CDROM, + MediaType.CDROM }; readonly string[] _md5S = @@ -271,7 +293,7 @@ namespace Aaru.Tests.Images.Nero // report_cdrom.nrg "bf4bbec517101d0d6f45d2e4d50cb875", - + // report_cdrw.nrg "3af5f943ddb9427d9c63a4ce3b704db9", @@ -304,42 +326,60 @@ namespace Aaru.Tests.Images.Nero // test_videocd.nrg "ec7c86e6cfe5f965faa2488ae940e15a", + // make_audiocd_dao.nrg "UNKNOWN", + // make_audiocd_tao.nrg "UNKNOWN", + // make_data_mode1_joliet_dao.nrg "UNKNOWN", + // make_data_mode1_joliet_level2_dao.nrg "UNKNOWN", + // make_data_mode1_joliet_level2_tao.nrg "UNKNOWN", + // make_data_mode1_joliet_tao.nrg "UNKNOWN", + // make_data_mode1_udf_dao.nrg "UNKNOWN", + // make_data_mode1_udf_tao.nrg "UNKNOWN", + // make_data_mode2_joliet_dao.nrg "UNKNOWN", + // make_data_mode2_joliet_level2_dao.nrg "UNKNOWN", + // make_data_mode2_joliet_level2_tao.nrg "UNKNOWN", + // make_data_mode2_joliet_tao.nrg "UNKNOWN", + // make_data_mode2_udf_dao.nrg "UNKNOWN", + // make_data_mode2_udf_tao.nrg "UNKNOWN", + // make_mixed_mode_dao.nrg "UNKNOWN", + // make_mixed_mode_tao.nrg "UNKNOWN", + // make_udf_dao.nrg "UNKNOWN", + // make_udf_tao.nrg - "UNKNOWN", + "UNKNOWN" }; readonly string[] _longMd5S = @@ -394,42 +434,60 @@ namespace Aaru.Tests.Images.Nero // test_videocd.nrg "4a045788e69965efe0c87950d013e720", + // make_audiocd_dao.nrg "UNKNOWN", + // make_audiocd_tao.nrg "UNKNOWN", + // make_data_mode1_joliet_dao.nrg "UNKNOWN", + // make_data_mode1_joliet_level2_dao.nrg "UNKNOWN", + // make_data_mode1_joliet_level2_tao.nrg "UNKNOWN", + // make_data_mode1_joliet_tao.nrg "UNKNOWN", + // make_data_mode1_udf_dao.nrg "UNKNOWN", + // make_data_mode1_udf_tao.nrg "UNKNOWN", + // make_data_mode2_joliet_dao.nrg "UNKNOWN", + // make_data_mode2_joliet_level2_dao.nrg "UNKNOWN", + // make_data_mode2_joliet_level2_tao.nrg "UNKNOWN", + // make_data_mode2_joliet_tao.nrg "UNKNOWN", + // make_data_mode2_udf_dao.nrg "UNKNOWN", + // make_data_mode2_udf_tao.nrg "UNKNOWN", + // make_mixed_mode_dao.nrg "UNKNOWN", + // make_mixed_mode_tao.nrg "UNKNOWN", + // make_udf_dao.nrg "UNKNOWN", + // make_udf_tao.nrg - "UNKNOWN", + "UNKNOWN" }; readonly string[] _subchannelMd5S = @@ -484,42 +542,60 @@ namespace Aaru.Tests.Images.Nero // test_videocd.nrg "935a91f5850352818d92b71f1c87c393", + // make_audiocd_dao.nrg "UNKNOWN", + // make_audiocd_tao.nrg "UNKNOWN", + // make_data_mode1_joliet_dao.nrg "UNKNOWN", + // make_data_mode1_joliet_level2_dao.nrg "UNKNOWN", + // make_data_mode1_joliet_level2_tao.nrg "UNKNOWN", + // make_data_mode1_joliet_tao.nrg "UNKNOWN", + // make_data_mode1_udf_dao.nrg "UNKNOWN", + // make_data_mode1_udf_tao.nrg "UNKNOWN", + // make_data_mode2_joliet_dao.nrg "UNKNOWN", + // make_data_mode2_joliet_level2_dao.nrg "UNKNOWN", + // make_data_mode2_joliet_level2_tao.nrg "UNKNOWN", + // make_data_mode2_joliet_tao.nrg "UNKNOWN", + // make_data_mode2_udf_dao.nrg "UNKNOWN", + // make_data_mode2_udf_tao.nrg "UNKNOWN", + // make_mixed_mode_dao.nrg "UNKNOWN", + // make_mixed_mode_tao.nrg "UNKNOWN", + // make_udf_dao.nrg "UNKNOWN", + // make_udf_tao.nrg - "UNKNOWN", + "UNKNOWN" }; readonly int[] _tracks = @@ -574,42 +650,60 @@ namespace Aaru.Tests.Images.Nero // test_videocd.nrg 2, + // make_audiocd_dao.nrg 11, + // make_audiocd_tao.nrg 11, + // make_data_mode1_joliet_dao.nrg 1, + // make_data_mode1_joliet_level2_dao.nrg 1, + // make_data_mode1_joliet_level2_tao.nrg 1, + // make_data_mode1_joliet_tao.nrg 1, + // make_data_mode1_udf_dao.nrg 1, + // make_data_mode1_udf_tao.nrg 1, + // make_data_mode2_joliet_dao.nrg 1, + // make_data_mode2_joliet_level2_dao.nrg 1, + // make_data_mode2_joliet_level2_tao.nrg 1, + // make_data_mode2_joliet_tao.nrg 1, + // make_data_mode2_udf_dao.nrg 1, + // make_data_mode2_udf_tao.nrg 1, + // make_mixed_mode_dao.nrg 12, + // make_mixed_mode_tao.nrg 12, + // make_udf_dao.nrg 1, + // make_udf_tao.nrg - 1, + 1 }; readonly int[][] _trackSessions = @@ -716,96 +810,114 @@ namespace Aaru.Tests.Images.Nero { 1, 1 }, + // make_audiocd_dao.nrg new[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + // make_audiocd_tao.nrg new[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + // make_data_mode1_joliet_dao.nrg new[] { 1 }, + // make_data_mode1_joliet_level2_dao.nrg new[] { 1 }, + // make_data_mode1_joliet_level2_tao.nrg new[] { 1 }, + // make_data_mode1_joliet_tao.nrg new[] { 1 }, + // make_data_mode1_udf_dao.nrg new[] { 1 }, + // make_data_mode1_udf_tao.nrg new[] { 1 }, + // make_data_mode2_joliet_dao.nrg new[] { 1 }, + // make_data_mode2_joliet_level2_dao.nrg new[] { 1 }, + // make_data_mode2_joliet_level2_tao.nrg new[] { 1 }, + // make_data_mode2_joliet_tao.nrg new[] { 1 }, + // make_data_mode2_udf_dao.nrg new[] { 1 }, + // make_data_mode2_udf_tao.nrg new[] { 1 }, + // make_mixed_mode_dao.nrg new[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + // make_mixed_mode_tao.nrg new[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + // make_udf_dao.nrg new[] { 1 }, + // make_udf_tao.nrg new[] { 1 - }, + } }; readonly ulong[][] _trackStarts = @@ -820,14 +932,14 @@ namespace Aaru.Tests.Images.Nero // jaguarcd.nrg new ulong[] { - 0, 27640, 28237, 78892, 100054, 133203, 160908, 181466, 202024, 222582, 243140 + 0, 27640, 28237, 78892, 100054, 133203, 160908, 181466, 202024, 222582, 243140 }, // pcengine.nrg new ulong[] { - 0, 3590, 38614, 47217, 53501, 61819, 68563, 75397, 83130, 86481, 91267, 99274, 106693, 112238, 120270, - 126229 + 0, 3590, 38614, 47217, 53501, 61819, 68563, 75397, 83130, 86481, 91267, 99274, 106693, 112238, 120270, + 126229 }, // pcfx.nrg @@ -839,7 +951,7 @@ namespace Aaru.Tests.Images.Nero // report_audiocd.nrg new ulong[] { - 0, 16549, 30051, 47950, 63314, 78925, 94732, 117125, 136166, 154072, 170751, 186539, 201799, 224449 + 0, 16549, 30051, 47950, 63314, 78925, 94732, 117125, 136166, 154072, 170751, 186539, 201799, 224449 }, // report_cdrom.nrg @@ -857,13 +969,13 @@ namespace Aaru.Tests.Images.Nero // report_enhancedcd.nrg new ulong[] { - 0, 15661, 33959, 51330, 71973, 87582, 103305, 117691, 136167, 153418, 166932, 187113, 201441, 234180 + 0, 15661, 33959, 51330, 71973, 87582, 103305, 117691, 136167, 153418, 166932, 187113, 201441, 234180 }, // test_audiocd_cdtext.nrg new ulong[] { - 0, 29902, 65184, 78576, 95230, 126297, 155109, 191835, 222926, 243588, 269750 + 0, 29902, 65184, 78576, 95230, 126297, 155109, 191835, 222926, 243588, 269750 }, // test_data_track_as_audio.nrg @@ -881,7 +993,8 @@ namespace Aaru.Tests.Images.Nero // test_multi_karaoke_sampler.nrg new ulong[] { - 0, 1887, 32749, 52672, 70304, 100098, 119761, 136999, 155790, 175826, 206461, 226450, 244355, 273965, 293752, 310711 + 0, 1887, 32749, 52672, 70304, 100098, 119761, 136999, 155790, 175826, 206461, 226450, 244355, 273965, + 293752, 310711 }, // test_multiple_indexes.nrg @@ -913,96 +1026,114 @@ namespace Aaru.Tests.Images.Nero { 0, 1252 }, + // make_audiocd_dao.nrg new ulong[] { 0, 27454, 62934, 4428, 22432, 54833, 9459, 45087, 4360, 244938, 271250 }, + // make_audiocd_tao.nrg new ulong[] { 0, 27454, 62934, 4428, 22432, 54833, 9459, 45087, 4360, 244938, 271250 }, + // make_data_mode1_joliet_dao.nrg new ulong[] { 0 }, + // make_data_mode1_joliet_level2_dao.nrg new ulong[] { 0 }, + // make_data_mode1_joliet_level2_tao.nrg new ulong[] { 0 }, + // make_data_mode1_joliet_tao.nrg new ulong[] { 0 }, + // make_data_mode1_udf_dao.nrg new ulong[] { 0 }, + // make_data_mode1_udf_tao.nrg new ulong[] { 0 }, + // make_data_mode2_joliet_dao.nrg new ulong[] { 0 }, + // make_data_mode2_joliet_level2_dao.nrg new ulong[] { 0 }, + // make_data_mode2_joliet_level2_tao.nrg new ulong[] { 0 }, + // make_data_mode2_joliet_tao.nrg new ulong[] { 0 }, + // make_data_mode2_udf_dao.nrg new ulong[] { 0 }, + // make_data_mode2_udf_tao.nrg new ulong[] { 0 }, + // make_mixed_mode_dao.nrg new ulong[] { 0, 45382, 4586, 36450, 49960, 67964, 27229, 58575, 23403, 264817, 285629, 311941 }, + // make_mixed_mode_tao.nrg new ulong[] { 0, 45382, 4586, 36450, 49960, 67964, 27229, 58575, 23403, 264817, 285629, 311941 }, + // make_udf_dao.nrg new ulong[] { 0 }, + // make_udf_tao.nrg new ulong[] { 0 - }, + } }; readonly ulong[][] _trackEnds = @@ -1023,7 +1154,8 @@ namespace Aaru.Tests.Images.Nero // pcengine.nrg new ulong[] { - 3439, 38463, 47216, 53500, 61818, 68562, 75396, 83129, 86480, 91266, 99273, 106692, 112237, 120269, 126078, 160955 + 3439, 38463, 47216, 53500, 61818, 68562, 75396, 83129, 86480, 91266, 99273, 106692, 112237, 120269, + 126078, 160955 }, // pcfx.nrg @@ -1053,7 +1185,8 @@ namespace Aaru.Tests.Images.Nero // report_enhancedcd.nrg new ulong[] { - 15660, 33958, 51329, 71972, 87581, 103304, 117690, 136166, 153417, 166931, 187112, 201440, 222779, 303315 + 15660, 33958, 51329, 71972, 87581, 103304, 117690, 136166, 153417, 166931, 187112, 201440, 222779, + 303315 }, // test_audiocd_cdtext.nrg @@ -1077,7 +1210,8 @@ namespace Aaru.Tests.Images.Nero // test_multi_karaoke_sampler.nrg new ulong[] { - 1736, 32748, 52671, 70303, 100097, 119760, 136998, 155789, 175825, 206460, 226449, 244354, 273964, 293751, 310710, 329157 + 1736, 32748, 52671, 70303, 100097, 119760, 136998, 155789, 175825, 206460, 226449, 244354, 273964, + 293751, 310710, 329157 }, // test_multiple_indexes.nrg @@ -1109,96 +1243,114 @@ namespace Aaru.Tests.Images.Nero { 1101, 48793 }, + // make_audiocd_dao.nrg new ulong[] { 29901, 63035, 76625, 21381, 53798, 83944, 46484, 76477, 25321, 271399, 279495 }, + // make_audiocd_tao.nrg new ulong[] { 29901, 63035, 76625, 21381, 53798, 83944, 46484, 76477, 25321, 271399, 279495 }, + // make_data_mode1_joliet_dao.nrg new ulong[] { 83077 }, + // make_data_mode1_joliet_level2_dao.nrg new ulong[] { 83083 }, + // make_data_mode1_joliet_level2_tao.nrg new ulong[] { 83083 }, + // make_data_mode1_joliet_tao.nrg new ulong[] { 83077 }, + // make_data_mode1_udf_dao.nrg new ulong[] { 85732 }, + // make_data_mode1_udf_tao.nrg new ulong[] { 85732 }, + // make_data_mode2_joliet_dao.nrg new ulong[] { 83091 }, + // make_data_mode2_joliet_level2_dao.nrg new ulong[] { 83091 }, + // make_data_mode2_joliet_level2_tao.nrg new ulong[] { 83091 }, + // make_data_mode2_joliet_tao.nrg new ulong[] { 83091 }, + // make_data_mode2_udf_dao.nrg new ulong[] { 85746 }, + // make_data_mode2_udf_tao.nrg new ulong[] { 85746 }, + // make_mixed_mode_dao.nrg new ulong[] { 46581, 75583, 40167, 50141, 66913, 99330, 56340, 95600, 53593, 285778, 312090, 320186 }, + // make_mixed_mode_tao.nrg new ulong[] { - 46581, 75583, 40167, 50141, 66913, 99330, 56340, 95600, 53593, 285778, 312090, 320186 + 46581, 75583, 40167, 50141, 66913, 99330, 56340, 95600, 53593, 285778, 312090, 320186 }, + // make_udf_dao.nrg new ulong[] { 84984 }, + // make_udf_tao.nrg new ulong[] { 84984 - }, + } }; readonly ulong[][] _trackPregaps = @@ -1304,97 +1456,114 @@ namespace Aaru.Tests.Images.Nero { 150, 150 }, + // make_audiocd_dao.nrg new ulong[] { 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150 }, + // make_audiocd_tao.nrg new ulong[] { 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + // make_data_mode1_joliet_dao.nrg new ulong[] { 150 }, + // make_data_mode1_joliet_level2_dao.nrg new ulong[] { 150 }, + // make_data_mode1_joliet_level2_tao.nrg new ulong[] { 150 }, + // make_data_mode1_joliet_tao.nrg new ulong[] { 150 }, + // make_data_mode1_udf_dao.nrg new ulong[] { 150 }, + // make_data_mode1_udf_tao.nrg new ulong[] { 150 }, + // make_data_mode2_joliet_dao.nrg new ulong[] { 150 }, + // make_data_mode2_joliet_level2_dao.nrg new ulong[] { 150 }, + // make_data_mode2_joliet_level2_tao.nrg new ulong[] { 150 }, + // make_data_mode2_joliet_tao.nrg new ulong[] { 150 }, + // make_data_mode2_udf_dao.nrg new ulong[] { 150 }, + // make_data_mode2_udf_tao.nrg new ulong[] { 150 }, + // make_mixed_mode_dao.nrg new ulong[] { 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150 - }, + // make_mixed_mode_tao.nrg new ulong[] { - 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + // make_udf_dao.nrg new ulong[] { 150 }, + // make_udf_tao.nrg new ulong[] { 150 - }, + } }; readonly byte[][] _trackFlags = @@ -1500,213 +1669,246 @@ namespace Aaru.Tests.Images.Nero { 4, 4 }, + // make_audiocd_dao.nrg new byte[] { 4 }, + // make_audiocd_tao.nrg new byte[] { 4 }, + // make_data_mode1_joliet_dao.nrg new byte[] { 4 }, + // make_data_mode1_joliet_level2_dao.nrg new byte[] { 4 }, + // make_data_mode1_joliet_level2_tao.nrg new byte[] { 4 }, + // make_data_mode1_joliet_tao.nrg new byte[] { 4 }, + // make_data_mode1_udf_dao.nrg new byte[] { 4 }, + // make_data_mode1_udf_tao.nrg new byte[] { 4 }, + // make_data_mode2_joliet_dao.nrg new byte[] { 4 }, + // make_data_mode2_joliet_level2_dao.nrg new byte[] { 4 }, + // make_data_mode2_joliet_level2_tao.nrg new byte[] { 4 }, + // make_data_mode2_joliet_tao.nrg new byte[] { 4 }, + // make_data_mode2_udf_dao.nrg new byte[] { 4 }, + // make_data_mode2_udf_tao.nrg new byte[] { 4 }, + // make_mixed_mode_dao.nrg new byte[] { 4 }, + // make_mixed_mode_tao.nrg new byte[] { 4 }, + // make_udf_dao.nrg new byte[] { 4 }, + // make_udf_tao.nrg new byte[] { 4 - }, + } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Nero Burning ROM", "V1"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Nero Burning ROM", "V1"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.Nero(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.Nero(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.Nero(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -1715,19 +1917,18 @@ namespace Aaru.Tests.Images.Nero { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -1738,6 +1939,7 @@ namespace Aaru.Tests.Images.Nero Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/Nero/V2.cs b/Aaru.Tests/Images/Nero/V2.cs index 835e2af32..99604f95f 100644 --- a/Aaru.Tests/Images/Nero/V2.cs +++ b/Aaru.Tests/Images/Nero/V2.cs @@ -32,10 +32,10 @@ using System.Linq; using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; using Aaru.Filters; using FluentAssertions; +using FluentAssertions.Execution; using NUnit.Framework; namespace Aaru.Tests.Images.Nero @@ -5071,121 +5071,136 @@ namespace Aaru.Tests.Images.Nero } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Nero Burning ROM", "V2"); + [Test] - public void Test() + public void Info() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "Nero Burning ROM", "V2"); - - IFilter[] filters = new IFilter[_testFiles.Length]; + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { - filters[i] = new ZZZNoFilter(); - filters[i].Open(_testFiles[i]); - } + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - IOpticalMediaImage[] images = new IOpticalMediaImage[_testFiles.Length]; + var image = new DiscImages.Nero(); + bool opened = image.Open(filter); - for(int i = 0; i < _testFiles.Length; i++) - { - images[i] = new DiscImages.Nero(); - Assert.AreEqual(true, images[i].Open(filters[i]), $"Open: {_testFiles[i]}"); - } + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_sectors[i], images[i].Info.Sectors, $"Sectors: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_mediaTypes[i], images[i].Info.MediaType, $"Media type: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - Assert.AreEqual(_tracks[i], images[i].Tracks.Count, $"Tracks: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackSession).Should(). - BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackStartSector).Should(). - BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackEndSector).Should(). - BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - images[i].Tracks.Select(t => t.TrackPregap).Should(). - BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); - - for(int i = 0; i < _testFiles.Length; i++) - { - int trackNo = 0; - - foreach(Track currentTrack in images[i].Tracks) + using(new AssertionScope()) { - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) - Assert.AreEqual(_trackFlags[i][trackNo], - images[i].ReadSectorTag(currentTrack.TrackSequence, SectorTagType.CdTrackFlags) - [0], $"Track flags: {_testFiles[i]}, track {currentTrack.TrackSequence}"); + Assert.Multiple(() => + { + Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}"); + Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}"); - trackNo++; + Assert.AreEqual(_tracks[i], image.Tracks.Count, $"Tracks: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackSession).Should(). + BeEquivalentTo(_trackSessions[i], $"Track session: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackStartSector).Should(). + BeEquivalentTo(_trackStarts[i], $"Track start: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackEndSector).Should(). + BeEquivalentTo(_trackEnds[i], $"Track end: {_testFiles[i]}"); + + image.Tracks.Select(t => t.TrackPregap).Should(). + BeEquivalentTo(_trackPregaps[i], $"Track pregap: {_testFiles[i]}"); + + int trackNo = 0; + + byte[] flags = new byte[image.Tracks.Count]; + + foreach(Track currentTrack in image.Tracks) + { + if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) + flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, + SectorTagType.CdTrackFlags)[0]; + + trackNo++; + } + + flags.Should().BeEquivalentTo(_trackFlags[i], $"Track flags: {_testFiles[i]}"); + }); } } + } - foreach(bool @long in new[] + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + + [Test] + public void Hashes() + { + Environment.CurrentDirectory = _dataFolder; + + Assert.Multiple(() => { - false, true - }) for(int i = 0; i < _testFiles.Length; i++) { - var ctx = new Md5Context(); + var filter = new ZZZNoFilter(); + filter.Open(_testFiles[i]); - foreach(Track currentTrack in images[i].Tracks) + var image = new DiscImages.Nero(); + bool opened = image.Open(filter); + + Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); + Md5Context ctx; + + foreach(bool @long in new[] { - ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; - ulong doneSectors = 0; + false, true + }) + { + ctx = new Md5Context(); - while(doneSectors < sectors) + foreach(Track currentTrack in image.Tracks) { - byte[] sector; + ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; + ulong doneSectors = 0; - if(sectors - doneSectors >= sectorsToRead) + while(doneSectors < sectors) { - sector = @long ? images[i]. - ReadSectorsLong(doneSectors, sectorsToRead, currentTrack.TrackSequence) - : images[i]. - ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + byte[] sector; - doneSectors += sectorsToRead; + if(sectors - doneSectors >= SECTORS_TO_READ) + { + sector = + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); + + doneSectors += SECTORS_TO_READ; + } + else + { + sector = + @long ? image.ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence) + : image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence); + + doneSectors += sectors - doneSectors; + } + + ctx.Update(sector); } - else - { - sector = @long ? images[i].ReadSectorsLong(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence) - : images[i].ReadSectors(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence); - - doneSectors += sectors - doneSectors; - } - - ctx.Update(sector); } + + Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), + $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); } - Assert.AreEqual(@long ? _longMd5S[i] : _md5S[i], ctx.End(), - $"{(@long ? "Long hash" : "Hash")}: {_testFiles[i]}"); - } + if(!image.Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) + continue; - for(int i = 0; i < _testFiles.Length; i++) - if(images[i].Info.ReadableSectorTags.Contains(SectorTagType.CdSectorSubchannel)) - { - var ctx = new Md5Context(); + ctx = new Md5Context(); - foreach(Track currentTrack in images[i].Tracks) + foreach(Track currentTrack in image.Tracks) { ulong sectors = currentTrack.TrackEndSector - currentTrack.TrackStartSector + 1; ulong doneSectors = 0; @@ -5194,19 +5209,18 @@ namespace Aaru.Tests.Images.Nero { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = images[i].ReadSectorsTag(doneSectors, sectorsToRead, - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { - sector = images[i].ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), - currentTrack.TrackSequence, - SectorTagType.CdSectorSubchannel); + sector = image.ReadSectorsTag(doneSectors, (uint)(sectors - doneSectors), + currentTrack.TrackSequence, + SectorTagType.CdSectorSubchannel); doneSectors += sectors - doneSectors; } @@ -5217,6 +5231,7 @@ namespace Aaru.Tests.Images.Nero Assert.AreEqual(_subchannelMd5S[i], ctx.End(), $"Subchannel hash: {_testFiles[i]}"); } + }); } } } \ No newline at end of file diff --git a/Aaru.Tests/Images/PowerISO/Cuesheet.cs b/Aaru.Tests/Images/PowerISO/Cuesheet.cs index c0407b7d1..948f6e564 100644 --- a/Aaru.Tests/Images/PowerISO/Cuesheet.cs +++ b/Aaru.Tests/Images/PowerISO/Cuesheet.cs @@ -33,7 +33,6 @@ using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Structs; -using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions; using FluentAssertions.Execution; @@ -477,18 +476,20 @@ namespace Aaru.Tests.Images.PowerISO } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "PowerISO", "Cuesheet"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "PowerISO", "Cuesheet"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { var filter = new ZZZNoFilter(); filter.Open(_testFiles[i]); - var image = new CdrWin(); + var image = new DiscImages.DiscJuggler(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -533,14 +534,13 @@ namespace Aaru.Tests.Images.PowerISO } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "PowerISO", "Cuesheet"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -549,7 +549,7 @@ namespace Aaru.Tests.Images.PowerISO var filter = new ZZZNoFilter(); filter.Open(_testFiles[i]); - var image = new CdrWin(); + var image = new DiscImages.DiscJuggler(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -571,14 +571,15 @@ namespace Aaru.Tests.Images.PowerISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -613,12 +614,12 @@ namespace Aaru.Tests.Images.PowerISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/HyperV.cs b/Aaru.Tests/Images/QEMU/HyperV.cs index 6ac63b832..0d99dd920 100644 --- a/Aaru.Tests/Images/QEMU/HyperV.cs +++ b/Aaru.Tests/Images/QEMU/HyperV.cs @@ -48,25 +48,25 @@ namespace Aaru.Tests.Images.QEMU readonly ulong[] _sectors = { // vhdx.vhdx.lz - 251904, + 251904 }; readonly uint[] _sectorSize = { // vhdx.vhdx.lz - 512, + 512 }; readonly MediaType[] _mediaTypes = { // vhdx.vhdx.lz - MediaType.GENERIC_HDD, + MediaType.GENERIC_HDD }; readonly string[] _md5S = { // vhdx.vhdx.lz - "4bfc9e9e2dd86aa52ef709e77d2617ed", + "4bfc9e9e2dd86aa52ef709e77d2617ed" }; readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "QEMU", "Hyper-V"); @@ -83,7 +83,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Vhdx(); + var image = new Vhdx(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -105,7 +105,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -119,7 +119,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Vhdx(); + var image = new Vhdx(); bool opened = image.Open(filter); ulong doneSectors = 0; @@ -134,10 +134,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/Parallels.cs b/Aaru.Tests/Images/QEMU/Parallels.cs index 6fb2ee0bd..6c2925bd9 100644 --- a/Aaru.Tests/Images/QEMU/Parallels.cs +++ b/Aaru.Tests/Images/QEMU/Parallels.cs @@ -104,7 +104,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -133,10 +133,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/QCOW.cs b/Aaru.Tests/Images/QEMU/QCOW.cs index 23a171ed6..18d975e51 100644 --- a/Aaru.Tests/Images/QEMU/QCOW.cs +++ b/Aaru.Tests/Images/QEMU/QCOW.cs @@ -30,6 +30,7 @@ using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; +using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions.Execution; using NUnit.Framework; @@ -68,7 +69,8 @@ namespace Aaru.Tests.Images.QEMU "4bfc9e9e2dd86aa52ef709e77d2617ed" }; - readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "QEMU", "QEMU Copy On Write"); + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "QEMU", "QEMU Copy On Write"); [Test] public void Info() @@ -82,7 +84,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Qcow(); + var image = new Qcow(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -104,7 +106,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -118,7 +120,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Qcow(); + var image = new Qcow(); bool opened = image.Open(filter); ulong doneSectors = 0; @@ -133,10 +135,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/QCOW2.cs b/Aaru.Tests/Images/QEMU/QCOW2.cs index 3814bad4b..46d9b4eb4 100644 --- a/Aaru.Tests/Images/QEMU/QCOW2.cs +++ b/Aaru.Tests/Images/QEMU/QCOW2.cs @@ -118,7 +118,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -147,10 +147,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/QCOW3.cs b/Aaru.Tests/Images/QEMU/QCOW3.cs index 1939f7573..ea6bd873f 100644 --- a/Aaru.Tests/Images/QEMU/QCOW3.cs +++ b/Aaru.Tests/Images/QEMU/QCOW3.cs @@ -118,7 +118,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -147,10 +147,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/QED.cs b/Aaru.Tests/Images/QEMU/QED.cs index 94df5d531..4c164f5bf 100644 --- a/Aaru.Tests/Images/QEMU/QED.cs +++ b/Aaru.Tests/Images/QEMU/QED.cs @@ -30,6 +30,7 @@ using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; +using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions.Execution; using NUnit.Framework; @@ -68,7 +69,8 @@ namespace Aaru.Tests.Images.QEMU "4bfc9e9e2dd86aa52ef709e77d2617ed" }; - readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "QEMU", "QEMU Enhanced Disk"); + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "QEMU", "QEMU Enhanced Disk"); [Test] public void Info() @@ -82,7 +84,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Qed(); + var image = new Qed(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -104,7 +106,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -118,7 +120,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Qed(); + var image = new Qed(); bool opened = image.Open(filter); ulong doneSectors = 0; @@ -133,10 +135,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/Raw.cs b/Aaru.Tests/Images/QEMU/Raw.cs index ac5df98ae..d395dd788 100644 --- a/Aaru.Tests/Images/QEMU/Raw.cs +++ b/Aaru.Tests/Images/QEMU/Raw.cs @@ -105,7 +105,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -134,10 +134,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/VMware5.cs b/Aaru.Tests/Images/QEMU/VMware5.cs index 529432bf8..f26d239d9 100644 --- a/Aaru.Tests/Images/QEMU/VMware5.cs +++ b/Aaru.Tests/Images/QEMU/VMware5.cs @@ -105,7 +105,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -134,10 +134,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/VMware6.cs b/Aaru.Tests/Images/QEMU/VMware6.cs index f8ea68aa7..eb17b4f06 100644 --- a/Aaru.Tests/Images/QEMU/VMware6.cs +++ b/Aaru.Tests/Images/QEMU/VMware6.cs @@ -105,7 +105,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -134,10 +134,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/VirtualBox.cs b/Aaru.Tests/Images/QEMU/VirtualBox.cs index e28b67fec..9f647aa19 100644 --- a/Aaru.Tests/Images/QEMU/VirtualBox.cs +++ b/Aaru.Tests/Images/QEMU/VirtualBox.cs @@ -83,7 +83,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Vdi(); + var image = new Vdi(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -105,7 +105,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -119,7 +119,7 @@ namespace Aaru.Tests.Images.QEMU var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.Vdi(); + var image = new Vdi(); bool opened = image.Open(filter); ulong doneSectors = 0; @@ -134,10 +134,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/QEMU/VirtualPC.cs b/Aaru.Tests/Images/QEMU/VirtualPC.cs index c6e55eeb5..d3d9c314a 100644 --- a/Aaru.Tests/Images/QEMU/VirtualPC.cs +++ b/Aaru.Tests/Images/QEMU/VirtualPC.cs @@ -42,17 +42,17 @@ namespace Aaru.Tests.Images.QEMU { readonly string[] _testFiles = { - "qemu_dynamic_250mb.vhd.lz", - "qemu_fixed_10mb.vhd.lz", - "virtualpc.vhd.lz" + "qemu_dynamic_250mb.vhd.lz", "qemu_fixed_10mb.vhd.lz", "virtualpc.vhd.lz" }; readonly ulong[] _sectors = { // qemu_dynamic_250mb.vhd.lz" 512064, + // qemu_fixed_10mb.vhd.lz" 20536, + // virtualpc.vhd.lz 251940 }; @@ -61,8 +61,10 @@ namespace Aaru.Tests.Images.QEMU { // qemu_dynamic_250mb.vhd.lz" 512, + // qemu_fixed_10mb.vhd.lz" 512, + // virtualpc.vhd.lz 512 }; @@ -71,8 +73,10 @@ namespace Aaru.Tests.Images.QEMU { // qemu_dynamic_250mb.vhd.lz" MediaType.Unknown, + // qemu_fixed_10mb.vhd.lz" MediaType.Unknown, + // virtualpc.vhd.lz MediaType.Unknown }; @@ -81,8 +85,10 @@ namespace Aaru.Tests.Images.QEMU { // qemu_dynamic_250mb.vhd.lz" "0435d6781d14d34a32c6ac40f5e70d35", + // qemu_fixed_10mb.vhd.lz" "adfad4fb019f157e868baa39e7753db7", + // virtualpc.vhd.lz "6246bff640cb3a56d2611e7f8616384d" }; @@ -123,7 +129,7 @@ namespace Aaru.Tests.Images.QEMU } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -152,10 +158,10 @@ namespace Aaru.Tests.Images.QEMU { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/RayDIM.cs b/Aaru.Tests/Images/RayDIM.cs index d4753cdab..e2c9a7e51 100644 --- a/Aaru.Tests/Images/RayDIM.cs +++ b/Aaru.Tests/Images/RayDIM.cs @@ -2703,7 +2703,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -2728,10 +2728,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/RsIde.cs b/Aaru.Tests/Images/RsIde.cs index 13a600fb4..06b7d32b7 100644 --- a/Aaru.Tests/Images/RsIde.cs +++ b/Aaru.Tests/Images/RsIde.cs @@ -104,7 +104,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -133,10 +133,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/SaveDskF.cs b/Aaru.Tests/Images/SaveDskF.cs index f917a84c0..9c66a8de1 100644 --- a/Aaru.Tests/Images/SaveDskF.cs +++ b/Aaru.Tests/Images/SaveDskF.cs @@ -1555,7 +1555,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -1584,10 +1584,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ShrinkWrap/DiskCopy42.cs b/Aaru.Tests/Images/ShrinkWrap/DiskCopy42.cs index b60ae99de..521a19c2c 100644 --- a/Aaru.Tests/Images/ShrinkWrap/DiskCopy42.cs +++ b/Aaru.Tests/Images/ShrinkWrap/DiskCopy42.cs @@ -166,7 +166,7 @@ namespace Aaru.Tests.Images.ShrinkWrap } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -195,10 +195,10 @@ namespace Aaru.Tests.Images.ShrinkWrap { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ShrinkWrap/DiskDup.cs b/Aaru.Tests/Images/ShrinkWrap/DiskDup.cs index 780e88c6d..6a011e677 100644 --- a/Aaru.Tests/Images/ShrinkWrap/DiskDup.cs +++ b/Aaru.Tests/Images/ShrinkWrap/DiskDup.cs @@ -215,7 +215,7 @@ namespace Aaru.Tests.Images.ShrinkWrap } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -244,10 +244,10 @@ namespace Aaru.Tests.Images.ShrinkWrap { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ShrinkWrap/NDIF/ROCo.cs b/Aaru.Tests/Images/ShrinkWrap/NDIF/ROCo.cs index 4b79aa3c7..fe48b3594 100644 --- a/Aaru.Tests/Images/ShrinkWrap/NDIF/ROCo.cs +++ b/Aaru.Tests/Images/ShrinkWrap/NDIF/ROCo.cs @@ -215,7 +215,7 @@ namespace Aaru.Tests.Images.ShrinkWrap.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -244,10 +244,10 @@ namespace Aaru.Tests.Images.ShrinkWrap.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ShrinkWrap/NDIF/RdWr.cs b/Aaru.Tests/Images/ShrinkWrap/NDIF/RdWr.cs index f3a4255f2..e5ff5fc4b 100644 --- a/Aaru.Tests/Images/ShrinkWrap/NDIF/RdWr.cs +++ b/Aaru.Tests/Images/ShrinkWrap/NDIF/RdWr.cs @@ -215,7 +215,7 @@ namespace Aaru.Tests.Images.ShrinkWrap.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -244,10 +244,10 @@ namespace Aaru.Tests.Images.ShrinkWrap.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ShrinkWrap/NDIF/Rdxx.cs b/Aaru.Tests/Images/ShrinkWrap/NDIF/Rdxx.cs index 804a74a1e..c641791ca 100644 --- a/Aaru.Tests/Images/ShrinkWrap/NDIF/Rdxx.cs +++ b/Aaru.Tests/Images/ShrinkWrap/NDIF/Rdxx.cs @@ -215,7 +215,7 @@ namespace Aaru.Tests.Images.ShrinkWrap.NDIF } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -244,10 +244,10 @@ namespace Aaru.Tests.Images.ShrinkWrap.NDIF { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/ShrinkWrap/Raw.cs b/Aaru.Tests/Images/ShrinkWrap/Raw.cs index def91f4c4..fa4400c5f 100644 --- a/Aaru.Tests/Images/ShrinkWrap/Raw.cs +++ b/Aaru.Tests/Images/ShrinkWrap/Raw.cs @@ -215,7 +215,7 @@ namespace Aaru.Tests.Images.ShrinkWrap } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -244,10 +244,10 @@ namespace Aaru.Tests.Images.ShrinkWrap { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/TeleDisk.cs b/Aaru.Tests/Images/TeleDisk.cs index d987778be..31fe78eb7 100644 --- a/Aaru.Tests/Images/TeleDisk.cs +++ b/Aaru.Tests/Images/TeleDisk.cs @@ -800,7 +800,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -829,10 +829,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/UltraISO/Alcohol.cs b/Aaru.Tests/Images/UltraISO/Alcohol.cs index ca3c8b4be..1820ef7b5 100644 --- a/Aaru.Tests/Images/UltraISO/Alcohol.cs +++ b/Aaru.Tests/Images/UltraISO/Alcohol.cs @@ -511,11 +511,13 @@ namespace Aaru.Tests.Images.UltraISO } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Alcohol"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Alcohol"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -567,14 +569,13 @@ namespace Aaru.Tests.Images.UltraISO } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Alcohol"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -605,14 +606,15 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -647,12 +649,12 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/UltraISO/CloneCD.cs b/Aaru.Tests/Images/UltraISO/CloneCD.cs index 49092e71f..d57e4fda5 100644 --- a/Aaru.Tests/Images/UltraISO/CloneCD.cs +++ b/Aaru.Tests/Images/UltraISO/CloneCD.cs @@ -376,11 +376,13 @@ namespace Aaru.Tests.Images.UltraISO } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "CloneCD"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "CloneCD"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -432,14 +434,13 @@ namespace Aaru.Tests.Images.UltraISO } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "CloneCD"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -470,14 +471,15 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -512,12 +514,12 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/UltraISO/Cuesheet.cs b/Aaru.Tests/Images/UltraISO/Cuesheet.cs index 85a6ca599..2cd3e76b2 100644 --- a/Aaru.Tests/Images/UltraISO/Cuesheet.cs +++ b/Aaru.Tests/Images/UltraISO/Cuesheet.cs @@ -522,11 +522,13 @@ namespace Aaru.Tests.Images.UltraISO } }; + readonly string _dataFolder = + Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Cuesheet"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Cuesheet"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -578,14 +580,13 @@ namespace Aaru.Tests.Images.UltraISO } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Cuesheet"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -616,14 +617,15 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -658,12 +660,12 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/UltraISO/Nero.cs b/Aaru.Tests/Images/UltraISO/Nero.cs index f0081808d..79ec4e8ce 100644 --- a/Aaru.Tests/Images/UltraISO/Nero.cs +++ b/Aaru.Tests/Images/UltraISO/Nero.cs @@ -523,11 +523,12 @@ namespace Aaru.Tests.Images.UltraISO } }; + readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Nero"); + [Test] - public void Test() + public void Info() { - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Nero"); + Environment.CurrentDirectory = _dataFolder; for(int i = 0; i < _testFiles.Length; i++) { @@ -579,14 +580,13 @@ namespace Aaru.Tests.Images.UltraISO } } + // How many sectors to read at once + const uint SECTORS_TO_READ = 256; + [Test] public void Hashes() { - // How many sectors to read at once - const uint sectorsToRead = 256; - - Environment.CurrentDirectory = - Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "UltraISO", "Nero"); + Environment.CurrentDirectory = _dataFolder; Assert.Multiple(() => { @@ -617,14 +617,15 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { sector = - @long ? image.ReadSectorsLong(doneSectors, sectorsToRead, + @long ? image.ReadSectorsLong(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence) - : image.ReadSectors(doneSectors, sectorsToRead, currentTrack.TrackSequence); + : image.ReadSectors(doneSectors, SECTORS_TO_READ, + currentTrack.TrackSequence); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { @@ -659,12 +660,12 @@ namespace Aaru.Tests.Images.UltraISO { byte[] sector; - if(sectors - doneSectors >= sectorsToRead) + if(sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectorsTag(doneSectors, sectorsToRead, currentTrack.TrackSequence, + sector = image.ReadSectorsTag(doneSectors, SECTORS_TO_READ, currentTrack.TrackSequence, SectorTagType.CdSectorSubchannel); - doneSectors += sectorsToRead; + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/Virtual98.cs b/Aaru.Tests/Images/Virtual98.cs index 35c2ff323..76cf23bd5 100644 --- a/Aaru.Tests/Images/Virtual98.cs +++ b/Aaru.Tests/Images/Virtual98.cs @@ -177,7 +177,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -206,10 +206,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/VirtualBox/VirtualPC.cs b/Aaru.Tests/Images/VirtualBox/VirtualPC.cs index 4e87f9721..d627e414a 100644 --- a/Aaru.Tests/Images/VirtualBox/VirtualPC.cs +++ b/Aaru.Tests/Images/VirtualBox/VirtualPC.cs @@ -168,7 +168,7 @@ namespace Aaru.Tests.Images.VirtualBox } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -197,10 +197,10 @@ namespace Aaru.Tests.Images.VirtualBox { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/VirtualPC/Raw.cs b/Aaru.Tests/Images/VirtualPC/Raw.cs index dc73cbaa7..89a2d093e 100644 --- a/Aaru.Tests/Images/VirtualPC/Raw.cs +++ b/Aaru.Tests/Images/VirtualPC/Raw.cs @@ -154,7 +154,7 @@ namespace Aaru.Tests.Images.VirtualPC } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -183,10 +183,10 @@ namespace Aaru.Tests.Images.VirtualPC { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/VirtualPC/VirtualPC.cs b/Aaru.Tests/Images/VirtualPC/VirtualPC.cs index a146487e3..0c29bc5a8 100644 --- a/Aaru.Tests/Images/VirtualPC/VirtualPC.cs +++ b/Aaru.Tests/Images/VirtualPC/VirtualPC.cs @@ -250,7 +250,7 @@ readonly string[] _md5S = } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -279,10 +279,10 @@ readonly string[] _md5S = { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/partclone.cs b/Aaru.Tests/Images/partclone.cs index 0b1d9e1c1..add1b3f6c 100644 --- a/Aaru.Tests/Images/partclone.cs +++ b/Aaru.Tests/Images/partclone.cs @@ -30,6 +30,7 @@ using System; using System.IO; using Aaru.Checksums; using Aaru.CommonTypes; +using Aaru.DiscImages; using Aaru.Filters; using FluentAssertions.Execution; using NUnit.Framework; @@ -41,67 +42,79 @@ namespace Aaru.Tests.Images { readonly string[] _testFiles = { - "ext2.partclone.lz", - "fat16.partclone.lz", - "fat32.partclone.lz", - "hfsplus.partclone.lz", - "ntfs.partclone.lz", + "ext2.partclone.lz", "fat16.partclone.lz", "fat32.partclone.lz", "hfsplus.partclone.lz", "ntfs.partclone.lz" }; - + readonly ulong[] _sectors = { // ext2.partclone.lz 127882, + // fat16.partclone.lz 1012032, + // fat32.partclone.lz 1023057, + // hfsplus.partclone.lz 127882, + // ntfs.partclone.lz - 1023056, + 1023056 }; - + readonly uint[] _sectorSize = { // ext2.partclone.lz 4096, + // fat16.partclone.lz 512, + // fat32.partclone.lz 512, + // hfsplus.partclone.lz 4096, + // ntfs.partclone.lz - 512, + 512 }; - + readonly MediaType[] _mediaTypes = { // ext2.partclone.lz MediaType.GENERIC_HDD, + // fat16.partclone.lz MediaType.GENERIC_HDD, + // fat32.partclone.lz MediaType.GENERIC_HDD, + // hfsplus.partclone.lz MediaType.GENERIC_HDD, + // ntfs.partclone.lz - MediaType.GENERIC_HDD, + MediaType.GENERIC_HDD }; - + readonly string[] _md5S = { // ext2.partclone.lz "ff239c91166b6b13fa826dd258b40666", + // fat16.partclone.lz "f98b1a51ca2e7bf047d84969a2392a3d", + // fat32.partclone.lz "1b0b5eb965a401f16fa8a07e303cd1c0", + // hfsplus.partclone.lz "880a6777d05c496901e930684abbecff", + // ntfs.partclone.lz - "61cc3faa286364e7ad5bab18120c1151", + "61cc3faa286364e7ad5bab18120c1151" }; readonly string _dataFolder = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "partclone"); @@ -118,7 +131,7 @@ namespace Aaru.Tests.Images var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.PartClone(); + var image = new PartClone(); bool opened = image.Open(filter); Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}"); @@ -140,7 +153,7 @@ namespace Aaru.Tests.Images } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -154,7 +167,7 @@ namespace Aaru.Tests.Images var filter = new LZip(); filter.Open(_testFiles[i]); - var image = new DiscImages.PartClone(); + var image = new PartClone(); bool opened = image.Open(filter); ulong doneSectors = 0; @@ -169,10 +182,10 @@ namespace Aaru.Tests.Images { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/pce/DiskCopy42.cs b/Aaru.Tests/Images/pce/DiskCopy42.cs index e30d8381c..ddd634172 100644 --- a/Aaru.Tests/Images/pce/DiskCopy42.cs +++ b/Aaru.Tests/Images/pce/DiskCopy42.cs @@ -129,7 +129,7 @@ namespace Aaru.Tests.Images.pce } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -158,10 +158,10 @@ namespace Aaru.Tests.Images.pce { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/pce/ImageDisk.cs b/Aaru.Tests/Images/pce/ImageDisk.cs index 01acd2457..a2f811f98 100644 --- a/Aaru.Tests/Images/pce/ImageDisk.cs +++ b/Aaru.Tests/Images/pce/ImageDisk.cs @@ -385,7 +385,7 @@ namespace Aaru.Tests.Images.pce } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -414,10 +414,10 @@ namespace Aaru.Tests.Images.pce { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/pce/TeleDisk.cs b/Aaru.Tests/Images/pce/TeleDisk.cs index de2837e8c..ee5381baf 100644 --- a/Aaru.Tests/Images/pce/TeleDisk.cs +++ b/Aaru.Tests/Images/pce/TeleDisk.cs @@ -392,7 +392,7 @@ namespace Aaru.Tests.Images.pce } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -421,10 +421,10 @@ namespace Aaru.Tests.Images.pce { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/pce/XDF.cs b/Aaru.Tests/Images/pce/XDF.cs index 9a3adcb11..7cb698569 100644 --- a/Aaru.Tests/Images/pce/XDF.cs +++ b/Aaru.Tests/Images/pce/XDF.cs @@ -117,7 +117,7 @@ namespace Aaru.Tests.Images.pce } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -146,10 +146,10 @@ namespace Aaru.Tests.Images.pce { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else { diff --git a/Aaru.Tests/Images/pce/raw.cs b/Aaru.Tests/Images/pce/raw.cs index fc573ce7c..815edc026 100644 --- a/Aaru.Tests/Images/pce/raw.cs +++ b/Aaru.Tests/Images/pce/raw.cs @@ -422,7 +422,7 @@ namespace Aaru.Tests.Images.pce } // How many sectors to read at once - const uint _sectorsToRead = 256; + const uint SECTORS_TO_READ = 256; [Test] public void Hashes() @@ -451,10 +451,10 @@ namespace Aaru.Tests.Images.pce { byte[] sector; - if(image.Info.Sectors - doneSectors >= _sectorsToRead) + if(image.Info.Sectors - doneSectors >= SECTORS_TO_READ) { - sector = image.ReadSectors(doneSectors, _sectorsToRead); - doneSectors += _sectorsToRead; + sector = image.ReadSectors(doneSectors, SECTORS_TO_READ); + doneSectors += SECTORS_TO_READ; } else {