Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Test/Mono.Cecil.Tests/BaseTestFixture.cs12
-rw-r--r--Test/Mono.Cecil.Tests/CompilationService.cs10
-rw-r--r--Test/Mono.Cecil.Tests/CustomAttributesTests.cs2
-rw-r--r--Test/Mono.Cecil.Tests/MethodBodyTests.cs2
-rw-r--r--Test/Mono.Cecil.Tests/ModuleTests.cs8
-rw-r--r--Test/Mono.Cecil.Tests/SymbolTests.cs4
-rw-r--r--symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs31
7 files changed, 44 insertions, 25 deletions
diff --git a/Test/Mono.Cecil.Tests/BaseTestFixture.cs b/Test/Mono.Cecil.Tests/BaseTestFixture.cs
index f349866..cdaf463 100644
--- a/Test/Mono.Cecil.Tests/BaseTestFixture.cs
+++ b/Test/Mono.Cecil.Tests/BaseTestFixture.cs
@@ -29,6 +29,18 @@ namespace Mono.Cecil.Tests {
Assert.Ignore ();
}
+ protected static void IgnoreOnCoreClr ()
+ {
+ if (Platform.OnCoreClr)
+ Assert.Ignore ();
+ }
+
+ protected static void OnlyOnWindows ()
+ {
+ if (!Platform.OnWindows)
+ Assert.Ignore ();
+ }
+
public static string GetResourcePath (string name, string sourceFilePath)
{
return Path.Combine (FindResourcesDirectory (sourceFilePath), name);
diff --git a/Test/Mono.Cecil.Tests/CompilationService.cs b/Test/Mono.Cecil.Tests/CompilationService.cs
index 25e42ab..681db51 100644
--- a/Test/Mono.Cecil.Tests/CompilationService.cs
+++ b/Test/Mono.Cecil.Tests/CompilationService.cs
@@ -36,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 {
@@ -311,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));
diff --git a/Test/Mono.Cecil.Tests/CustomAttributesTests.cs b/Test/Mono.Cecil.Tests/CustomAttributesTests.cs
index 970b3aa..cb8a0fb 100644
--- a/Test/Mono.Cecil.Tests/CustomAttributesTests.cs
+++ b/Test/Mono.Cecil.Tests/CustomAttributesTests.cs
@@ -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");
diff --git a/Test/Mono.Cecil.Tests/MethodBodyTests.cs b/Test/Mono.Cecil.Tests/MethodBodyTests.cs
index 15fd5fb..5af097b 100644
--- a/Test/Mono.Cecil.Tests/MethodBodyTests.cs
+++ b/Test/Mono.Cecil.Tests/MethodBodyTests.cs
@@ -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");
diff --git a/Test/Mono.Cecil.Tests/ModuleTests.cs b/Test/Mono.Cecil.Tests/ModuleTests.cs
index 218ccd7..4e10702 100644
--- a/Test/Mono.Cecil.Tests/ModuleTests.cs
+++ b/Test/Mono.Cecil.Tests/ModuleTests.cs
@@ -49,8 +49,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void MultiModules ()
{
- if (Platform.OnCoreClr)
- return;
+ IgnoreOnCoreClr ();
TestModule("mma.exe", module => {
var assembly = module.Assembly;
@@ -160,8 +159,7 @@ namespace Mono.Cecil.Tests {
[Test]
public void ExportedTypeFromNetModule ()
{
- if (Platform.OnCoreClr)
- return;
+ IgnoreOnCoreClr ();
TestModule ("mma.exe", module => {
Assert.IsTrue (module.HasExportedTypes);
@@ -215,6 +213,8 @@ namespace Mono.Cecil.Tests {
[Test]
public void Win32FileVersion ()
{
+ IgnoreOnCoreClr ();
+
TestModule ("libhello.dll", module => {
var version = FileVersionInfo.GetVersionInfo (module.FileName);
diff --git a/Test/Mono.Cecil.Tests/SymbolTests.cs b/Test/Mono.Cecil.Tests/SymbolTests.cs
index b453bcc..c8889a1 100644
--- a/Test/Mono.Cecil.Tests/SymbolTests.cs
+++ b/Test/Mono.Cecil.Tests/SymbolTests.cs
@@ -16,12 +16,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]
diff --git a/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs b/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs
index b6fdcdf..d729020 100644
--- a/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs
+++ b/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs
@@ -57,7 +57,7 @@ namespace Mono.Cecil.Tests {
IL_0020: ldloc.1
IL_0021: ret
", main);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
}
[Test]
@@ -83,7 +83,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual ("i", variables [0].Name);
Assert.IsFalse (variables [0].IsDebuggerHidden);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
}
[Test]
@@ -103,7 +103,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual (DocumentHashAlgorithm.None, document.HashAlgorithm);
Assert.AreEqual (DocumentLanguage.CSharp, document.Language);
Assert.AreEqual (DocumentLanguageVendor.Microsoft, document.LanguageVendor);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
}
[Test]
@@ -123,7 +123,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual (DocumentHashAlgorithm.None, document.HashAlgorithm);
Assert.AreEqual (DocumentLanguage.Basic, document.Language);
Assert.AreEqual (DocumentLanguageVendor.Microsoft, document.LanguageVendor);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
}
[Test]
@@ -143,28 +143,28 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual (DocumentHashAlgorithm.None, document.HashAlgorithm);
Assert.AreEqual (DocumentLanguage.FSharp, document.Language);
Assert.AreEqual (DocumentLanguageVendor.Microsoft, document.LanguageVendor);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
public void EmptyEnumerable ()
{
TestModule ("empty-iterator.dll", module => {
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
public void EmptyRootNamespace ()
{
TestModule ("EmptyRootNamespace.dll", module => {
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
public void VisualBasicNamespace ()
{
TestModule ("AVbTest.exe", module => {
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
@@ -218,7 +218,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual ("u", variable.Name);
Assert.IsFalse (variable.IsDebuggerHidden);
Assert.AreEqual (5, variable.Index);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
@@ -276,7 +276,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual ("u", constant.Name);
Assert.AreEqual (null, constant.Value);
Assert.AreEqual (MetadataType.String, constant.ConstantType.MetadataType);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
@@ -325,7 +325,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual (ImportTargetKind.DefineNamespaceAlias, target.Kind);
Assert.AreEqual ("Foo2", target.Alias);
Assert.AreEqual ("System.Reflection", target.Namespace);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
@@ -339,7 +339,7 @@ namespace Mono.Cecil.Tests {
Assert.IsNotNull (symbol);
Assert.IsNotNull (symbol.StateMachineKickOffMethod);
Assert.AreEqual ("System.Threading.Tasks.Task ComplexPdb.Program::TestAsync()", symbol.StateMachineKickOffMethod.FullName);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
@@ -372,7 +372,7 @@ namespace Mono.Cecil.Tests {
Assert.AreEqual (move_next, async_body.ResumeMethods [0]);
Assert.AreEqual (move_next, async_body.ResumeMethods [1]);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
@@ -408,13 +408,14 @@ namespace Mono.Cecil.Tests {
}
Assert.AreEqual ("System", import.Targets [0].Namespace);
- }, readOnly: Platform.OnMono, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
+ }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider));
}
[Test]
public void CreateMethodFromScratch ()
{
- IgnoreOnMono ();
+ if (!Platform.HasNativePdbSupport)
+ Assert.Ignore ();
var module = ModuleDefinition.CreateModule ("Pan", ModuleKind.Dll);
var type = new TypeDefinition ("Pin", "Pon", TypeAttributes.Public | TypeAttributes.Abstract | TypeAttributes.Sealed, module.ImportReference (typeof (object)));