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:
authorJb Evain <jb@evain.net>2017-03-13 07:07:56 +0300
committerJb Evain <jb@evain.net>2017-03-13 07:10:19 +0300
commit57a34cb45e07c6f8734bd289150366775291df51 (patch)
tree529352276d7a00c6c18f33abb14849d1c5c8461e /Test/Mono.Cecil.Tests
parent191e93f02f198d30975b9690613a5685206b16d6 (diff)
Add support for deterministic debug directory
Diffstat (limited to 'Test/Mono.Cecil.Tests')
-rw-r--r--Test/Mono.Cecil.Tests/ImageReadTests.cs44
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));
+ }
}
}