diff options
author | Jb Evain <jb@evain.net> | 2019-01-28 04:04:32 +0300 |
---|---|---|
committer | Jb Evain <jb@evain.net> | 2019-02-12 01:38:44 +0300 |
commit | 9dfb50a60d56ba2b6c980079b630ba3ca15b248b (patch) | |
tree | 83a9430d3c975d87a2a1edfb81bf2fa6aa91fbbf | |
parent | bf0f60c270946f5a313271bbdd40126f82f4b927 (diff) |
Fix tests on dotnet core / macos
-rw-r--r-- | Test/Mono.Cecil.Tests/BaseTestFixture.cs | 12 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/CompilationService.cs | 10 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/CustomAttributesTests.cs | 2 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/MethodBodyTests.cs | 2 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/ModuleTests.cs | 8 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/SymbolTests.cs | 4 | ||||
-rw-r--r-- | symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs | 31 |
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))); |