Imported Upstream version 6.4.0.137

Former-commit-id: 943baa9f16a098c33e129777827f3a9d20da00d6
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-07-26 19:53:28 +00:00
parent e9207cf623
commit ef583813eb
2712 changed files with 74169 additions and 40587 deletions

View File

@@ -1,45 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="Current">
<Import Project="..\Mono.Cecil.Tests.props" />
<PropertyGroup>
<ProjectGuid>{A47B1F49-A81A-43E8-BE6B-DD28AF2C4055}</ProjectGuid>
<RootNamespace>Mono.Cecil.Tests</RootNamespace>
<AssemblyName>Mono.Cecil.Tests</AssemblyName>
<TargetFrameworks>netcoreapp2.1;net40</TargetFrameworks>
</PropertyGroup>
<ItemGroup Condition="$(NetStandard)">
<PackageReference Include="System.Reflection.TypeExtensions">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Diagnostics.Process">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Diagnostics.StackTrace">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Diagnostics.FileVersionInfo">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Runtime.Loader">
<Version>4.3.0</Version>
</PackageReference>
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">
<PackageReference Include="Microsoft.CodeAnalysis.CSharp">
<Version>2.3.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic">
<Version>2.3.2</Version>
<Version>2.10.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Mono.Cecil.csproj">
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\symbols\mdb\Mono.Cecil.Mdb.csproj">
<Project>{8559dd7f-a16f-46d0-a05a-9139faeba8fd}</Project>
<Name>Mono.Cecil.Mdb</Name>
</ProjectReference>
<ProjectReference Include="..\symbols\pdb\Mono.Cecil.Pdb.csproj">
<Project>{63e6915c-7ea4-4d76-ab28-0d7191eea626}</Project>
<Name>Mono.Cecil.Pdb</Name>
</ProjectReference>
</ItemGroup>
@@ -50,5 +26,4 @@
<ItemGroup>
<None Include="Resources\**\*" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition="!$(NetStandard)" />
</Project>
</Project>

View File

