Files
Aaru/Aaru.Tests/Images/MAME/v4.cs

1068 lines
37 KiB
C#

// /***************************************************************************
// Aaru Data Preservation Suite
// ----------------------------------------------------------------------------
//
// Filename : v4.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Aaru unit testing.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2021 Natalia Portillo
// ****************************************************************************/
using System.IO;
using Aaru.CommonTypes;
using Aaru.CommonTypes.Interfaces;
using Aaru.DiscImages;
using NUnit.Framework;
namespace Aaru.Tests.Images.MAME
{
[TestFixture]
public class V4 : OpticalMediaImageTest
{
public override string DataFolder => Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "MAME", "v4");
public override IMediaImage _plugin => new Chd();
public override OpticalImageTestExpected[] Tests => new[]
{
new OpticalImageTestExpected
{
TestFile = "gigarec.chd",
MediaType = MediaType.CDROM,
Sectors = 469652,
SectorSize = 2048,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 469651,
Pregap = 150,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "hdd.chd",
MediaType = MediaType.GENERIC_HDD,
Sectors = 251904,
SectorSize = 512,
MD5 = "43476343f53a177dd57b68dd769917aa"
},
new OpticalImageTestExpected
{
TestFile = "jaguarcd.chd",
MediaType = MediaType.CDROM,
Sectors = 243587,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 27639,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 27640,
End = 28236,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 28237,
End = 78891,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 78892,
End = 100053,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 100054,
End = 133202,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 133203,
End = 160907,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 160908,
End = 181465,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 181466,
End = 202023,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 202024,
End = 222581,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 222582,
End = 243139,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 243140,
End = 243586,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "pcengine.chd",
MediaType = MediaType.CDROM,
Sectors = 160506,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 3439,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 3440,
End = 38313,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 38314,
End = 46916,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 46917,
End = 53200,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 53201,
End = 61518,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 61519,
End = 68262,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 68263,
End = 75096,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 75097,
End = 82829,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 82830,
End = 86180,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 86181,
End = 90966,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 90967,
End = 98973,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 98974,
End = 106392,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 106393,
End = 111937,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 111938,
End = 119969,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 119970,
End = 125778,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 125779,
End = 160505,
Pregap = 150,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "pcfx.chd",
MediaType = MediaType.CDROM,
Sectors = 246380,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 4244,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 4245,
End = 4758,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 4759,
End = 5790,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 5791,
End = 41908,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 41909,
End = 220494,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 220495,
End = 225345,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 225346,
End = 235197,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 235198,
End = 246379,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "report_audiocd.chd",
MediaType = MediaType.CDROM,
Sectors = 247073,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 16548,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 16549,
End = 30050,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 30051,
End = 47949,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 47950,
End = 63313,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 63314,
End = 78924,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 78925,
End = 94731,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 94732,
End = 117124,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 117125,
End = 136165,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 136166,
End = 154071,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 154072,
End = 170750,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 170751,
End = 186538,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 186539,
End = 201798,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 201799,
End = 224448,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 224449,
End = 247072,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "report_cdr.chd",
MediaType = MediaType.CDROM,
Sectors = 254265,
SectorSize = 2048,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 254264,
Pregap = 150,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "report_cdrom.chd",
MediaType = MediaType.CDROM,
Sectors = 254265,
SectorSize = 2048,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 254264,
Pregap = 150,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "report_cdrw.chd",
MediaType = MediaType.CDROM,
Sectors = 308224,
SectorSize = 2048,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 308223,
Pregap = 150,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_audiocd_cdtext.chd",
MediaType = MediaType.CDROM,
Sectors = 277696,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 29901,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 29902,
End = 65183,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 65184,
End = 78575,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 78576,
End = 95229,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 95230,
End = 126296,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 126297,
End = 155108,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 155109,
End = 191834,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 191835,
End = 222925,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 222926,
End = 243587,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 243588,
End = 269749,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 269750,
End = 277695,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_enhancedcd.chd",
MediaType = MediaType.CDROM,
Sectors = 59206,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 14404,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 14405,
End = 40352,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 40353,
End = 59205,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_incd_udf200_finalized.chd",
MediaType = MediaType.CDROM,
Sectors = 350134,
SectorSize = 2336,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 350133,
Pregap = 150,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_multi_karaoke_sampler.chd",
MediaType = MediaType.CDROM,
Sectors = 329158,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 1886,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 1887,
End = 32748,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 32749,
End = 52671,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 52672,
End = 70303,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 70304,
End = 100097,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 100098,
End = 119760,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 119761,
End = 136998,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 136999,
End = 155789,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 155790,
End = 175825,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 175826,
End = 206460,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 206461,
End = 226449,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 226450,
End = 244354,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 244355,
End = 273964,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 273965,
End = 293751,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 293752,
End = 310710,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 310711,
End = 329157,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_multiple_indexes.chd",
MediaType = MediaType.CDROM,
Sectors = 65536,
SectorSize = 2352,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 4803,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 4804,
End = 13874,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 13875,
End = 41184,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 41185,
End = 54988,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 54989,
End = 65535,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_multisession.chd",
MediaType = MediaType.CDROM,
Sectors = 51168,
SectorSize = 2336,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 19532,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 19533,
End = 32859,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 32860,
End = 45377,
Pregap = 0,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 45378,
End = 51167,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_multisession_dvd+r.chd",
MediaType = MediaType.CDROM,
Sectors = 230624,
SectorSize = 2048,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 24063,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 24064,
End = 230623,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_multisession_dvd-r.chd",
MediaType = MediaType.CDROM,
Sectors = 257264,
SectorSize = 2048,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 235247,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 235248,
End = 257263,
Pregap = 0,
Flags = 0
}
}
},
new OpticalImageTestExpected
{
TestFile = "test_videocd.chd",
MediaType = MediaType.CDROM,
Sectors = 48794,
SectorSize = 2336,
MD5 = "UNKNOWN",
LongMD5 = "UNKNOWN",
SubchannelMD5 = "UNKNOWN",
Tracks = new[]
{
new TrackInfoTestExpected
{
Session = 1,
Start = 0,
End = 1251,
Pregap = 150,
Flags = 0
},
new TrackInfoTestExpected
{
Session = 1,
Start = 1252,
End = 48793,
Pregap = 0,
Flags = 0
}
}
}
};
}
}