92 instantiations of Suppression
Microsoft.DotNet.ApiCompatibility (4)
Logging\SuppressionEngine.cs (3)
70
Suppression globalTargetSuppression =
new
(error.DiagnosticId, error.Target, isBaselineSuppression: error.IsBaselineSuppression);
73
Suppression globalLeftRightSuppression =
new
(string.Empty, left: error.Left, right: error.Right, isBaselineSuppression: error.IsBaselineSuppression);
76
Suppression globalDiagnosticIdLeftRightSuppression =
new
(error.DiagnosticId, left: error.Left, right: error.Right, isBaselineSuppression: error.IsBaselineSuppression);
Runner\ApiCompatRunner.cs (1)
68
Suppression suppression =
new
(difference.DiagnosticId)
Microsoft.DotNet.ApiCompatibility.Tests (80)
Logging\SuppressionEngineTests.cs (37)
16
Suppression suppression =
new
("PKG004", "A.B()", "ref/net6.0/mylib.dll", "lib/net6.0/mylib.dll");
33
Assert.True(suppressionEngine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.B", "ref/netstandard2.0/tempValidation.dll", "lib/net6.0/tempValidation.dll")));
34
Assert.False(suppressionEngine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.C", "ref/netstandard2.0/tempValidation.dll", "lib/net6.0/tempValidation.dll")));
35
Assert.False(suppressionEngine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.B", "lib/netstandard2.0/tempValidation.dll", "lib/net6.0/tempValidation.dll")));
36
Assert.True(suppressionEngine.IsErrorSuppressed(new
Suppression
("PKV004", ".netframework,Version=v4.8")));
37
Assert.False(suppressionEngine.IsErrorSuppressed(new
Suppression
(string.Empty, string.Empty)));
38
Assert.False(suppressionEngine.IsErrorSuppressed(new
Suppression
("PKV004", ".netframework,Version=v4.8", "lib/net6.0/mylib.dll")));
39
Assert.False(suppressionEngine.IsErrorSuppressed(new
Suppression
("PKV004", ".NETStandard,Version=v2.0")));
40
Assert.True(suppressionEngine.IsErrorSuppressed(new
Suppression
("CP123", "T:myValidation.Class1", isBaselineSuppression: true)));
41
Assert.False(suppressionEngine.IsErrorSuppressed(new
Suppression
("CP123", "T:myValidation.Class1", isBaselineSuppression: false)));
42
Assert.True(suppressionEngine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.B", "ref/netstandard2.0/tempValidation.dll", "lib/net6.0/tempValidation.dll")));
113
Suppression usedSuppression =
new
("CP0001", "T:A", "lib/netstandard1.3/tempValidation.dll", "lib/netstandard1.3/tempValidation.dll");
159
engine.AddSuppression(new
Suppression
("CP0001", "T:A.B", isBaselineSuppression: true));
160
engine.AddSuppression(new
Suppression
("CP0001", "T:A.C"));
162
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.B", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: true)));
163
Assert.False(engine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.B", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: false)));
165
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.C", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: false)));
166
Assert.False(engine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.C", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: true)));
169
engine.AddSuppression(new
Suppression
("CP0003", null, "ref/net6.0/myleft.dll", "lib/net6.0/myright.dll", isBaselineSuppression: false));
171
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.B", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll")));
172
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.C", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll")));
173
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.D", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll")));
174
Assert.False(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.D", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll", isBaselineSuppression: true)));
177
engine.AddSuppression(new
Suppression
(string.Empty, null, "ref/net8.0/left.dll", "lib/net8.0/left.dll", isBaselineSuppression: false));
178
engine.AddSuppression(new
Suppression
(string.Empty, null, "ref/net8.0/left.dll", "lib/net8.0/left.dll", isBaselineSuppression: true));
180
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0009", "T:A.B.C.D.E", "ref/net8.0/left.dll", "lib/net8.0/left.dll", isBaselineSuppression: false)));
181
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0009", "T:A.B.C.D.E", "ref/net8.0/left.dll", "lib/net8.0/left.dll", isBaselineSuppression: true)));
198
Suppression newSuppression =
new
("CP0002", "F:MyNs.Class1.Field");
212
Assert.Equal(new
Suppression
("CP0001")
227
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.B", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: true)));
228
Assert.False(engine.IsErrorSuppressed(new
Suppression
("CP1110", "T:A.B", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: false)));
230
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0001", "T:A.C", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: false)));
231
Assert.False(engine.IsErrorSuppressed(new
Suppression
("CP1000", "T:A.C", "ref/net6.0/myLib.dll", "lib/net6.0/myLib.dll", isBaselineSuppression: true)));
233
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.B", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll")));
234
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.C", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll")));
235
Assert.True(engine.IsErrorSuppressed(new
Suppression
("CP0003", "T:A.D", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll")));
236
Assert.False(engine.IsErrorSuppressed(new
Suppression
("CP1232", "T:A.D", "ref/net6.0/myLeft.dll", "lib/net6.0/myRight.dll", isBaselineSuppression: true)));
Logging\SuppressionTests.cs (43)
10
yield return new object[] { new
Suppression
(string.Empty), new
Suppression
(string.Empty) { Left = null, Right = null, Target = null } };
11
yield return new object[] { new
Suppression
(string.Empty), new
Suppression
(string.Empty) { Left = string.Empty, Right = string.Empty, Target = string.Empty } };
12
yield return new object[] { new
Suppression
("PK004"), new
Suppression
("pk004") };
13
yield return new object[] { new
Suppression
("PK004"), new
Suppression
(" pk004 ") };
14
yield return new object[] { new
Suppression
("PK004") { Target = "A.B" }, new
Suppression
(" pk004 ") { Target = "A.b " } };
15
yield return new object[] { new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll" }, new
Suppression
(" pk004 ") { Target = "A.B", Left = "ref/net6.0/mylib.dll" } };
16
yield return new object[] { new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = false } };
17
yield return new object[] { new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = false }, new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = false } };
18
yield return new object[] { new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = true }, new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = true } };
23
yield return new object[] { new
Suppression
(string.Empty), new
Suppression
("PK005") };
24
yield return new object[] { new
Suppression
("PK004"), new
Suppression
("PK005") };
25
yield return new object[] { new
Suppression
("PK004"), new
Suppression
("PK004") { Target = "A.B()" } };
26
yield return new object[] { new
Suppression
("PK004") { Target = "A.B" }, new
Suppression
("PK004") { Target = "A.B()" } };
27
yield return new object[] { new
Suppression
("PK004") { Target = "A.C" }, new
Suppression
("PK004") { Target = "A.B()" } };
28
yield return new object[] { new
Suppression
("PK004") { Target = "A.B()", Left = "ref/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B()" } };
29
yield return new object[] { new
Suppression
("PK004") { Target = "A.B()", Left = "ref/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B()", Left = "lib/net6.0/myLib.dll" } };
30
yield return new object[] { new
Suppression
("PK004") { Target = "A.B()", Right = "ref/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B()" } };
31
yield return new object[] { new
Suppression
("PK004") { Target = "A.B()", Right = "ref/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B()", Right = "lib/net6.0/myLib.dll" } };
32
yield return new object[] { new
Suppression
("PK004") { Target = "A.B()", Left = "ref/net6.0/mylib.dll", Right = "lib/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B()", Left = "ref/netstandard2.0/mylib.dll", Right = "lib/net6.0/myLib.dll" } };
33
yield return new object[] { new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = true }, new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = false } };
34
yield return new object[] { new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll" }, new
Suppression
("PK004") { Target = "A.B", Left = "ref/net6.0/myLib.dll", Right = "lib/net6.0/myLib.dll", IsBaselineSuppression = true } };
56
Assert.False(new
Suppression
("PK0004").Equals(null));
Microsoft.DotNet.PackageValidation (8)
ApiCompatRunnerExtensions.cs (1)
91
log.LogWarning(new
Suppression
(DiagnosticIds.SearchDirectoriesNotFoundForTfm) { Target = displayString },
Validators\BaselinePackageValidator.cs (4)
48
log.LogError(new
Suppression
(DiagnosticIds.TargetFrameworkDropped) { Target = baselineTargetFramework.ToString() },
72
log.LogError(new
Suppression
(DiagnosticIds.TargetFrameworkDropped) { Target = baselineTargetFramework.ToString() },
101
log.LogError(new
Suppression
(DiagnosticIds.TargetFrameworkAndRidPairDropped) { Target = baselineTargetFramework.ToString() + "-" + baselineRuntimeSpecificAssetsRidGroup.Key },
136
log.LogWarning(new
Suppression
(DiagnosticIds.BaselineTargetFrameworkIgnoredButPresentInCurrentPackage,
Validators\CompatibleTFMValidator.cs (3)
44
log.LogError(new
Suppression
(DiagnosticIds.ApplicableCompileTimeAsset) { Target = framework.ToString() },
54
log.LogError(new
Suppression
(DiagnosticIds.CompatibleRuntimeRidLessAsset) { Target = framework.ToString() },
74
log.LogError(new
Suppression
(DiagnosticIds.CompatibleRuntimeRidSpecificAsset) { Target = framework.ToString() + "-" + rid },
61 references to Suppression
Microsoft.DotNet.ApiCompat.IntegrationTests (2)
SuppressibleTestLog.cs (2)
18
public bool LogError(
Suppression
suppression, string code, string message)
28
public bool LogWarning(
Suppression
suppression, string code, string message)
Microsoft.DotNet.ApiCompat.Task (4)
SuppressibleMSBuildLog.cs (2)
20
public bool LogError(
Suppression
suppression, string code, string message)
32
public bool LogWarning(
Suppression
suppression, string code, string message)
SuppressionFileHelper.cs (2)
68
IReadOnlyCollection<
Suppression
> unnecessarySuppressions = suppressionEngine.GetUnnecessarySuppressions();
75
foreach (
Suppression
unnecessarySuppression in unnecessarySuppressions)
Microsoft.DotNet.ApiCompat.Tests (2)
SuppressionFileHelper.cs (2)
68
IReadOnlyCollection<
Suppression
> unnecessarySuppressions = suppressionEngine.GetUnnecessarySuppressions();
75
foreach (
Suppression
unnecessarySuppression in unnecessarySuppressions)
Microsoft.DotNet.ApiCompat.Tool (4)
SuppressibleConsoleLog.cs (2)
20
public bool LogError(
Suppression
suppression, string code, string message)
32
public bool LogWarning(
Suppression
suppression, string code, string message)
SuppressionFileHelper.cs (2)
68
IReadOnlyCollection<
Suppression
> unnecessarySuppressions = suppressionEngine.GetUnnecessarySuppressions();
75
foreach (
Suppression
unnecessarySuppression in unnecessarySuppressions)
Microsoft.DotNet.ApiCompatibility (33)
Logging\ISuppressibleLog.cs (2)
25
bool LogError(
Suppression
suppression, string code, string message);
34
bool LogWarning(
Suppression
suppression, string code, string message);
Logging\ISuppressionEngine.cs (10)
7
/// Suppression engine that contains a collection of <see cref="
Suppression
"/> items. It provides API to add a suppression, check if a passed-in suppression is already suppressed
13
/// If true, adds the suppression to the collection when passed into <see cref="IsErrorSuppressed(
Suppression
)"/>.
20
IReadOnlyCollection<
Suppression
> BaselineSuppressions { get; }
25
IReadOnlyCollection<
Suppression
> Suppressions { get; }
30
/// <param name="suppression">The <see cref="
Suppression
"/> to be added.</param>
31
void AddSuppression(
Suppression
suppression);
37
IReadOnlyCollection<
Suppression
> GetUnnecessarySuppressions();
42
/// <param name="error">The <see cref="
Suppression
"/> error to check.</param>
44
bool IsErrorSuppressed(
Suppression
error);
58
(bool SuppressionFileUpdated, IReadOnlyCollection<
Suppression
> UpdatedSuppressions) WriteSuppressionsToFile(string suppressionOutputFile, bool preserveUnnecessarySuppressions = false);
Logging\Suppression.cs (3)
9
public class Suppression : IEquatable<
Suppression
>
72
public override bool Equals(object? obj) => Equals(obj as
Suppression
);
75
public bool Equals(
Suppression
? other)
Logging\SuppressionEngine.cs (17)
10
/// Suppression engine that contains a collection of <see cref="
Suppression
"/> items. It provides API to add a suppression, check if a passed-in suppression is already suppressed
18
private readonly HashSet<
Suppression
> _baselineSuppressions = [];
19
private readonly HashSet<
Suppression
> _suppressions = [];
26
public IReadOnlyCollection<
Suppression
> BaselineSuppressions => _baselineSuppressions;
29
public IReadOnlyCollection<
Suppression
> Suppressions => _suppressions;
40
if (serializer.Deserialize(reader) is
Suppression
[] deserializedSuppressions)
53
public bool IsErrorSuppressed(
Suppression
error)
70
Suppression
globalTargetSuppression = new(error.DiagnosticId, error.Target, isBaselineSuppression: error.IsBaselineSuppression);
73
Suppression
globalLeftRightSuppression = new(string.Empty, left: error.Left, right: error.Right, isBaselineSuppression: error.IsBaselineSuppression);
76
Suppression
globalDiagnosticIdLeftRightSuppression = new(error.DiagnosticId, left: error.Left, right: error.Right, isBaselineSuppression: error.IsBaselineSuppression);
85
if (_baselineSuppressions.TryGetValue(globalTargetSuppression, out
Suppression
? globalSuppression) ||
104
public void AddSuppression(
Suppression
suppression) => _suppressions.Add(suppression);
107
public (bool SuppressionFileUpdated, IReadOnlyCollection<
Suppression
> UpdatedSuppressions)
112
HashSet<
Suppression
> suppressionsToSerialize = new(_suppressions);
125
Suppression
[] orderedSuppressions = suppressionsToSerialize
148
public IReadOnlyCollection<
Suppression
> GetUnnecessarySuppressions() => _baselineSuppressions.Except(_suppressions).ToArray();
160
private static XmlSerializer CreateXmlSerializer() => new(typeof(
Suppression
[]), new XmlRootAttribute("Suppressions"));
Runner\ApiCompatRunner.cs (1)
68
Suppression
suppression = new(difference.DiagnosticId)
Microsoft.DotNet.ApiCompatibility.Tests (14)
Logging\SuppressionEngineTests.cs (7)
16
Suppression
suppression = new("PKG004", "A.B()", "ref/net6.0/mylib.dll", "lib/net6.0/mylib.dll");
81
IReadOnlyCollection<
Suppression
> unnecessarySuppressions = suppressionEngine.GetUnnecessarySuppressions();
113
Suppression
usedSuppression = new("CP0001", "T:A", "lib/netstandard1.3/tempValidation.dll", "lib/netstandard1.3/tempValidation.dll");
198
Suppression
newSuppression = new("CP0002", "F:MyNs.Class1.Field");
208
XmlSerializer xmlSerializer = new(typeof(
Suppression
[]), new XmlRootAttribute("Suppressions"));
209
Suppression
[] deserializedSuppressions = xmlSerializer.Deserialize(stream) as
Suppression
[];
Logging\SuppressionTests.cs (4)
39
public void CheckSuppressionsAreEqual(
Suppression
suppression,
Suppression
other)
47
public void CheckSuppressionsAreNotEqual(
Suppression
suppression,
Suppression
other)
Runner\ApiCompatRunnerTests.cs (1)
34
.Setup(m => m.IsErrorSuppressed(It.IsAny<
Suppression
>()))
SuppressibleTestLog.cs (2)
18
public bool LogError(
Suppression
suppression, string code, string message)
28
public bool LogWarning(
Suppression
suppression, string code, string message)
Microsoft.DotNet.PackageValidation.Tests (2)
SuppressibleTestLog.cs (2)
18
public bool LogError(
Suppression
suppression, string code, string message)
28
public bool LogWarning(
Suppression
suppression, string code, string message)