83 references to ErrorCategory
Microsoft.Build (54)
BackEnd\Components\Logging\BuildErrorTelemetryTracker.cs (54)
42
private readonly int[] _errorCounts = new int[Enum.GetValues(typeof(
ErrorCategory
)).Length];
47
private
ErrorCategory
_primaryCategory;
62
ErrorCategory
category = CategorizeError(errorCode, subcategory);
88
Compiler: GetCountOrNull(
ErrorCategory
.Compiler),
89
MsBuildGeneral: GetCountOrNull(
ErrorCategory
.MSBuildGeneral),
90
MsBuildEvaluation: GetCountOrNull(
ErrorCategory
.MSBuildEvaluation),
91
MsBuildExecution: GetCountOrNull(
ErrorCategory
.MSBuildExecution),
92
MsBuildGraph: GetCountOrNull(
ErrorCategory
.MSBuildGraph),
93
Task: GetCountOrNull(
ErrorCategory
.Tasks),
94
SdkResolvers: GetCountOrNull(
ErrorCategory
.SDKResolvers),
95
NetSdk: GetCountOrNull(
ErrorCategory
.NETSDK),
96
NuGet: GetCountOrNull(
ErrorCategory
.NuGet),
97
BuildCheck: GetCountOrNull(
ErrorCategory
.BuildCheck),
98
NativeToolchain: GetCountOrNull(
ErrorCategory
.NativeToolchain),
99
CodeAnalysis: GetCountOrNull(
ErrorCategory
.CodeAnalysis),
100
Razor: GetCountOrNull(
ErrorCategory
.Razor),
101
Wpf: GetCountOrNull(
ErrorCategory
.WPF),
102
AspNet: GetCountOrNull(
ErrorCategory
.AspNet),
103
Other: GetCountOrNull(
ErrorCategory
.Other));
116
private int? GetCountOrNull(
ErrorCategory
category)
127
private static
ErrorCategory
CategorizeError(string? errorCode, string? subcategory)
131
return
ErrorCategory
.Other;
137
return
ErrorCategory
.Compiler;
143
return
ErrorCategory
.Compiler;
148
return
ErrorCategory
.Other;
158
('A', 'S') when StartsWithASP(errorCode) =>
ErrorCategory
.AspNet,
161
('B', 'C') =>
ErrorCategory
.BuildCheck,
162
('B', 'L') =>
ErrorCategory
.AspNet, // Blazor
165
('C', 'A') =>
ErrorCategory
.CodeAnalysis,
166
('C', 'L') =>
ErrorCategory
.NativeToolchain,
167
('C', 'V') when errorCode.Length >= 3 && char.ToUpperInvariant(errorCode[2]) == 'T' =>
ErrorCategory
.NativeToolchain, // CVT*
168
('C', >= '0' and <= '9') =>
ErrorCategory
.NativeToolchain, // C1*, C2*, C4* (C/C++ compiler)
171
('I', 'D') when errorCode.Length >= 3 && char.ToUpperInvariant(errorCode[2]) == 'E' =>
ErrorCategory
.CodeAnalysis, // IDE*
174
('L', 'N') when errorCode.Length >= 3 && char.ToUpperInvariant(errorCode[2]) == 'K' =>
ErrorCategory
.NativeToolchain, // LNK*
177
('M', 'C') =>
ErrorCategory
.WPF, // MC* (Markup Compiler)
179
('M', 'T') =>
ErrorCategory
.NativeToolchain, // MT* (Manifest Tool)
182
('N', 'E') when StartsWithNETSDK(errorCode) =>
ErrorCategory
.NETSDK,
183
('N', 'U') =>
ErrorCategory
.NuGet,
186
('R', 'C') =>
ErrorCategory
.NativeToolchain, // RC* (Resource Compiler)
187
('R', 'Z') =>
ErrorCategory
.Razor,
190
('X', 'C') =>
ErrorCategory
.WPF, // XC* (XAML Compiler)
192
_ =>
ErrorCategory
.Other
241
private static
ErrorCategory
CategorizeMSBError(ReadOnlySpan<char> codeSpan)
246
return
ErrorCategory
.Other;
251
>= 3001 and <= 3999 =>
ErrorCategory
.Tasks,
252
>= 4001 and <= 4099 =>
ErrorCategory
.MSBuildGeneral,
253
>= 4100 and <= 4199 =>
ErrorCategory
.MSBuildEvaluation,
254
>= 4200 and <= 4299 =>
ErrorCategory
.SDKResolvers,
255
>= 4300 and <= 4399 =>
ErrorCategory
.MSBuildExecution,
256
>= 4400 and <= 4499 =>
ErrorCategory
.MSBuildGraph,
257
>= 4500 and <= 4999 =>
ErrorCategory
.MSBuildGeneral,
258
>= 5001 and <= 5999 =>
ErrorCategory
.MSBuildExecution,
259
>= 6001 and <= 6999 =>
ErrorCategory
.MSBuildExecution,
260
_ =>
ErrorCategory
.Other
Microsoft.Build.Engine.UnitTests (29)
BackEnd\BuildTelemetryErrorCategorization_Tests.cs (24)
21
[InlineData("CS0103", null, nameof(
ErrorCategory
.Compiler))]
22
[InlineData("CS1002", "CS", nameof(
ErrorCategory
.Compiler))]
23
[InlineData("VBC30451", "VBC", nameof(
ErrorCategory
.Compiler))]
24
[InlineData("FS0039", null, nameof(
ErrorCategory
.Compiler))]
25
[InlineData("MSB4018", null, nameof(
ErrorCategory
.MSBuildGeneral))]
26
[InlineData("MSB4236", null, nameof(
ErrorCategory
.SDKResolvers))]
27
[InlineData("MSB3026", null, nameof(
ErrorCategory
.Tasks))]
28
[InlineData("NETSDK1045", null, nameof(
ErrorCategory
.NETSDK))]
29
[InlineData("NU1101", null, nameof(
ErrorCategory
.NuGet))]
30
[InlineData("BC0001", null, nameof(
ErrorCategory
.BuildCheck))]
31
[InlineData("CUSTOM001", null, nameof(
ErrorCategory
.Other))]
32
[InlineData(null, null, nameof(
ErrorCategory
.Other))]
33
[InlineData("", null, nameof(
ErrorCategory
.Other))]
67
case nameof(
ErrorCategory
.Compiler):
70
case nameof(
ErrorCategory
.MSBuildGeneral):
73
case nameof(
ErrorCategory
.Tasks):
76
case nameof(
ErrorCategory
.SDKResolvers):
79
case nameof(
ErrorCategory
.NETSDK):
82
case nameof(
ErrorCategory
.NuGet):
85
case nameof(
ErrorCategory
.BuildCheck):
88
case nameof(
ErrorCategory
.Other):
135
buildTelemetry.FailureCategory.ShouldBe(nameof(
ErrorCategory
.Compiler));
170
buildTelemetry.FailureCategory.ShouldBe(nameof(
ErrorCategory
.Tasks));
208
buildTelemetry.FailureCategory.ShouldBe(nameof(
ErrorCategory
.Compiler));
BackEnd\KnownTelemetry_Tests.cs (5)
136
buildTelemetry.FailureCategory = nameof(
ErrorCategory
.Compiler);
158
properties["FailureCategory"].ShouldBe(nameof(
ErrorCategory
.Compiler));
162
activityProperties["FailureCategory"].ShouldBe(nameof(
ErrorCategory
.Compiler));
181
buildTelemetry.FailureCategory = nameof(
ErrorCategory
.Tasks);
203
activityProperties["FailureCategory"].ShouldBe(nameof(
ErrorCategory
.Tasks));