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:
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));