// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : CDRWin.cs // Author(s) : Natalia Portillo // // 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 . // // ---------------------------------------------------------------------------- // 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 { [TestFixture] public class CDRWin : OpticalMediaImageTest { public override string DataFolder => Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "CDRWin"); public override IMediaImage _plugin => new CdrWin(); public override OpticalImageTestExpected[] Tests => new[] { new OpticalImageTestExpected { TestFile = "pcengine.cue", MediaType = MediaType.CD, Sectors = 160356, MD5 = "8eb436b476c9df343acb89ac1ba7e1b4", LongMD5 = "bdcd5cabf4f48333f9dbb08967dce7a8", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 3364, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 3365, End = 38238, Pregap = 225, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 38239, End = 46691, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 46692, End = 52975, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52976, End = 61293, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 61294, End = 68037, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 68038, End = 74871, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 74872, End = 82604, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 82605, End = 85955, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 85956, End = 90741, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 90742, End = 98748, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 98749, End = 106167, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 106168, End = 111712, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 111713, End = 119744, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119745, End = 125628, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 125629, End = 160355, Pregap = 225, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "pcfx.cue", MediaType = MediaType.CD, Sectors = 246305, MD5 = "73e2855fff156f95fb8f0ae7c58d1b9d", LongMD5 = "f421fc4af3ac528911b6d824825ff9b5", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 4169, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 4170, End = 4683, Pregap = 225, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 4684, End = 5715, Pregap = 0, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 5716, End = 41833, Pregap = 0, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 41834, End = 220419, Pregap = 0, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 220420, End = 225120, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 225121, End = 234972, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 234973, End = 246304, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_audiocd.cue", MediaType = MediaType.CDDA, Sectors = 247073, MD5 = "c09f408a4416634d8ac1c1ffd0ed75a5", LongMD5 = "c09f408a4416634d8ac1c1ffd0ed75a5", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 16398, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 16399, End = 29900, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 29901, End = 47799, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 47800, End = 63163, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 63164, End = 78774, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78775, End = 94581, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 94582, End = 116974, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 116975, End = 136015, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136016, End = 153921, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 153922, End = 170600, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 170601, End = 186388, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 186389, End = 201648, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 201649, End = 224298, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 224299, End = 247072, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_cdr.cue", MediaType = MediaType.CDROM, Sectors = 254265, MD5 = "bf4bbec517101d0d6f45d2e4d50cb875", LongMD5 = "3d3f9cf7d1ba2249b1e7960071e5af46", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "report_cdrw.cue", MediaType = MediaType.CDROM, Sectors = 308224, MD5 = "1e55aa420ca8f8ea77d5b597c9cfc19b", LongMD5 = "3af5f943ddb9427d9c63a4ce3b704db9", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 308223, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "test_audiocd_cdtext.cue", MediaType = MediaType.CDDA, Sectors = 277696, MD5 = "7c8fc7bb768cff15d702ac8cd10108d7", LongMD5 = "7c8fc7bb768cff15d702ac8cd10108d7", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 29751, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 29752, End = 65033, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 65034, End = 78425, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 78426, End = 95079, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 95080, End = 126146, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 126147, End = 154958, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 154959, End = 191684, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 191685, End = 222775, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 222776, End = 243437, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 243438, End = 269599, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 269600, End = 277695, Pregap = 150, Flags = 2 } } }, new OpticalImageTestExpected { TestFile = "test_incd_udf200_finalized.cue", MediaType = MediaType.CDROMXA, Sectors = 350134, MD5 = "13d4c3def37e968b2ddc5cf5a9f18fdc", LongMD5 = "31e772f6997eb8dbf3ecf9aca9ea6bc6", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 350133, Pregap = 150, Flags = 7 } } }, new OpticalImageTestExpected { TestFile = "test_multi_karaoke_sampler.cue", MediaType = MediaType.CDROMXA, Sectors = 329008, MD5 = "f09312ba25a479fb81912a2965babd22", LongMD5 = "f48603d11883593f45ec4a3824681e4e", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1736, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1737, End = 32448, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32449, End = 52371, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52372, End = 70003, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 70004, End = 99797, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 99798, End = 119460, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119461, End = 136698, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136699, End = 155489, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155490, End = 175525, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 175526, End = 206160, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 206161, End = 226149, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 226150, End = 244054, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 244055, End = 273664, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 273665, End = 293451, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 293452, End = 310410, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 310411, End = 329007, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_multiple_indexes.cue", MediaType = MediaType.CDDA, Sectors = 65536, MD5 = "1b13a8f8aeb23f0b8bbc68518217e771", LongMD5 = "1b13a8f8aeb23f0b8bbc68518217e771", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 4653, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 4654, End = 13724, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 13725, End = 41034, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 41035, End = 54838, Pregap = 150, Flags = 8 }, new TrackInfoTestExpected { Session = 1, Start = 54839, End = 65535, Pregap = 150, Flags = 1 } } }, new OpticalImageTestExpected { TestFile = "test_videocd.cue", MediaType = MediaType.CDROMXA, Sectors = 48794, MD5 = "0d80890beeadf3f6e2cf2f88d0067afe", LongMD5 = "96ac6c364e4c3cb2f043197a45a97183", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1251, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1252, End = 48793, Pregap = 0, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "cdg_report_audiocd.cue", MediaType = MediaType.CDG, Sectors = 247073, MD5 = "c09f408a4416634d8ac1c1ffd0ed75a5", LongMD5 = "c09f408a4416634d8ac1c1ffd0ed75a5", SubchannelMD5 = "1d0e4118993a75311fe774e46326306a", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 16398, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 16399, End = 29900, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 29901, End = 47799, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 47800, End = 63163, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 63164, End = 78774, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78775, End = 94581, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 94582, End = 116974, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 116975, End = 136015, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136016, End = 153921, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 153922, End = 170600, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 170601, End = 186388, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 186389, End = 201648, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 201649, End = 224298, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 224299, End = 247072, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "cdg_test_multi_karaoke_sampler.cue", MediaType = MediaType.CDG, Sectors = 329008, MD5 = "f09312ba25a479fb81912a2965babd22", LongMD5 = "f48603d11883593f45ec4a3824681e4e", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1736, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1737, End = 32448, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32449, End = 52371, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52372, End = 70003, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 70004, End = 99797, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 99798, End = 119460, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119461, End = 136698, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136699, End = 155489, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155490, End = 175525, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 175526, End = 206160, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 206161, End = 226149, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 226150, End = 244054, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 244055, End = 273664, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 273665, End = 293451, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 293452, End = 310410, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 310411, End = 329007, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "cooked_cdg_test_multi_karaoke_sampler.cue", MediaType = MediaType.CDG, Sectors = 329008, MD5 = "f09312ba25a479fb81912a2965babd22", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1736, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1737, End = 32448, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32449, End = 52371, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52372, End = 70003, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 70004, End = 99797, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 99798, End = 119460, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119461, End = 136698, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136699, End = 155489, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155490, End = 175525, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 175526, End = 206160, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 206161, End = 226149, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 226150, End = 244054, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 244055, End = 273664, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 273665, End = 293451, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 293452, End = 310410, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 310411, End = 329007, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "cooked_report_cdrom.cue", MediaType = MediaType.CDROM, Sectors = 254265, MD5 = "bf4bbec517101d0d6f45d2e4d50cb875", LongMD5 = "3d3f9cf7d1ba2249b1e7960071e5af46", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "cooked_report_cdrw.cue", MediaType = MediaType.CDROM, Sectors = 308224, MD5 = "1e55aa420ca8f8ea77d5b597c9cfc19b", LongMD5 = "3af5f943ddb9427d9c63a4ce3b704db9", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 308223, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "cooked_test_multi_karaoke_sampler.cue", MediaType = MediaType.CDROMXA, Sectors = 329008, MD5 = "f09312ba25a479fb81912a2965babd22", LongMD5 = "f48603d11883593f45ec4a3824681e4e", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1736, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1737, End = 32448, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32449, End = 52371, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52372, End = 70003, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 70004, End = 99797, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 99798, End = 119460, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119461, End = 136698, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136699, End = 155489, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155490, End = 175525, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 175526, End = 206160, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 206161, End = 226149, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 226150, End = 244054, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 244055, End = 273664, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 273665, End = 293451, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 293452, End = 310410, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 310411, End = 329007, Pregap = 150, Flags = 0 } } } }; } }