From c9e9afb835cb25dfe006c82851fc6dcb99810703 Mon Sep 17 00:00:00 2001 From: Neal Miller Date: Fri, 23 Mar 2018 13:52:53 -0500 Subject: [PATCH 1/2] fix errors when using multiple referenced libraries --- src/coverlet.core/Coverage.cs | 1 + src/coverlet.core/CoverageTracker.cs | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/coverlet.core/Coverage.cs b/src/coverlet.core/Coverage.cs index fef3bd6..2869c67 100644 --- a/src/coverlet.core/Coverage.cs +++ b/src/coverlet.core/Coverage.cs @@ -93,6 +93,7 @@ namespace Coverlet.Core { foreach (var result in _results) { + if (!File.Exists(result.HitsFilePath)) { continue; } var lines = File.ReadAllLines(result.HitsFilePath); for (int i = 0; i < lines.Length; i++) { diff --git a/src/coverlet.core/CoverageTracker.cs b/src/coverlet.core/CoverageTracker.cs index 0553d24..a2f1c2f 100644 --- a/src/coverlet.core/CoverageTracker.cs +++ b/src/coverlet.core/CoverageTracker.cs @@ -7,15 +7,21 @@ namespace Coverlet.Core { public static class CoverageTracker { - private static List _markers; - private static string _path; + private static Dictionary> _markers; private static bool _registered; [ExcludeFromCoverage] public static void MarkExecuted(string path, string marker) { if (_markers == null) - _markers = new List(); + { + _markers = new Dictionary>(); + } + + if (!_markers.ContainsKey(path)) + { + _markers.Add(path, new List()); + } if (!_registered) { @@ -23,11 +29,15 @@ namespace Coverlet.Core _registered = true; } - _markers.Add(marker); - _path = path; + _markers[path].Add(marker); } public static void CurrentDomain_ProcessExit(object sender, EventArgs e) - => File.WriteAllLines(_path, _markers); + { + foreach (var kvp in _markers) + { + File.WriteAllLines(kvp.Key, kvp.Value); + } + } } } \ No newline at end of file From 75a567adc94415199f016cdfca9bb3cd810f286f Mon Sep 17 00:00:00 2001 From: Neal Miller Date: Fri, 23 Mar 2018 20:50:31 -0500 Subject: [PATCH 2/2] remove File.Exists check in Coverage.CalculateCoverage --- src/coverlet.core/Coverage.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/coverlet.core/Coverage.cs b/src/coverlet.core/Coverage.cs index 2869c67..fef3bd6 100644 --- a/src/coverlet.core/Coverage.cs +++ b/src/coverlet.core/Coverage.cs @@ -93,7 +93,6 @@ namespace Coverlet.Core { foreach (var result in _results) { - if (!File.Exists(result.HitsFilePath)) { continue; } var lines = File.ReadAllLines(result.HitsFilePath); for (int i = 0; i < lines.Length; i++) {