diff options
author | Thays Grazia <thaystg@gmail.com> | 2020-02-13 01:50:06 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-13 01:50:06 +0300 |
commit | 7d2479e42bee1e27e0067bbfe821693f5fec674b (patch) | |
tree | f03e37505b284910f9e2d6b6b29557d04e2dc8c1 /Test/Mono.Cecil.Tests | |
parent | 933575cbd7c9e306439cefcd171785e9f7280c55 (diff) |
Changing PdbReaderProvider to accept create EmbeddedPDB from stream. (#648)
* Changing GetSymbolReader from PdbReaderProvider, when we create a Module from stream we don't have the filename, and it's not necessary to create an EmbeddedPortablePdbReaderProvider, so I've moved the check to after the creation of EmbeddedPortablePdbReaderProvider.
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)); |