diff options
Diffstat (limited to 'Test/Mono.Cecil.Tests')
-rw-r--r-- | Test/Mono.Cecil.Tests/PortablePdbTests.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Test/Mono.Cecil.Tests/PortablePdbTests.cs b/Test/Mono.Cecil.Tests/PortablePdbTests.cs index e741865..fe60dc8 100644 --- a/Test/Mono.Cecil.Tests/PortablePdbTests.cs +++ b/Test/Mono.Cecil.Tests/PortablePdbTests.cs @@ -5,6 +5,7 @@ using System.Text; using NUnit.Framework; using Mono.Cecil.Cil; +using Mono.Cecil.Pdb; using Mono.Cecil.PE; namespace Mono.Cecil.Tests { @@ -368,6 +369,33 @@ namespace Mono.Cecil.Tests { }, symbolReaderProvider: typeof (EmbeddedPortablePdbReaderProvider), symbolWriterProvider: typeof (EmbeddedPortablePdbWriterProvider)); } + [Test] + public void EmbeddedCompressedPortablePdbFromStream () + { + var bytes = File.ReadAllBytes (GetAssemblyResourcePath ("EmbeddedCompressedPdbTarget.exe")); + var parameters = new ReaderParameters { + ReadSymbols = true, + SymbolReaderProvider = new PdbReaderProvider () + }; + + var module = ModuleDefinition.ReadModule (new MemoryStream(bytes), parameters); + Assert.IsTrue (module.HasDebugHeader); + + var header = module.GetDebugHeader (); + + Assert.IsNotNull (header); + Assert.AreEqual (2, header.Entries.Length); + + var cv = header.Entries [0]; + Assert.AreEqual (ImageDebugType.CodeView, cv.Directory.Type); + + var eppdb = header.Entries [1]; + Assert.AreEqual (ImageDebugType.EmbeddedPortablePdb, eppdb.Directory.Type); + Assert.AreEqual (0x0100, eppdb.Directory.MajorVersion); + Assert.AreEqual (0x0100, eppdb.Directory.MinorVersion); + } + + void TestPortablePdbModule (Action<ModuleDefinition> test) { TestModule ("PdbTarget.exe", test, symbolReaderProvider: typeof (PortablePdbReaderProvider), symbolWriterProvider: typeof (PortablePdbWriterProvider)); |