Files
Aaru/Aaru.Tests/Filesystems/ISO9660.cs

471 lines
26 KiB
C#
Raw Normal View History

2017-09-28 12:53:50 +01:00
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : ISO9660.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
2017-09-28 12:53:50 +01:00
//
// Component : DiscImageChef unit testing.
2017-09-28 12:53:50 +01:00
//
// --[ 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/>.
//
// ----------------------------------------------------------------------------
2018-12-29 17:34:38 +00:00
// Copyright © 2011-2019 Natalia Portillo
2017-09-28 12:53:50 +01:00
// ****************************************************************************/
2017-09-28 12:53:50 +01:00
using System.IO;
2020-02-27 00:33:26 +00:00
using Aaru.CommonTypes;
using Aaru.CommonTypes.Interfaces;
using Aaru.DiscImages;
using Aaru.Filesystems.ISO9660;
using Aaru.Filters;
2017-09-28 12:53:50 +01:00
using NUnit.Framework;
2020-02-27 00:33:26 +00:00
namespace Aaru.Tests.Filesystems
2017-09-28 12:53:50 +01:00
{
[TestFixture]
public class Iso9660
2017-09-28 12:53:50 +01:00
{
2017-12-19 20:33:03 +00:00
readonly string[] testfiles =
{
2017-09-28 12:53:50 +01:00
// Toast 3.5.7
"toast_3.5.7_iso9660_apple.aif", "toast_3.5.7_iso9660_dos_apple.aif", "toast_3.5.7_iso9660_dos.aif",
"toast_3.5.7_iso9660_hfs.aif", "toast_3.5.7_iso9660.aif", "toast_3.5.7_iso9660_joliet_apple.aif",
"toast_3.5.7_iso9660_joliet.aif", "toast_3.5.7_iso9660_mac_apple.aif", "toast_3.5.7_iso9660_mac.aif",
"toast_3.5.7_iso9660_ver_apple.aif", "toast_3.5.7_iso9660_ver_dos_apple.aif",
"toast_3.5.7_iso9660_ver_dos.aif", "toast_3.5.7_iso9660_ver.aif",
"toast_3.5.7_iso9660_ver_joliet_apple.aif", "toast_3.5.7_iso9660_ver_joliet.aif", "toast_3.5.7_iso9660.aif",
2020-02-29 18:03:35 +00:00
2017-09-28 12:53:50 +01:00
// Toast 4.1.3
"toast_4.1.3_iso9660_hfs.aif",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
"toast_4.0.3_iso9660_apple.aif", "toast_4.0.3_iso9660_dos_apple.aif", "toast_4.0.3_iso9660_dos.aif",
"toast_4.0.3_iso9660_hfs.aif", "toast_4.0.3_iso9660.aif", "toast_4.0.3_iso9660_joliet_apple.aif",
"toast_4.0.3_iso9660_joliet.aif", "toast_4.0.3_iso9660_mac_apple.aif", "toast_4.0.3_iso9660_mac.aif",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// "toast_4.0.3_iso9660_apple_xa.iso.lz","toast_4.0.3_iso9660_dos_apple_xa.iso.lz",
// "toast_4.0.3_iso9660_dos_xa.iso.lz","toast_4.0.3_iso9660_joliet_apple_xa.iso.lz",
// "toast_4.0.3_iso9660_joliet_xa.iso.lz","toast_4.0.3_iso9660_mac_apple_xa.iso.lz",
// "toast_4.0.3_iso9660_mac_xa.iso.lz","toast_4.0.3_iso9660_xa.iso.lz",
// "toast_4.0.3_iso9660_hfs_xa.iso.lz",
// mkisofs
"mkisofs_apple_rockrige.aif", "mkisofs_apple_xa.aif", "mkisofs_hybrid.aif", "mkisofs_hybrid_nopart.aif",
"mkisofs_iso9660_level1_dirnest.aif", "mkisofs_iso9660_level1.aif", "mkisofs_iso9660_level2_dirnest.aif",
"mkisofs_iso9660_level2.aif", "mkisofs_iso9660_level3_dirnest.aif", "mkisofs_iso9660_level3.aif",
"mkisofs_iso9660_level4_dirnest.aif", "mkisofs_iso9660_level4.aif",
"mkisofs_iso9660_udf_hybrid_dirnest.aif", "mkisofs_iso9660_udf_hybrid.aif", "mkisofs_joliet.aif",
"mkisofs_joliet_level1.aif", "mkisofs_joliet_level2.aif", "mkisofs_joliet_level3.aif",
"mkisofs_joliet_violating.aif", "mkisofs_level1.aif", "mkisofs_level2.aif", "mkisofs_level3.aif",
"mkisofs_level4.aif", "mkisofs_rockridge_dirnest.aif", "mkisofs_rockridge.aif", "mkisofs_rockridge_old.aif",
"mkisofs_rockridge_rational.aif", "mkisofs_udf.aif", "mkisofs_violating.aif", "mkisofs_xa.aif",
"mkisofs_zisofs.aif", "mkisofs_zisofs_rockridge.aif",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
"neromax_iso_mode1_apple.aif", "neromax_iso_mode1_joliet.aif", "neromax_iso_mode1_level1.aif",
"neromax_iso_mode1_level2.aif",
// Nero MAX (CD-ROM XA)
// "neromax_iso_mode2_apple.iso.lz", "neromax_iso_mode2_joliet.iso.lz",
// "neromax_iso_mode2_level1.iso.lz", "neromax_iso_mode2_level2.iso.lz",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
"xorriso_hybrid.aif", "xorriso_joliet.aif", "xorriso_joliet_utf.aif", "xorriso_joliet_violating.aif",
"xorriso_level1.aif", "xorriso_level2.aif", "xorriso_level3.aif", "xorriso_level4.aif",
"xorriso_rockridge.aif", "xorriso_violating.aif", "xorriso_zisofs.aif", "xorriso_zisofs_rockridge.aif"
2017-09-28 12:53:50 +01:00
};
2017-12-19 20:33:03 +00:00
readonly MediaType[] mediatypes =
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
MediaType.CD, MediaType.CD,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
MediaType.CD,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
MediaType.CD, MediaType.CD,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
// MediaType.CD, MediaType.CD,
// mkisofs
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
2017-12-19 20:33:03 +00:00
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
2019-07-13 13:51:44 +01:00
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
// Nero MAX (CD-ROM XA)
// MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD,
MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD, MediaType.CD
2017-09-28 12:53:50 +01:00
};
2017-12-19 20:33:03 +00:00
readonly ulong[] sectors =
2018-12-31 13:17:27 +00:00
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
946, 946, 300, 1880, 300, 951, 300, 946, 300, 946, 946, 300, 300, 951, 300, 300,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
1882,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
305, 305, 300, 954, 300, 323, 300, 305, 300,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// 10, 11, 12, 13, 14, 15, 16, 17, 18,
// mkisofs
3662, 3606, 3800, 3800, 2983, 2531, 2983, 2531, 2983, 2531, 2894, 2894, 106589, 105241, 5055, 3651, 3651,
3651, 3651, 3637, 3637, 3637, 3689, 7481, 7487, 3693, 7487, 3925, 3637, 3637, 3637, 3693,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
389, 417, 257, 266,
// Nero MAX (CD-ROM XA)
// 55, 56, 57, 58,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70
2018-12-31 13:17:27 +00:00
};
2017-09-28 12:53:50 +01:00
2017-12-19 20:33:03 +00:00
readonly uint[] sectorsize =
2018-12-31 13:17:27 +00:00
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
// mkisofs
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
2048, 2048, 2048, 2048,
// Nero MAX (CD-ROM XA)
// 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048
2018-12-31 13:17:27 +00:00
};
2017-09-28 12:53:50 +01:00
2017-12-19 20:33:03 +00:00
readonly long[] clusters =
2018-12-31 13:17:27 +00:00
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
946, 946, 244, 946, 244, 951, 249, 946, 244, 946, 946, 244, 244, 951, 249, 244,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
948,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
305, 305, 220, 954, 220, 323, 234, 305, 220,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// 10, 11, 12, 13, 14, 15, 16, 17, 18,
// mkisofs
3662, 3606, 3800, 3800, 2983, 2531, 2983, 2531, 2983, 2531, 2894, 2894, 106589, 105241, 5055, 3651, 3651,
3651, 3651, 3637, 3637, 3637, 3689, 7481, 7487, 3693, 7487, 3925, 3637, 3637, 3637, 3693,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
389, 417, 257, 266,
// Nero MAX (CD-ROM XA)
// 55, 56, 57, 58,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70
2018-12-31 13:17:27 +00:00
};
2017-09-28 12:53:50 +01:00
2017-12-19 20:33:03 +00:00
readonly int[] clustersize =
2018-12-31 13:17:27 +00:00
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
// mkisofs
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
2048, 2048, 2048, 2048,
// Nero MAX (CD-ROM XA)
// 2048, 2048, 2048, 2048,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048
2018-12-31 13:17:27 +00:00
};
2017-09-28 12:53:50 +01:00
2017-12-19 20:33:03 +00:00
readonly string[] volumename =
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
2017-12-19 20:33:03 +00:00
"DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "Disk utils", "Disk utils",
"Disk utils", "Disk utils", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "Disk utils",
2019-07-13 13:51:44 +01:00
"Disk utils", "DISK_UTILS",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
"DISK_UTILS",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
"UNTITLED_CD", "UNTITLED_CD", "UNTITLED_CD", "Untitled CD", "UNTITLED_CD", "Untitled CD", "Untitled CD",
"Untitled CD", "Untitled CD",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// "UNTITLED_CD", "UNTITLED_CD", "UNTITLED_CD", "UNTITLED_CD", "UNTITLED_CD", "UNTITLED_CD", "UNTITLED_CD",
// "UNTITLED_CD", "UNTITLED_CD",
// mkisofs
"test", "test", "test", "test", "CDROM", "CDROM", "CDROM", "CDROM", "CDROM", "CDROM", "CDROM", "CDROM",
"CDROM", "CDROM", "CDROM", "test", "test", "test", "test", "test", "test", "test", "test", "CDROM", "CDROM",
"test", "CDROM", "test", "test", "test", "test", "test",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
"Root", "Root", "Root", "Root",
// Nero MAX (CD-ROM XA)
// "Root", "Root", "Root", "Root",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
"DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS",
"DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS", "DISK_UTILS"
2017-09-28 12:53:50 +01:00
};
2017-12-19 20:33:03 +00:00
readonly string[] volumeserial =
2018-12-31 13:17:27 +00:00
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
null,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
null, null, null, null, null, null, null, null, null, null,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// null, null, null, null, null, null, null, null,
// mkisofs
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
null, null, null, null,
// Nero MAX (CD-ROM XA)
// null, null, null, null,
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
null, null, null, null, null, null, null, null, null, null, null, null
2018-12-31 13:17:27 +00:00
};
2017-09-28 12:53:50 +01:00
2017-12-19 20:33:03 +00:00
readonly string[] sysid =
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
"APPLE COMPUTER, INC., TYPE: 0002",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
// "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
// "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
// mkisofs
"LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX",
"LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX",
"LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX", "LINUX",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
"", "", "", "",
// Nero MAX (CD-ROM XA)
// "", "", "", "",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002",
"APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002", "APPLE COMPUTER, INC., TYPE: 0002"
2017-09-28 12:53:50 +01:00
};
2017-12-19 20:33:03 +00:00
readonly string[] appid =
{
2019-07-13 13:51:44 +01:00
// Toast 3.5.7
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.1.3
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
2017-12-19 20:33:03 +00:00
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Toast 4.0.3 (CD-ROM XA)
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// "TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
// mkisofs
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
"MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// Nero MAX
"", "", "", "",
// Nero MAX (CD-ROM XA)
// "", "", "", "",
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
// XorrISO
2017-12-19 20:33:03 +00:00
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY",
2017-12-21 02:52:12 +00:00
"TOAST ISO 9660 BUILDER COPYRIGHT (C) 1997 ADAPTEC, INC. - HAVE A NICE DAY"
2017-09-28 12:53:50 +01:00
};
[Test]
public void Test()
{
for(int i = 0; i < testfiles.Length; i++)
{
2020-07-08 20:02:59 +01:00
string location = Path.Combine(Consts.TestFilesRoot, "Filesystems", "ISO9660", testfiles[i]);
IFilter filter = new ZZZNoFilter();
2017-09-28 12:53:50 +01:00
filter.Open(location);
IMediaImage image = new AaruFormat();
2020-02-29 18:03:35 +00:00
Assert.AreEqual(true, image.Open(filter), $"{testfiles[i]}: Open()");
Assert.AreEqual(mediatypes[i], image.Info.MediaType, $"{testfiles[i]}: MediaType");
Assert.AreEqual(sectors[i], image.Info.Sectors, $"{testfiles[i]}: Sectors");
2019-07-13 13:51:44 +01:00
Assert.AreEqual(sectorsize[i], image.Info.SectorSize, $"{testfiles[i]}: SectorSize");
IFilesystem fs = new ISO9660();
2020-02-29 18:03:35 +00:00
var wholePart = new Partition
2017-09-28 12:53:50 +01:00
{
2020-02-29 18:03:35 +00:00
Name = "Whole device", Length = image.Info.Sectors,
Size = image.Info.Sectors * image.Info.SectorSize
2017-09-28 12:53:50 +01:00
};
2020-02-29 18:03:35 +00:00
2019-07-13 13:51:44 +01:00
Assert.AreEqual(true, fs.Identify(image, wholePart), $"{testfiles[i]}: Identify()");
fs.GetInformation(image, wholePart, out _, null);
2020-02-29 18:03:35 +00:00
Assert.AreEqual(clusters[i], fs.XmlFsType.Clusters, $"{testfiles[i]}: Clusters");
Assert.AreEqual(clustersize[i], fs.XmlFsType.ClusterSize, $"{testfiles[i]}: ClusterSize");
Assert.AreEqual("ISO9660", fs.XmlFsType.Type, $"{testfiles[i]}: Type");
Assert.AreEqual(volumename[i], fs.XmlFsType.VolumeName, $"{testfiles[i]}: VolumeName");
2019-07-13 13:51:44 +01:00
Assert.AreEqual(volumeserial[i], fs.XmlFsType.VolumeSerial, $"{testfiles[i]}: VolumeSerial");
2020-02-29 18:03:35 +00:00
Assert.AreEqual(sysid[i], fs.XmlFsType.SystemIdentifier, $"{testfiles[i]}: SystemIdentifier");
Assert.AreEqual(appid[i], fs.XmlFsType.ApplicationIdentifier, $"{testfiles[i]}: ApplicationIdentifier");
2017-09-28 12:53:50 +01:00
}
}
}
2017-12-19 20:33:03 +00:00
}