diff options
author | Jb Evain <jb@evain.net> | 2017-03-13 07:07:56 +0300 |
---|---|---|
committer | Jb Evain <jb@evain.net> | 2017-03-13 07:10:19 +0300 |
commit | 57a34cb45e07c6f8734bd289150366775291df51 (patch) | |
tree | 529352276d7a00c6c18f33abb14849d1c5c8461e /Test/Mono.Cecil.Tests | |
parent | 191e93f02f198d30975b9690613a5685206b16d6 (diff) |
Add support for deterministic debug directory
Diffstat (limited to 'Test/Mono.Cecil.Tests')
-rw-r--r-- | Test/Mono.Cecil.Tests/ImageReadTests.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Test/Mono.Cecil.Tests/ImageReadTests.cs b/Test/Mono.Cecil.Tests/ImageReadTests.cs index 368c760..895ba18 100644 --- a/Test/Mono.Cecil.Tests/ImageReadTests.cs +++ b/Test/Mono.Cecil.Tests/ImageReadTests.cs @@ -1,7 +1,9 @@ using System; using System.IO; +using System.Linq; using Mono.Cecil; +using Mono.Cecil.Cil; using Mono.Cecil.PE; using Mono.Cecil.Metadata; @@ -179,5 +181,47 @@ namespace Mono.Cecil.Tests { Assert.IsTrue (module.Assembly.Name.IsWindowsRuntime); }, verify: false, assemblyResolver: resolver); } + + [Test] + public void DeterministicAssembly () + { + TestModule ("Deterministic.dll", module => { + Assert.IsTrue (module.HasDebugHeader); + + var header = module.GetDebugHeader (); + + Assert.AreEqual (1, header.Entries.Length); + Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.Deterministic)); + }); + } + + [Test] + public void ExternalPdbDeterministicAssembly () + { + TestModule ("ExternalPdbDeterministic.dll", module => { + Assert.IsTrue (module.HasDebugHeader); + + var header = module.GetDebugHeader (); + + Assert.AreEqual (2, header.Entries.Length); + Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.CodeView)); + Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.Deterministic)); + }, symbolReaderProvider: typeof (PortablePdbReaderProvider), symbolWriterProvider: typeof (PortablePdbWriterProvider)); + } + + [Test] + public void EmbeddedPdbDeterministicAssembly () + { + TestModule ("EmbeddedPdbDeterministic.dll", module => { + Assert.IsTrue (module.HasDebugHeader); + + var header = module.GetDebugHeader (); + + Assert.AreEqual (3, header.Entries.Length); + Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.CodeView)); + Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.Deterministic)); + Assert.IsTrue (header.Entries.Any (e => e.Directory.Type == ImageDebugType.EmbeddedPortablePdb)); + }, symbolReaderProvider: typeof (EmbeddedPortablePdbReaderProvider), symbolWriterProvider: typeof (EmbeddedPortablePdbWriterProvider)); + } } } |