@@ -1,11 +1,24 @@
using System;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using Mono.Cecil.Cil;
using NUnit.Framework;
using Mono.Cecil.PE;
#if !NET_CORE
namespace System.Runtime.CompilerServices {
[AttributeUsage (AttributeTargets.Parameter, Inherited = false)]
public sealed class CallerFilePathAttribute : Attribute {
}
[AttributeUsage (AttributeTargets.Parameter, Inherited = false)]
public sealed class CallerMemberNameAttribute : Attribute {
}
}
#endif
namespace Mono.Cecil.Tests {
public abstract class BaseTestFixture {
@@ -16,49 +29,61 @@ namespace Mono.Cecil.Tests {
Assert.Ignore ();
}
public static string GetResourcePath (string name, Assembly assembly)
protected static void IgnoreOnCoreClr ()
{
return Path.Combine (FindResourcesDirectory (assembly), name);
if (Platform.OnCoreClr)
Assert.Ignore ();
}
public static string GetAssemblyResourcePath (string name, Assembly assembly)
protected static void OnlyOnWindows ()
{
return GetResourcePath (Path.Combine ("assemblies", name), assembly);
if (!Platform.OnWindows)
Assert.Ignore ();
}
public static string GetCSharpResourcePath (string name, Assembly assembly)
public static string GetResourcePath (string name, string sourceFilePath)
{
return GetResourcePath (Path.Combine ("cs", name), assembly);
return Path.Combine (FindResourcesDirectory (sourceFilePath), name);
}
public static string GetILResourcePath (string name, Assembly assembly)
public static string GetAssemblyResourcePath (string name, [CallerFilePath] string sourceFilePath = "")
{
return GetResourcePath (Path.Combine ("il", name), assembly);
return GetResourcePath (Path.Combine ("assemblies", name), sourceFilePath);
}
public ModuleDefinition GetResourceModule (string name)
public static string GetCSharpResourcePath (string name, [CallerFilePath] string sourceFilePath = "")
{
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, GetType ().Assembly));
return GetResourcePath (Path.Combine ("cs", name), sourceFilePath);
}
public ModuleDefinition GetResourceModule (string name, ReaderParameters parameters)
public static string GetILResourcePath (string name, [CallerFilePath] string sourceFilePath = "")
{
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, GetType ().Assembly), parameters);
return GetResourcePath (Path.Combine ("il", name), sourceFilePath);
}
public ModuleDefinition GetResourceModule (string name, ReadingMode mode)
public ModuleDefinition GetResourceModule (string name, [CallerFilePath] string sourceFilePath = "")
{
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, GetType ().Assembly), new ReaderParameters (mode));
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, sourceFilePath));
}
public Stream GetResourceStream (string name)
public ModuleDefinition GetResourceModule (string name, ReaderParameters parameters, [CallerFilePath] string sourceFilePath = "")
{
return new FileStream (GetAssemblyResourcePath (name, GetType ().Assembly), FileMode.Open, FileAccess.Read);
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, sourceFilePath), parameters);
}
internal Image GetResourceImage (string name)
public ModuleDefinition GetResourceModule (string name, ReadingMode mode, [CallerFilePath] string sourceFilePath = "")
{
var file = new FileStream (GetAssemblyResourcePath (name, GetType ().Assembly), FileMode.Open, FileAccess.Read);
return ModuleDefinition.ReadModule (GetAssemblyResourcePath (name, sourceFilePath), new ReaderParameters (mode));
}
public Stream GetResourceStream (string name, [CallerFilePath] string sourceFilePath = "")
{
return new FileStream (GetAssemblyResourcePath (name, sourceFilePath), FileMode.Open, FileAccess.Read);
}
internal Image GetResourceImage (string name, [CallerFilePath] string sourceFilePath = "")
{
var file = new FileStream (GetAssemblyResourcePath (name, sourceFilePath), FileMode.Open, FileAccess.Read);
return ImageReader.ReadImage (Disposable.Owned (file as Stream), file.Name);
}
@@ -72,9 +97,9 @@ namespace Mono.Cecil.Tests {
return ModuleDefinition.ReadModule (GetType ().Module.FullyQualifiedName, parameters);
}
public static string FindResourcesDirectory (Assembly assembly)
public static string FindResourcesDirectory (string sourceFilePath)
{
var path = Path.GetDirectoryName (new Uri (assembly.CodeBase).LocalPath);
var path = Path.GetDirectoryName (sourceFilePath);
while (!Directory.Exists (Path.Combine (path, "Resources"))) {
var old = path;
path = Path.GetDirectoryName (path);
@@ -97,19 +122,19 @@ namespace Mono.Cecil.Tests {
return str.Trim ().Replace ("\r\n", "\n");
}
public static void TestModule (string file, Action<ModuleDefinition> test, bool verify = true, bool readOnly = false, Type symbolReaderProvider = null, Type symbolWriterProvider = null, IAssemblyResolver assemblyResolver = null, bool applyWindowsRuntimeProjections = false)
public static void TestModule (string file, Action<ModuleDefinition> test, bool verify = true, bool readOnly = false, Type symbolReaderProvider = null, Type symbolWriterProvider = null, IAssemblyResolver assemblyResolver = null, bool applyWindowsRuntimeProjections = false, [CallerFilePath] string sourceFilePath = "")
{
Run (new ModuleTestCase (file, test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections));
Run (new ModuleTestCase (file, test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections, sourceFilePath));
}
public static void TestCSharp (string file, Action<ModuleDefinition> test, bool verify = true, bool readOnly = false, Type symbolReaderProvider = null, Type symbolWriterProvider = null, IAssemblyResolver assemblyResolver = null, bool applyWindowsRuntimeProjections = false)
public static void TestCSharp (string file, Action<ModuleDefinition> test, bool verify = true, bool readOnly = false, Type symbolReaderProvider = null, Type symbolWriterProvider = null, IAssemblyResolver assemblyResolver = null, bool applyWindowsRuntimeProjections = false, [CallerFilePath] string sourceFilePath = "")
{
Run (new CSharpTestCase (file, test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections));
Run (new CSharpTestCase (file, test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections, sourceFilePath));
}
public static void TestIL (string file, Action<ModuleDefinition> test, bool verify = true, bool readOnly = false, Type symbolReaderProvider = null, Type symbolWriterProvider = null, IAssemblyResolver assemblyResolver = null, bool applyWindowsRuntimeProjections = false)
public static void TestIL (string file, Action<ModuleDefinition> test, bool verify = true, bool readOnly = false, Type symbolReaderProvider = null, Type symbolWriterProvider = null, IAssemblyResolver assemblyResolver = null, bool applyWindowsRuntimeProjections = false, [CallerFilePath] string sourceFilePath = "")
{
Run (new ILTestCase (file, test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections));
Run (new ILTestCase (file, test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections, sourceFilePath));
}
static void Run (TestCase testCase)
@@ -123,13 +148,11 @@ namespace Mono.Cecil.Tests {
if (testCase.ReadOnly)
return;
#if !READ_ONLY
using (var runner = new TestRunner (testCase, TestCaseType.WriteFromDeferred))
runner.RunTest ();
using (var runner = new TestRunner (testCase, TestCaseType.WriteFromImmediate))
runner.RunTest ();
#endif
}
}
@@ -142,12 +165,11 @@ namespace Mono.Cecil.Tests {
public readonly IAssemblyResolver AssemblyResolver;
public readonly Action<ModuleDefinition> Test;
public readonly bool ApplyWindowsRuntimeProjections;
public readonly string SourceFilePath;
public abstract string ModuleLocation { get; }
protected Assembly Assembly { get { return Test.Method.Module.Assembly; } }
protected TestCase (Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections)
protected TestCase (Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections, string sourceFilePath = "")
{
Test = test;
Verify = verify;
@@ -156,6 +178,7 @@ namespace Mono.Cecil.Tests {
SymbolWriterProvider = symbolWriterProvider;
AssemblyResolver = assemblyResolver;
ApplyWindowsRuntimeProjections = applyWindowsRuntimeProjections;
SourceFilePath = sourceFilePath;
}
}
@@ -163,15 +186,15 @@ namespace Mono.Cecil.Tests {
public readonly string Module;
public ModuleTestCase (string module, Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections)
: base (test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections)
public ModuleTestCase (string module, Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections, string sourceFilePath = "")
: base (test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections, sourceFilePath)
{
Module = module;
}
public override string ModuleLocation
{
get { return BaseTestFixture.GetAssemblyResourcePath (Module, Assembly); }
get { return BaseTestFixture.GetAssemblyResourcePath (Module, SourceFilePath); }
}
}
@@ -179,8 +202,8 @@ namespace Mono.Cecil.Tests {
public readonly string File;
public CSharpTestCase (string file, Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections)
: base (test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections)
public CSharpTestCase (string file, Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections, string sourceFilePath = "")
: base (test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections, sourceFilePath)
{
File = file;
}
@@ -189,7 +212,7 @@ namespace Mono.Cecil.Tests {
{
get
{
return CompilationService.CompileResource (BaseTestFixture.GetCSharpResourcePath (File, Assembly));
return CompilationService.CompileResource (BaseTestFixture.GetCSharpResourcePath (File, SourceFilePath));
}
}
}
@@ -198,8 +221,8 @@ namespace Mono.Cecil.Tests {
public readonly string File;
public ILTestCase (string file, Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections)
: base (test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections)
public ILTestCase (string file, Action<ModuleDefinition> test, bool verify, bool readOnly, Type symbolReaderProvider, Type symbolWriterProvider, IAssemblyResolver assemblyResolver, bool applyWindowsRuntimeProjections, string sourceFilePath = "")
: base (test, verify, readOnly, symbolReaderProvider, symbolWriterProvider, assemblyResolver, applyWindowsRuntimeProjections, sourceFilePath)
{
File = file;
}
@@ -208,7 +231,7 @@ namespace Mono.Cecil.Tests {
{
get
{
return CompilationService.CompileResource (BaseTestFixture.GetILResourcePath (File, Assembly)); ;
return CompilationService.CompileResource (BaseTestFixture.GetILResourcePath (File, SourceFilePath)); ;
}
}
}
@@ -244,14 +267,12 @@ namespace Mono.Cecil.Tests {
case TestCaseType.ReadDeferred:
parameters.ReadingMode = ReadingMode.Deferred;
return ModuleDefinition.ReadModule (location, parameters);
#if !READ_ONLY
case TestCaseType.WriteFromImmediate:
parameters.ReadingMode = ReadingMode.Immediate;
return RoundTrip (location, parameters, "cecil-irt");
case TestCaseType.WriteFromDeferred:
parameters.ReadingMode = ReadingMode.Deferred;
return RoundTrip (location, parameters, "cecil-drt");
#endif
default:
return null;
}
@@ -265,7 +286,6 @@ namespace Mono.Cecil.Tests {
return (ISymbolReaderProvider) Activator.CreateInstance (test_case.SymbolReaderProvider);
}
#if !READ_ONLY
ISymbolWriterProvider GetSymbolWriterProvider ()
{
if (test_case.SymbolReaderProvider == null)
@@ -273,7 +293,6 @@ namespace Mono.Cecil.Tests {
return (ISymbolWriterProvider) Activator.CreateInstance (test_case.SymbolWriterProvider);
}
#endif
IAssemblyResolver GetAssemblyResolver ()
{
@@ -286,7 +305,6 @@ namespace Mono.Cecil.Tests {
return test_resolver;
}
#if !READ_ONLY
ModuleDefinition RoundTrip (string location, ReaderParameters reader_parameters, string folder)
{
var rt_folder = Path.Combine (Path.GetTempPath (), folder);
@@ -309,7 +327,7 @@ namespace Mono.Cecil.Tests {
return ModuleDefinition.ReadModule (rt_module, reader_parameters);
}
#endif
public void RunTest ()
{
var module = GetModule ();
@@ -333,9 +351,7 @@ namespace Mono.Cecil.Tests {
enum TestCaseType {
ReadImmediate,
ReadDeferred,
#if !READ_ONLY
WriteFromImmediate,
WriteFromDeferred,
#endif
}
}

View File

@@ -1,10 +0,0 @@
#if NET_3_5 || NET_4_0
namespace System.Runtime.CompilerServices {
[AttributeUsage (AttributeTargets.Parameter, Inherited = false)]
public sealed class CallerMemberNameAttribute : Attribute {
public CallerMemberNameAttribute ()
{
}
}
}
#endif

View File

@@ -11,7 +11,6 @@ using NUnit.Framework;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Emit;
using CS = Microsoft.CodeAnalysis.CSharp;
using VB = Microsoft.CodeAnalysis.VisualBasic;
#endif
namespace Mono.Cecil.Tests {
@@ -37,6 +36,14 @@ namespace Mono.Cecil.Tests {
get { return TryGetType ("System.Runtime.Loader.AssemblyLoadContext, System.Runtime.Loader, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") != null; }
}
public static bool OnWindows {
get { return Environment.OSVersion.Platform == PlatformID.Win32NT; }
}
public static bool HasNativePdbSupport {
get { return OnWindows && !OnMono; }
}
static Type TryGetType (string assemblyQualifiedName)
{
try {
@@ -90,7 +97,7 @@ namespace Mono.Cecil.Tests {
if (extension == ".il")
return IlasmCompilationService.Instance.Compile (name);
if (extension == ".cs" || extension == ".vb")
if (extension == ".cs")
#if NET_CORE
return RoslynCompilationService.Instance.Compile (name);
#else
@@ -182,14 +189,6 @@ namespace Mono.Cecil.Tests {
new [] { CS.SyntaxFactory.ParseSyntaxTree (source) },
references,
new CS.CSharpCompilationOptions (OutputKind.DynamicallyLinkedLibrary, optimizationLevel: OptimizationLevel.Release));
case ".vb":
return VB.VisualBasicCompilation.Create (
assemblyName,
new [] { VB.SyntaxFactory.ParseSyntaxTree (source) },
references,
new VB.VisualBasicCompilationOptions (OutputKind.DynamicallyLinkedLibrary, optimizationLevel: OptimizationLevel.Release));
default:
throw new NotSupportedException ();
}
@@ -320,7 +319,7 @@ namespace Mono.Cecil.Tests {
public static ProcessOutput ILAsm (string source, string output)
{
var ilasm = "ilasm";
if (!Platform.OnMono)
if (Platform.OnWindows)
ilasm = NetFrameworkTool ("ilasm");
return RunProcess (ilasm, "/nologo", "/dll", "/out:" + Quote (output), Quote (source));

View File

@@ -437,7 +437,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void InterfaceImplementation ()
{
IgnoreOnMono();
OnlyOnWindows (); // Mono's ilasm doesn't support .interfaceimpl
TestIL ("ca-iface-impl.il", module => {
var type = module.GetType ("FooType");
@@ -493,7 +493,6 @@ namespace Mono.Cecil.Tests {
});
}
#if !READ_ONLY
[Test]
public void DefineCustomAttributeFromBlob ()
{
@@ -531,7 +530,7 @@ namespace Mono.Cecil.Tests {
module.Dispose ();
}
#endif
static void AssertCustomAttribute (string expected, CustomAttribute attribute)
{
Assert.AreEqual (expected, PrettyPrint (attribute));

View File

@@ -207,7 +207,6 @@ namespace Mono.Cecil.Tests {
});
}
#if !READ_ONLY
[Test]
public void ExternalPdbDeterministicAssembly ()
{
@@ -236,6 +235,5 @@ namespace Mono.Cecil.Tests {
Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.EmbeddedPortablePdb));
}, symbolReaderProvider: typeof (EmbeddedPortablePdbReaderProvider), symbolWriterProvider: typeof (EmbeddedPortablePdbWriterProvider));
}
#endif
}
}

View File

@@ -1,4 +1,3 @@
#if !READ_ONLY
using System;
using System.Collections.Generic;
using System.IO;
@@ -361,8 +360,9 @@ namespace Mono.Cecil.Tests {
static ModuleDefinition CreateModule (string name)
{
return ModuleDefinition.CreateModule (name, ModuleKind.Dll);
var resolver = new DefaultAssemblyResolver ();
resolver.AddSearchDirectory (Path.GetDirectoryName (typeof (ImportCecilTests).Assembly.Location));
return ModuleDefinition.CreateModule (name, new ModuleParameters { Kind = ModuleKind.Dll, AssemblyResolver = resolver });
}
}
}
#endif

View File

@@ -1,4 +1,3 @@
#if !READ_ONLY
using System;
using System.Collections.Generic;
using System.IO;
@@ -427,4 +426,3 @@ namespace Mono.Cecil.Tests {
}
}
}
#endif

View File

@@ -284,7 +284,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void BranchOutsideMethod ()
{
IgnoreOnMono ();
OnlyOnWindows (); // Mono's ilasm doesn't support branching outside of method
TestIL ("branch-out.il", module => {
var type = module.GetType ("Foo");

View File

@@ -12,7 +12,6 @@ namespace Mono.Cecil.Tests {
[TestFixture]
public class ModuleTests : BaseTestFixture {
#if !READ_ONLY
[Test]
public void CreateModuleEscapesAssemblyName ()
{
@@ -22,7 +21,6 @@ namespace Mono.Cecil.Tests {
module = ModuleDefinition.CreateModule ("Test.exe", ModuleKind.Console);
Assert.AreEqual ("Test", module.Assembly.Name.Name);
}
#endif
[Test]
public void SingleModule ()
@@ -49,8 +47,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void MultiModules ()
{
if (Platform.OnCoreClr)
return;
IgnoreOnCoreClr ();
TestModule("mma.exe", module => {
var assembly = module.Assembly;
@@ -160,8 +157,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void ExportedTypeFromNetModule ()
{
if (Platform.OnCoreClr)
return;
IgnoreOnCoreClr ();
TestModule ("mma.exe", module => {
Assert.IsTrue (module.HasExportedTypes);
@@ -215,6 +211,8 @@ namespace Mono.Cecil.Tests {
[Test]
public void Win32FileVersion ()
{
IgnoreOnCoreClr ();
TestModule ("libhello.dll", module => {
var version = FileVersionInfo.GetVersionInfo (module.FileName);
@@ -282,7 +280,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void OwnedStreamModuleFileName ()
{
var path = GetAssemblyResourcePath ("hello.exe", GetType ().Assembly);
var path = GetAssemblyResourcePath ("hello.exe");
using (var file = File.Open (path, FileMode.Open))
{
using (var module = ModuleDefinition.ReadModule (file))
@@ -294,7 +292,6 @@ namespace Mono.Cecil.Tests {
}
}
#if !READ_ONLY
[Test]
public void ReadAndWriteFile ()
{
@@ -327,6 +324,5 @@ namespace Mono.Cecil.Tests {
// Ensure you can still delete the file
File.Delete (path);
}
#endif
}
}

View File

@@ -1,4 +1,3 @@
#if !READ_ONLY
using System;
using System.IO;
using System.Linq;
@@ -672,4 +671,3 @@ class Program
}
}
}
#endif

View File

@@ -134,7 +134,7 @@ namespace Mono.Cecil.Tests {
var parameters = new ReaderParameters { AssemblyResolver = resolver };
var types = ModuleDefinition.ReadModule (
CompilationService.CompileResource (GetCSharpResourcePath ("CustomAttributes.cs", typeof (ResolveTests).Assembly)),
CompilationService.CompileResource (GetCSharpResourcePath ("CustomAttributes.cs")),
parameters);
resolver.Register (types.Assembly);
@@ -155,7 +155,7 @@ namespace Mono.Cecil.Tests {
var parameters = new ReaderParameters { AssemblyResolver = resolver };
var types = ModuleDefinition.ReadModule (
CompilationService.CompileResource (GetCSharpResourcePath ("CustomAttributes.cs", typeof (ResolveTests).Assembly)),
CompilationService.CompileResource (GetCSharpResourcePath ("CustomAttributes.cs")),
parameters);
resolver.Register (types.Assembly);

View File

@@ -93,7 +93,6 @@ namespace Mono.Cecil.Tests {
});
}
#if !READ_ONLY
[Test]
public void DefineSecurityDeclarationByBlob ()
{
@@ -126,7 +125,6 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual ("System.String", argument.Type.FullName);
Assert.AreEqual (permission_set, argument.Value);
}
#endif
[Test]
public void SecurityDeclarationWithoutAttributes ()

View File

@@ -1,4 +1,3 @@
#if !READ_ONLY
using System;
using System.IO;
@@ -16,12 +15,10 @@ namespace Mono.Cecil.Tests {
[Test]
public void DefaultPdb ()
{
IgnoreOnMono ();
TestModule ("libpdb.dll", module => {
Assert.IsTrue (module.HasSymbols);
Assert.AreEqual (typeof (NativePdbReader), module.SymbolReader.GetType ());
}, symbolReaderProvider: typeof (DefaultSymbolReaderProvider), symbolWriterProvider: typeof (DefaultSymbolWriterProvider));
}, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (DefaultSymbolReaderProvider), symbolWriterProvider: typeof (DefaultSymbolWriterProvider));
}
[Test]
@@ -133,5 +130,3 @@ namespace Mono.Cecil.Tests {
}
}
}
#endif

View File

@@ -30,8 +30,6 @@ namespace Mono.Cecil.Tests {
});
}
#if !READ_ONLY
[Test]
public void EmptyStructLayout ()
{
@@ -45,8 +43,6 @@ namespace Mono.Cecil.Tests {
}) ;
}
#endif
[Test]
public void SimpleInterfaces ()
{

View File

@@ -68,23 +68,13 @@ namespace Mono.Cecil.Tests {
void LoadWindowsSdk (string registryVersion, string windowsKitsVersion, Action<string> registerAssembliesCallback)
{
#if NET_4_0
using (var localMachine32Key = RegistryKey.OpenBaseKey (RegistryHive.LocalMachine, RegistryView.Registry32)) {
using (var sdkKey = localMachine32Key.OpenSubKey (@"SOFTWARE\Microsoft\Microsoft SDKs\Windows\v" + registryVersion)) {
#else
{
// this will fail on 64-bit process as there's no way (other than pinoke) to read from 32-bit registry view
using (var sdkKey = Registry.LocalMachine.OpenSubKey (@"SOFTWARE\Microsoft\Microsoft SDKs\Windows\" + registryVersion)) {
#endif
string installationFolder = null;
if (sdkKey != null)
installationFolder = (string)sdkKey.GetValue ("InstallationFolder");
if (string.IsNullOrEmpty (installationFolder)) {
#if NET_4_0
var programFilesX86 = Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86);
#else
var programFilesX86 = Environment.GetEnvironmentVariable ("ProgramFiles(x86)");
#endif
installationFolder = Path.Combine (programFilesX86, @"Windows Kits\" + windowsKitsVersion);
}
registerAssembliesCallback (installationFolder);

View File

@@ -65,7 +65,6 @@ namespace Mono.Cecil.Tests {
}, verify: false, assemblyResolver: WindowsRuntimeAssemblyResolver.CreateInstance (), applyWindowsRuntimeProjections: true);
}
#if !READ_ONLY
[Test]
public void CanStripType ()
{
@@ -93,7 +92,6 @@ namespace Mono.Cecil.Tests {
}
}, readOnly: true, verify: false, assemblyResolver: assemblyResolver, applyWindowsRuntimeProjections: true);
}
#endif
}
[TestFixture]

View File

@@ -1,15 +0,0 @@
Copyright <20> 2002-2012 Charlie Poole
Copyright <20> 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
Copyright <20> 2000-2002 Philip A. Craig
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required.
Portions Copyright <20> 2002-2012 Charlie Poole or Copyright <20> 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright <20> 2000-2002 Philip A. Craig
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.