diff options
Diffstat (limited to 'Test/Mono.Cecil.Tests/PortablePdbTests.cs')
-rw-r--r-- | Test/Mono.Cecil.Tests/PortablePdbTests.cs | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/Test/Mono.Cecil.Tests/PortablePdbTests.cs b/Test/Mono.Cecil.Tests/PortablePdbTests.cs index 1401f63..4b9d4eb 100644 --- a/Test/Mono.Cecil.Tests/PortablePdbTests.cs +++ b/Test/Mono.Cecil.Tests/PortablePdbTests.cs @@ -885,11 +885,13 @@ class Program using (var module = GetResourceModule (resource, new ReaderParameters { ReadSymbols = true })) { GetPdbChecksumData (module.GetDebugHeader (), out string algorithmName, out byte [] checksum); Assert.AreEqual ("SHA256", algorithmName); + GetCodeViewPdbId (module, out byte[] pdbId); - string pdbPath = GetDebugHeaderPdbPath (module); - CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] pdbId); + string pdbPath = Mixin.GetPdbFileName (module.FileName); + CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] expectedPdbId); CollectionAssert.AreEqual (expectedChecksum, checksum); + CollectionAssert.AreEqual (expectedPdbId, pdbId); } } @@ -902,11 +904,13 @@ class Program var debugHeader = module.GetDebugHeader (); GetPdbChecksumData (debugHeader, out string algorithmName, out byte [] checksum); Assert.AreEqual ("SHA256", algorithmName); + GetCodeViewPdbId (module, out byte [] pdbId); GetEmbeddedPdb (debugHeader, out byte [] embeddedPdb); - CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] pdbId); + CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] expectedPdbId); CollectionAssert.AreEqual (expectedChecksum, checksum); + CollectionAssert.AreEqual (expectedPdbId, pdbId); } } @@ -923,11 +927,13 @@ class Program using (var module = ModuleDefinition.ReadModule (destination, new ReaderParameters { ReadSymbols = true })) { GetPdbChecksumData (module.GetDebugHeader (), out string algorithmName, out byte [] checksum); Assert.AreEqual ("SHA256", algorithmName); + GetCodeViewPdbId (module, out byte [] pdbId); - string pdbPath = GetDebugHeaderPdbPath (module); - CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] pdbId); + string pdbPath = Mixin.GetPdbFileName (module.FileName); + CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] expectedPdbId); CollectionAssert.AreEqual (expectedChecksum, checksum); + CollectionAssert.AreEqual (expectedPdbId, pdbId); } } @@ -961,7 +967,7 @@ class Program byte [] pdbIdOne; using (var module = ModuleDefinition.ReadModule (destination, new ReaderParameters { ReadSymbols = true })) { - string pdbPath = GetDebugHeaderPdbPath (module); + string pdbPath = Mixin.GetPdbFileName (module.FileName); CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out pdbIdOne); } @@ -971,7 +977,7 @@ class Program byte [] pdbIdTwo; using (var module = ModuleDefinition.ReadModule (destination, new ReaderParameters { ReadSymbols = true })) { - string pdbPath = GetDebugHeaderPdbPath (module); + string pdbPath = Mixin.GetPdbFileName (module.FileName); CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out pdbIdTwo); } @@ -992,11 +998,13 @@ class Program var debugHeader = module.GetDebugHeader (); GetPdbChecksumData (debugHeader, out string algorithmName, out byte [] checksum); Assert.AreEqual ("SHA256", algorithmName); + GetCodeViewPdbId (module, out byte [] pdbId); GetEmbeddedPdb (debugHeader, out byte [] embeddedPdb); - CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] pdbId); + CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] expectedPdbId); CollectionAssert.AreEqual (expectedChecksum, checksum); + CollectionAssert.AreEqual (expectedPdbId, pdbId); } } @@ -1102,5 +1110,19 @@ class Program var sha256 = SHA256.Create (); pdbChecksum = sha256.ComputeHash (bytes); } + + static void GetCodeViewPdbId (ModuleDefinition module, out byte[] pdbId) + { + var header = module.GetDebugHeader (); + var cv = Mixin.GetCodeViewEntry (header); + Assert.IsNotNull (cv); + + CollectionAssert.AreEqual (new byte [] { 0x52, 0x53, 0x44, 0x53 }, cv.Data.Take (4)); + + ByteBuffer buffer = new ByteBuffer (20); + buffer.WriteBytes (cv.Data.Skip (4).Take (16).ToArray ()); + buffer.WriteInt32 (cv.Directory.TimeDateStamp); + pdbId = buffer.buffer; + } } } |