Skip to content

Commit

Permalink
Split filesystem tests by partitioning type, more.
Browse files Browse the repository at this point in the history
  • Loading branch information
claunia committed Mar 1, 2021
1 parent 32d6da8 commit 0cb1a06
Show file tree
Hide file tree
Showing 20 changed files with 1,014 additions and 737 deletions.
7 changes: 7 additions & 0 deletions .idea/.idea.Aaru/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions Aaru.Core/Filesystems.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@ public static class Filesystems
/// <param name="imagePlugin">Media image</param>
/// <param name="idPlugins">List of plugins recognizing the filesystem</param>
/// <param name="partition">Partition</param>
public static void Identify(IMediaImage imagePlugin, out List<string> idPlugins, Partition partition)
public static void Identify(IMediaImage imagePlugin, out List<string> idPlugins, Partition partition,
bool getGuid = false)
{
PluginBase plugins = GetPluginBase.Instance;

idPlugins = (from plugin in plugins.PluginsList.Values where plugin.Identify(imagePlugin, partition)
select plugin.Name.ToLower()).ToList();
select getGuid ? plugin.Id.ToString() : plugin.Name.ToLower()).ToList();
}
}
}
120 changes: 120 additions & 0 deletions Aaru.Tests/Filesystems/AFS/MBR.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
// /***************************************************************************
// Aaru Data Preservation Suite
// ----------------------------------------------------------------------------
//
// Filename : AFS.cs
// Author(s) : Natalia Portillo <[email protected]>
//
// 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.Collections.Generic;
using System.IO;
using Aaru.CommonTypes;
using Aaru.CommonTypes.Interfaces;
using Aaru.DiscImages;
using Aaru.Filesystems;
using Aaru.Filters;
using NUnit.Framework;

