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:
authorThays Grazia <thaystg@gmail.com>2020-02-13 01:50:06 +0300
committerGitHub <noreply@github.com>2020-02-13 01:50:06 +0300
commit7d2479e42bee1e27e0067bbfe821693f5fec674b (patch)
treef03e37505b284910f9e2d6b6b29557d04e2dc8c1 /Test/Mono.Cecil.Tests
parent933575cbd7c9e306439cefcd171785e9f7280c55 (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.cs28
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));