in src/Test.FunctionalTests.BinSkim.Rules/RuleTests.cs [342:464]
private HashSet<string> GetTestFilesMatchingConditions(HashSet<string> metadataConditions)
{
string testFilesDirectory = Path.Combine(Environment.CurrentDirectory, "BaselineTestsData");
Assert.True(Directory.Exists(testFilesDirectory));
var result = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
if (metadataConditions == null)
{
return result;
}
if (metadataConditions.Contains(MetadataConditions.ImageIsNotExe))
{
result.Add(Path.Combine(testFilesDirectory, "Native_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "ManagedResourcesOnly.dll"));
result.Add(Path.Combine(testFilesDirectory, "Managed_x86_VS2015_FSharp.dll"));
}
if (metadataConditions.Contains(MetadataConditions.CouldNotLoadPdb))
{
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2013_NoPdb.exe"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x86_VS2013_MissingPdb.dll"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIs64BitBinary))
{
result.Add(Path.Combine(testFilesDirectory, "Native_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "Managed_x64_VS2015_FSharp.exe.exe"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsILOnlyAssembly))
{
result.Add(Path.Combine(testFilesDirectory, "Managed_x86_VS2013_Wpf.exe"));
result.Add(Path.Combine(testFilesDirectory, "Managed_x86_VS2015_FSharp.dll"));
result.Add(Path.Combine(testFilesDirectory, "Managed_x64_VS2015_FSharp.exe.exe"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsMixedModeBinary))
{
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2013_NoPdb.exe"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x86_VS2013_Default.exe"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x86_VS2013_MissingPdb.dll"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2015_Default.exe"));
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x86_VS2015_Default.exe"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsKernelModeBinary))
{
result.Add(Path.Combine(testFilesDirectory, "Native_x64_VS2013_KernelModeDriver.sys"));
result.Add(Path.Combine(testFilesDirectory, "Native_x86_VS2013_KernelModeDriver.sys"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsInteropAssembly))
{
result.Add(Path.Combine(testFilesDirectory, "ManagedInteropAssemblyForAtlTestLibrary.dll"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsResourceOnlyAssembly))
{
result.Add(Path.Combine(testFilesDirectory, "ManagedResourcesOnly.dll"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsNot32BitBinary))
{
result.Add(Path.Combine(testFilesDirectory, "MixedMode_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "Native_x64_VS2013_Default.dll"));
result.Add(Path.Combine(testFilesDirectory, "Uwp_ARM_VS2015_DefaultBlankApp.dll"));
result.Add(Path.Combine(testFilesDirectory, "Managed_x64_VS2015_FSharp.exe"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsNot64BitBinary))
{
result.Add(Path.Combine(testFilesDirectory, "Managed_x86_VS2013_Wpf.exe"));
result.Add(Path.Combine(testFilesDirectory, "Native_x86_VS2013_Default.exe"));
result.Add(Path.Combine(testFilesDirectory, "Uwp_ARM_VS2015_DefaultBlankApp.dll"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsPreVersion7WindowsCEBinary))
{
// TODO need test case
}
if (metadataConditions.Contains(MetadataConditions.ImageIsResourceOnlyBinary))
{
result.Add(Path.Combine(testFilesDirectory, "ManagedResourcesOnly.dll"));
result.Add(Path.Combine(testFilesDirectory, "Native_x86_VS2013_ResourceOnly.dll"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsXBoxBinary))
{
// TODO need test case
}
if (metadataConditions.Contains(MetadataConditions.ImageIsDotNetNativeBinary))
{
result.Add(Path.Combine(testFilesDirectory, "Uwp_x86_VS2015_DefaultBlankApp.dll"));
result.Add(Path.Combine(testFilesDirectory, "Uwp_x64_VS2015_DefaultBlankApp.dll"));
result.Add(Path.Combine(testFilesDirectory, "Uwp_ARM_VS2015_DefaultBlankApp.dll"));
result.Add(Path.Combine(testFilesDirectory, "DotnetNative_x86_VS2019_UniversalApp.dll"));
result.Add(Path.Combine(testFilesDirectory, "DotnetNative_x86_VS2019_UniversalApp.exe"));
result.Add(Path.Combine(testFilesDirectory, "Managed_x86_VS2019_UniversalApp_Release.exe"));
result.Add(Path.Combine(testFilesDirectory, "Native_ARM64_VS2019_UniversalApp.exe"));
result.Add(Path.Combine(testFilesDirectory, "Native_ARM_VS2019_UniversalApp.exe"));
result.Add(Path.Combine(testFilesDirectory, "Native_x64_VS2019_UniversalApp.exe"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsWixBinary))
{
result.Add(Path.Combine(testFilesDirectory, "Wix_3.11.1_VS2017_Bootstrapper.exe"));
}
if (metadataConditions.Contains(MetadataConditions.ImageIsDotNetCoreBootstrapExe))
{
result.Add(Path.Combine(testFilesDirectory, "DotnetNative_x86_VS2019_UniversalApp.exe"));
}
return result;
}