Test that no track ends after image last sector in optical media image unit tests.

This commit is contained in:
2021-07-01 22:36:54 +01:00
parent 761236f589
commit 2c9ec24298

View File

@@ -80,10 +80,14 @@ namespace Aaru.Tests.Images
int trackNo = 0; int trackNo = 0;
byte?[] flags = new byte?[image.Tracks.Count]; byte?[] flags = new byte?[image.Tracks.Count];
ulong latestEndSector = 0;
foreach(Track currentTrack in image.Tracks) foreach(Track currentTrack in image.Tracks)
{ {
if(currentTrack.TrackEndSector > latestEndSector)
latestEndSector = currentTrack.TrackEndSector;
if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags)) if(image.Info.ReadableSectorTags.Contains(SectorTagType.CdTrackFlags))
flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence, flags[trackNo] = image.ReadSectorTag(currentTrack.TrackSequence,
SectorTagType.CdTrackFlags)[0]; SectorTagType.CdTrackFlags)[0];
@@ -92,6 +96,9 @@ namespace Aaru.Tests.Images
} }
flags.Should().BeEquivalentTo(test.Tracks.Select(s => s.Flags), $"Track flags: {testFile}"); flags.Should().BeEquivalentTo(test.Tracks.Select(s => s.Flags), $"Track flags: {testFile}");
Assert.AreEqual(latestEndSector, image.Info.Sectors - 1,
$"Last sector for tracks is {latestEndSector}, but it is {image.Info.Sectors} for image");
}); });
} }
} }