Skip to content

Commit 82a9208

Browse files
Fix source file check for non portable pdb (#558)
Fix source file check for non portable pdb
1 parent 2aa8ed6 commit 82a9208

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/coverlet.core/Coverage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public CoveragePrepareResult PrepareModules()
8181

8282
Array.ForEach(_excludeFilters ?? Array.Empty<string>(), filter => _logger.LogVerbose($"Excluded module filter '{filter}'"));
8383
Array.ForEach(_includeFilters ?? Array.Empty<string>(), filter => _logger.LogVerbose($"Included module filter '{filter}'"));
84+
Array.ForEach(_excludedSourceFiles ?? Array.Empty<string>(), filter => _logger.LogVerbose($"Excluded source files filter '{filter}'"));
8485

8586
_excludeFilters = _excludeFilters?.Where(f => _instrumentationHelper.IsValidFilterExpression(f)).ToArray();
8687
_includeFilters = _includeFilters?.Where(f => _instrumentationHelper.IsValidFilterExpression(f)).ToArray();

src/coverlet.core/Helpers/InstrumentationHelper.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,17 @@ public bool PortablePdbHasLocalSource(string module, out string firstNotFoundDoc
146146
var codeViewData = peReader.ReadCodeViewDebugDirectoryData(entry);
147147
using FileStream pdbStream = new FileStream(codeViewData.Path, FileMode.Open);
148148
using MetadataReaderProvider metadataReaderProvider = MetadataReaderProvider.FromPortablePdbStream(pdbStream);
149-
MetadataReader metadataReader = metadataReaderProvider.GetMetadataReader();
149+
MetadataReader metadataReader = null;
150+
try
151+
{
152+
metadataReader = metadataReaderProvider.GetMetadataReader();
153+
}
154+
catch (BadImageFormatException)
155+
{
156+
// TODO log this to warning
157+
// In case of non portable pdb we get exception so we skip file sources check
158+
return true;
159+
}
150160
foreach (DocumentHandle docHandle in metadataReader.Documents)
151161
{
152162
Document document = metadataReader.GetDocument(docHandle);

src/coverlet.core/Instrumentation/Instrumenter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,6 @@ public ExcludedFilesHelper(string[] excludes, ILogger logger)
779779
{
780780
continue;
781781
}
782-
logger.LogVerbose($"Excluded source file rule '{excludeRule}'");
783782
_matcher.AddInclude(Path.IsPathRooted(excludeRule) ? excludeRule.Substring(Path.GetPathRoot(excludeRule).Length) : excludeRule);
784783
}
785784
}

0 commit comments

Comments
 (0)