@@ -35,19 +35,6 @@ public void TreatAllWarningsAsErrors()
35
35
ObjectModelHelpers . BuildProjectExpectSuccess ( GetTestProject ( treatAllWarningsAsErrors : false ) ) ;
36
36
}
37
37
38
- [ Fact ]
39
- public void TreatAllWarningsAsErrorsNoPrefix ( )
40
- {
41
- MockLogger logger = ObjectModelHelpers . BuildProjectExpectFailure ( GetTestProject ( customProperties : new Dictionary < string , string >
42
- {
43
- { "TreatWarningsAsErrors" , "true" } ,
44
- } ) ) ;
45
-
46
- VerifyBuildErrorEvent ( logger ) ;
47
-
48
- ObjectModelHelpers . BuildProjectExpectSuccess ( GetTestProject ( treatAllWarningsAsErrors : false ) ) ;
49
- }
50
-
51
38
/// <summary>
52
39
/// https://github.com/dotnet/msbuild/issues/2667
53
40
/// </summary>
@@ -104,6 +91,22 @@ public void TreatWarningsAsErrorsWhenSpecifiedIndirectly()
104
91
VerifyBuildErrorEvent ( logger ) ;
105
92
}
106
93
94
+ [ Fact ]
95
+ public void TreatWarningsAsErrorsWhenSpecifiedThroughAdditiveProperty ( )
96
+ {
97
+ MockLogger logger = ObjectModelHelpers . BuildProjectExpectFailure (
98
+ GetTestProject (
99
+ customProperties : new List < KeyValuePair < string , string > >
100
+ {
101
+ new KeyValuePair < string , string > ( "MSBuildWarningsAsErrors" , "123" ) ,
102
+ new KeyValuePair < string , string > ( "MSBuildWarningsAsErrors" , $@ "$(MSBuildWarningsAsErrors);
103
+ { ExpectedEventCode . ToLowerInvariant ( ) } " ) ,
104
+ new KeyValuePair < string , string > ( "MSBuildWarningsAsErrors" , "$(MSBuildWarningsAsErrors);ABC" )
105
+ } ) ) ;
106
+
107
+ VerifyBuildErrorEvent ( logger ) ;
108
+ }
109
+
107
110
[ Fact ]
108
111
public void NotTreatWarningsAsErrorsWhenCodeNotSpecified ( )
109
112
{
@@ -174,99 +177,22 @@ public void TreatWarningsAsMessagesWhenSpecifiedIndirectly()
174
177
VerifyBuildMessageEvent ( logger ) ;
175
178
}
176
179
177
- [ Theory ]
178
- [ InlineData ( true ) ]
179
- [ InlineData ( false ) ]
180
- public void TreatWarningsAsMessagesWhenSpecifiedThroughAdditiveProperty ( bool usePrefix )
181
- {
182
- string prefix = usePrefix ? "MSBuild" : "" ;
183
- MockLogger logger = ObjectModelHelpers . BuildProjectExpectSuccess (
184
- GetTestProject (
185
- customProperties : new List < KeyValuePair < string , string > >
186
- {
187
- new KeyValuePair < string , string > ( $ "{ prefix } WarningsAsMessages", "123" ) ,
188
- new KeyValuePair < string , string > ( $ "{ prefix } WarningsAsMessages", $@ "$({ prefix } WarningsAsMessages);
189
- { ExpectedEventCode . ToLowerInvariant ( ) } " ) ,
190
- new KeyValuePair < string , string > ( $ "{ prefix } WarningsAsMessages", $ "$({ prefix } WarningsAsMessages);ABC")
191
- } ) ) ;
192
-
193
- VerifyBuildMessageEvent ( logger ) ;
194
- }
195
-
196
180
[ Fact ]
197
- ///
198
- /// This is for chaining the properties together via addition.
199
- /// Furthermore it is intended to check if the prefix and no prefix variant interacts properly with each other.
200
- ///
201
- public void TreatWarningsAsMessagesWhenSpecifiedThroughAdditivePropertyCombination ( )
181
+ public void TreatWarningsAsMessagesWhenSpecifiedThroughAdditiveProperty ( )
202
182
{
203
183
MockLogger logger = ObjectModelHelpers . BuildProjectExpectSuccess (
204
184
GetTestProject (
205
185
customProperties : new List < KeyValuePair < string , string > >
206
186
{
207
187
new KeyValuePair < string , string > ( "MSBuildWarningsAsMessages" , "123" ) ,
208
- new KeyValuePair < string , string > ( "WarningsAsMessages " , $@ "$(MSBuildWarningsAsMessages);
188
+ new KeyValuePair < string , string > ( "MSBuildWarningsAsMessages " , $@ "$(MSBuildWarningsAsMessages);
209
189
{ ExpectedEventCode . ToLowerInvariant ( ) } " ) ,
210
- new KeyValuePair < string , string > ( "MSBuildWarningsAsMessages" , "$(WarningsAsMessages );ABC" )
190
+ new KeyValuePair < string , string > ( "MSBuildWarningsAsMessages" , "$(MSBuildWarningsAsMessages );ABC" )
211
191
} ) ) ;
212
192
213
193
VerifyBuildMessageEvent ( logger ) ;
214
194
}
215
195
216
- [ Fact ]
217
- public void TreatWarningsNotAsErrorsWhenSpecifiedThroughAdditivePropertyCombination ( )
218
- {
219
- MockLogger logger = ObjectModelHelpers . BuildProjectExpectSuccess (
220
- GetTestProject (
221
- customProperties : new List < KeyValuePair < string , string > >
222
- {
223
- new KeyValuePair < string , string > ( "MSBuildWarningsNotAsErrors" , "123" ) ,
224
- new KeyValuePair < string , string > ( "WarningsNotAsErrors" , $@ "$(MSBuildWarningsNotAsErrors);
225
- { ExpectedEventCode . ToLowerInvariant ( ) } " ) ,
226
- new KeyValuePair < string , string > ( "MSBuildWarningsNotAsErrors" , "$(WarningsNotAsErrors);ABC" )
227
- } ) ,
228
- _output ) ;
229
-
230
- VerifyBuildWarningEvent ( logger ) ;
231
- }
232
-
233
- [ Theory ]
234
- [ InlineData ( true ) ]
235
- [ InlineData ( false ) ]
236
- public void TreatWarningsAsErrorsWhenSpecifiedThroughAdditiveProperty ( bool MSBuildPrefix )
237
- {
238
- string prefix = MSBuildPrefix ? "MSBuild" : "" ;
239
- MockLogger logger = ObjectModelHelpers . BuildProjectExpectFailure (
240
- GetTestProject (
241
- customProperties : new List < KeyValuePair < string , string > >
242
- {
243
- new KeyValuePair < string , string > ( $@ "{ prefix } WarningsAsErrors", "123" ) ,
244
- new KeyValuePair < string , string > ( $@ "{ prefix } WarningsAsErrors", $@ "$({ prefix } WarningsAsErrors);
245
- { ExpectedEventCode . ToLowerInvariant ( ) } " ) ,
246
- new KeyValuePair < string , string > ( $@ "{ prefix } WarningsAsErrors", $@ "$({ prefix } WarningsAsErrors);ABC")
247
- } ) ,
248
- _output ) ;
249
-
250
- VerifyBuildErrorEvent ( logger ) ;
251
- }
252
-
253
- [ Fact ]
254
- public void TreatWarningsAsErrorsWhenSpecifiedThroughAdditivePropertyCombination ( )
255
- {
256
- MockLogger logger = ObjectModelHelpers . BuildProjectExpectFailure (
257
- GetTestProject (
258
- customProperties : new List < KeyValuePair < string , string > >
259
- {
260
- new KeyValuePair < string , string > ( "WarningsAsErrors" , "123" ) ,
261
- new KeyValuePair < string , string > ( "MSBuildWarningsAsErrors" , $@ "$(WarningsAsErrors);
262
- { ExpectedEventCode . ToLowerInvariant ( ) } " ) ,
263
- new KeyValuePair < string , string > ( "WarningsAsErrors" , "$(MSBuildWarningsAsErrors);ABC" )
264
- } ) ,
265
- _output ) ;
266
-
267
- VerifyBuildErrorEvent ( logger ) ;
268
- }
269
-
270
196
[ Fact ]
271
197
public void NotTreatWarningsAsMessagesWhenCodeNotSpecified ( )
272
198
{
@@ -276,8 +202,7 @@ public void NotTreatWarningsAsMessagesWhenCodeNotSpecified()
276
202
{
277
203
new KeyValuePair < string , string > ( "MSBuildWarningsAsMessages" , "123" ) ,
278
204
new KeyValuePair < string , string > ( "MSBuildWarningsAsMessages" , "$(MSBuildWarningsAsMessages);ABC" )
279
- } ) ,
280
- _output ) ;
205
+ } ) ) ;
281
206
282
207
VerifyBuildWarningEvent ( logger ) ;
283
208
}
@@ -348,33 +273,27 @@ private string GetTestProject(bool? treatAllWarningsAsErrors = null, string warn
348
273
</Project>" ;
349
274
}
350
275
351
-
352
276
[ Theory ]
353
277
354
278
[ InlineData ( "MSB1235" , "MSB1234" , "MSB1234" , "MSB1234" , false ) ] // Log MSB1234, treat as error via MSBuildWarningsAsErrors
355
279
[ InlineData ( "MSB1235" , "" , "MSB1234" , "MSB1234" , true ) ] // Log MSB1234, expect MSB1234 as error via MSBuildTreatWarningsAsErrors
356
280
[ InlineData ( "MSB1234" , "MSB1234" , "MSB1234" , "MSB4181" , true ) ] // Log MSB1234, MSBuildWarningsAsMessages takes priority
357
- [ InlineData ( "MSB1235" , "MSB1234" , "MSB1234" , "MSB1234" , false , false ) ] // Log MSB1234, treat as error via BuildWarningsAsErrors
358
- [ InlineData ( "MSB1235" , "" , "MSB1234" , "MSB1234" , true , false ) ] // Log MSB1234, expect MSB1234 as error via BuildTreatWarningsAsErrors
359
- [ InlineData ( "MSB1234" , "MSB1234" , "MSB1234" , "MSB4181" , true , false ) ] // Log MSB1234, BuildWarningsAsMessages takes priority
360
281
public void WarningsAsErrorsAndMessages_Tests ( string WarningsAsMessages ,
361
282
string WarningsAsErrors ,
362
283
string WarningToLog ,
363
284
string LogShouldContain ,
364
- bool allWarningsAreErrors = false ,
365
- bool useMSPrefix = true )
285
+ bool allWarningsAreErrors = false )
366
286
{
367
287
using ( TestEnvironment env = TestEnvironment . Create ( _output ) )
368
288
{
369
- var prefix = useMSPrefix ? "MSBuild" : "" ;
370
289
TransientTestProjectWithFiles proj = env . CreateTestProjectWithFiles ( $@ "
371
290
<Project>
372
291
<UsingTask TaskName = ""ReturnFailureWithoutLoggingErrorTask"" AssemblyName=""Microsoft.Build.Engine.UnitTests""/>
373
292
<UsingTask TaskName = ""CustomLogAndReturnTask"" AssemblyName=""Microsoft.Build.Engine.UnitTests""/>
374
293
<PropertyGroup>
375
- <{ prefix } TreatWarningsAsErrors >{ allWarningsAreErrors } </{ prefix } TreatWarningsAsErrors >
376
- <{ prefix } WarningsAsMessages >{ WarningsAsMessages } </{ prefix } WarningsAsMessages >
377
- <{ prefix } WarningsAsErrors >{ WarningsAsErrors } </{ prefix } WarningsAsErrors >
294
+ <MSBuildTreatWarningsAsErrors >{ allWarningsAreErrors } </MSBuildTreatWarningsAsErrors >
295
+ <MSBuildWarningsAsMessages >{ WarningsAsMessages } </MSBuildWarningsAsMessages >
296
+ <MSBuildWarningsAsErrors >{ WarningsAsErrors } </MSBuildWarningsAsErrors >
378
297
</PropertyGroup>
379
298
<Target Name='Build'>
380
299
<CustomLogAndReturnTask Return=""true"" ReturnHasLoggedErrors=""true"" WarningCode=""{ WarningToLog } ""/>
@@ -391,83 +310,6 @@ public void WarningsAsErrorsAndMessages_Tests(string WarningsAsMessages,
391
310
}
392
311
}
393
312
394
- [ Theory ]
395
-
396
- [ InlineData ( true ) ] // Log MSB1234, BuildWarningsNotAsErrors takes priority
397
- [ InlineData ( false ) ]
398
- public void WarningsNotAsErrorsAndMessages_Tests ( bool useMSPrefix )
399
- {
400
- string Warning = "MSB1235" ;
401
- using ( TestEnvironment env = TestEnvironment . Create ( _output ) )
402
- {
403
- string prefix = useMSPrefix ? "MSBuild" : "" ;
404
- TransientTestProjectWithFiles proj = env . CreateTestProjectWithFiles ( $@ "
405
- <Project>
406
- <PropertyGroup>
407
- <{ prefix } TreatWarningsAsErrors>true</{ prefix } TreatWarningsAsErrors>
408
- <{ prefix } WarningsNotAsErrors>{ Warning } </{ prefix } WarningsNotAsErrors>
409
- </PropertyGroup>
410
- <Target Name='Build'>
411
- <Warning Text=""some random text"" Code='{ Warning } ' />
412
- </Target>
413
- </Project>" ) ;
414
-
415
- MockLogger logger = proj . BuildProjectExpectSuccess ( ) ;
416
-
417
- logger . WarningCount . ShouldBe ( 1 ) ;
418
- logger . ErrorCount . ShouldBe ( 0 ) ;
419
-
420
- logger . AssertLogContains ( Warning ) ;
421
- }
422
- }
423
-
424
-
425
-
426
- [ Theory ]
427
- [ InlineData ( "TreatWarningsAsErrors" , "true" , false ) ] // All warnings are treated as errors
428
- [ InlineData ( "WarningsAsErrors" , "MSB1007" , false ) ]
429
- [ InlineData ( "WarningsAsMessages" , "MSB1007" , false ) ]
430
- [ InlineData ( "WarningsNotAsErrors" , "MSB1007" , true ) ]
431
- [ InlineData ( "WarningsNotAsErrors" , "MSB1007" , false ) ]
432
- public void WarningsChangeWaveTest ( string property , string propertyData , bool treatWarningsAsErrors )
433
- {
434
- using ( TestEnvironment env = TestEnvironment . Create ( _output ) )
435
- {
436
- string warningCode = "MSB1007" ;
437
- string treatWarningsAsErrorsCodeProperty = treatWarningsAsErrors ? "<MSBuildTreatWarningsAsErrors>true</MSBuildTreatWarningsAsErrors>" : "" ;
438
- env . SetEnvironmentVariable ( "MSBUILDDISABLEFEATURESFROMVERSION" , ChangeWaves . Wave17_14 . ToString ( ) ) ;
439
- TransientTestProjectWithFiles proj = env . CreateTestProjectWithFiles ( $@ "
440
- <Project>
441
- <PropertyGroup>
442
- { treatWarningsAsErrorsCodeProperty }
443
- <{ property } >{ propertyData } </{ property } >
444
- </PropertyGroup>
445
- <Target Name='Build'>
446
- <Warning Text=""some random text"" Code='{ warningCode } ' />
447
- </Target>
448
- </Project>" ) ;
449
- if ( treatWarningsAsErrors )
450
- {
451
- // Since the "no prefix" variations can't do anything with the change wave disabled, this should always fail.
452
- MockLogger logger = proj . BuildProjectExpectFailure ( ) ;
453
- logger . ErrorCount . ShouldBe ( 1 ) ;
454
- logger . AssertLogContains ( $ "error { warningCode } ") ;
455
-
456
- logger . AssertLogContains ( warningCode ) ;
457
- }
458
- else
459
- {
460
- MockLogger logger = proj . BuildProjectExpectSuccess ( ) ;
461
-
462
- logger . WarningCount . ShouldBe ( 1 ) ;
463
- logger . AssertLogContains ( $ "warning { warningCode } ") ;
464
- logger . ErrorCount . ShouldBe ( 0 ) ;
465
-
466
- logger . AssertLogContains ( warningCode ) ;
467
- }
468
- }
469
- }
470
-
471
313
/// <summary>
472
314
/// Item1 and Item2 log warnings and continue, item 3 logs a warn-> error and prevents item 4 from running in the batched build.
473
315
/// </summary>
@@ -529,20 +371,17 @@ public void TaskLogsWarningAsError_BatchedBuild()
529
371
[ Theory ]
530
372
[ InlineData ( "MSB1234" , false , 1 , 1 ) ]
531
373
[ InlineData ( "MSB0000" , true , 0 , 2 ) ]
532
- [ InlineData ( "MSB1234" , false , 1 , 1 , false ) ]
533
- [ InlineData ( "MSB0000" , true , 0 , 2 , false ) ]
534
- public void TaskReturnsTrue_Tests ( string warningsAsErrors , bool treatAllWarningsAsErrors , int warningCountShouldBe , int errorCountShouldBe , bool useMSPrefix = true )
374
+ public void TaskReturnsTrue_Tests ( string warningsAsErrors , bool treatAllWarningsAsErrors , int warningCountShouldBe , int errorCountShouldBe )
535
375
{
536
- string prefix = useMSPrefix ? "MSBuild" : "" ;
537
376
using ( TestEnvironment env = TestEnvironment . Create ( _output ) )
538
377
{
539
378
TransientTestProjectWithFiles proj = env . CreateTestProjectWithFiles ( $@ "
540
379
<Project>
541
380
<UsingTask TaskName = ""ReturnFailureWithoutLoggingErrorTask"" AssemblyName=""Microsoft.Build.Engine.UnitTests""/>
542
381
<UsingTask TaskName = ""CustomLogAndReturnTask"" AssemblyName=""Microsoft.Build.Engine.UnitTests""/>
543
382
<PropertyGroup>
544
- <{ prefix } TreatWarningsAsErrors >{ treatAllWarningsAsErrors } </{ prefix } TreatWarningsAsErrors >
545
- <{ prefix } WarningsAsErrors >{ warningsAsErrors } </{ prefix } WarningsAsErrors >
383
+ <MSBuildTreatWarningsAsErrors >{ treatAllWarningsAsErrors } </MSBuildTreatWarningsAsErrors >
384
+ <MSBuildWarningsAsErrors >{ warningsAsErrors } </MSBuildWarningsAsErrors >
546
385
</PropertyGroup>
547
386
<Target Name='Build'>
548
387
<CustomLogAndReturnTask Return=""true"" WarningCode=""MSB1234""/>
0 commit comments