namespace Aaru.Tests.Filesystems.AFS
{
[TestFixture]
public class MBR
{
readonly string[] _testFiles =
{
"scoopenserver_5.0.7hw.aif"
};

readonly ulong[] _sectors =
{
1024000
};

readonly uint[] _sectorSize =
{
512
};

readonly long[] _clusters =
{
510048
};

readonly int[] _clusterSize =
{
1024
};

readonly string[] _volumeName =
{
"Volume label"
};

readonly string[] _volumeSerial =
{
null, null
};

readonly string[] _type =
{
"Acer Fast Filesystem"
};

[Test]
public void Test()
{
for(int i = 0; i < _testFiles.Length; i++)
{
string location = Path.Combine(Consts.TEST_FILES_ROOT, "Filesystems", "Acer File System (MBR)",
_testFiles[i]);

IFilter filter = new ZZZNoFilter();
filter.Open(location);
IMediaImage image = new AaruFormat();
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]);
List<Partition> partitions = Core.Partitions.GetAll(image);
IFilesystem fs = new SysVfs();
int part = -1;

for(int j = 0; j < partitions.Count; j++)
if(partitions[j].Type == "XENIX")
{
part = j;

break;
}

Assert.AreNotEqual(-1, part, $"Partition not found on {_testFiles[i]}");
Assert.AreEqual(true, fs.Identify(image, partitions[part]), _testFiles[i]);
fs.GetInformation(image, partitions[part], out _, null);
Assert.AreEqual(_clusters[i], fs.XmlFsType.Clusters, _testFiles[i]);
Assert.AreEqual(_clusterSize[i], fs.XmlFsType.ClusterSize, _testFiles[i]);
Assert.AreEqual(_type[i], fs.XmlFsType.Type, _testFiles[i]);
Assert.AreEqual(_volumeName[i], fs.XmlFsType.VolumeName, _testFiles[i]);
Assert.AreEqual(_volumeSerial[i], fs.XmlFsType.VolumeSerial, _testFiles[i]);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
// Copyright © 2011-2021 Natalia Portillo
// ****************************************************************************/

using System.Collections.Generic;
using System.IO;
using Aaru.CommonTypes;
using Aaru.CommonTypes.Interfaces;
Expand All @@ -35,10 +34,10 @@
using Aaru.Filters;
using NUnit.Framework;

namespace Aaru.Tests.Filesystems
namespace Aaru.Tests.Filesystems.AFS
{
[TestFixture]
public class Afs
public class Whole
{
readonly string[] _testFiles =
{
Expand Down Expand Up @@ -122,85 +121,4 @@ public void Test()
}
}
}

[TestFixture]
public class AfsMbr
{
readonly string[] _testFiles =
{
"scoopenserver_5.0.7hw.aif"
};

readonly ulong[] _sectors =
{
1024000
};

readonly uint[] _sectorSize =
{
512
};

readonly long[] _clusters =
{
510048
};

readonly int[] _clusterSize =
{
1024
};

readonly string[] _volumeName =
{
"Volume label"
};

readonly string[] _volumeSerial =
{
null, null
};

readonly string[] _type =
{
"Acer Fast Filesystem"
};

[Test]
public void Test()
{
for(int i = 0; i < _testFiles.Length; i++)
{
string location = Path.Combine(Consts.TEST_FILES_ROOT, "Filesystems", "Acer File System (MBR)",
_testFiles[i]);

IFilter filter = new ZZZNoFilter();
filter.Open(location);
IMediaImage image = new AaruFormat();
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]);
List<Partition> partitions = Core.Partitions.GetAll(image);
IFilesystem fs = new SysVfs();
int part = -1;

for(int j = 0; j < partitions.Count; j++)
if(partitions[j].Type == "XENIX")
{
part = j;

break;
}

Assert.AreNotEqual(-1, part, $"Partition not found on {_testFiles[i]}");
Assert.AreEqual(true, fs.Identify(image, partitions[part]), _testFiles[i]);
fs.GetInformation(image, partitions[part], out _, null);
Assert.AreEqual(_clusters[i], fs.XmlFsType.Clusters, _testFiles[i]);
Assert.AreEqual(_clusterSize[i], fs.XmlFsType.ClusterSize, _testFiles[i]);
Assert.AreEqual(_type[i], fs.XmlFsType.Type, _testFiles[i]);
Assert.AreEqual(_volumeName[i], fs.XmlFsType.VolumeName, _testFiles[i]);
Assert.AreEqual(_volumeSerial[i], fs.XmlFsType.VolumeSerial, _testFiles[i]);
}
}
}
}
2 changes: 1 addition & 1 deletion Aaru.Tests/Filesystems/Atheos.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
namespace Aaru.Tests.Filesystems
{
[TestFixture]
public class AtheosMbr
public class Atheos
{
readonly string[] _testFiles =
{
Expand Down
2 changes: 1 addition & 1 deletion Aaru.Tests/Filesystems/HAMMER.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
namespace Aaru.Tests.Filesystems
{
[TestFixture]
public class HammerMbr
public class Hammer
{
readonly string[] _testFiles =
{
Expand Down
2 changes: 1 addition & 1 deletion Aaru.Tests/Filesystems/HFS+/APM.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

// ReSharper disable CheckNamespace

namespace Aaru.Tests.Filesystems.HfsPlus
namespace Aaru.Tests.Filesystems.HFSPlus
{
[TestFixture]
public class APM
Expand Down
2 changes: 1 addition & 1 deletion Aaru.Tests/Filesystems/HFS+/GPT.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

// ReSharper disable CheckNamespace

namespace Aaru.Tests.Filesystems.HfsPlus
namespace Aaru.Tests.Filesystems.HFSPlus
{
[TestFixture]
public class GPT
Expand Down
2 changes: 1 addition & 1 deletion Aaru.Tests/Filesystems/HFS+/MBR.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

// ReSharper disable CheckNamespace

namespace Aaru.Tests.Filesystems.HfsPlus
namespace Aaru.Tests.Filesystems.HFSPlus
{
// Mising Darwin 6.0.2 wrapped
[TestFixture]
Expand Down
2 changes: 1 addition & 1 deletion Aaru.Tests/Filesystems/PFS3.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
namespace Aaru.Tests.Filesystems
{
[TestFixture]
public class Pfs3Rdb
public class Pfs3
{
readonly string[] _testFiles =
{
Expand Down
Loading

0 comments on commit 0cb1a06

Please sign in to comment.