diff options
Diffstat (limited to 'src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs')
-rw-r--r-- | src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs | 81 |
1 files changed, 77 insertions, 4 deletions
diff --git a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs index 3a9ce776..1a82c035 100644 --- a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs +++ b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs | |||
@@ -271,6 +271,7 @@ namespace WixToolsetTest.Sdk | |||
271 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] | 271 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] |
272 | { | 272 | { |
273 | wixpdbType == null ? String.Empty : $"-p:WixPdbType={wixpdbType}", | 273 | wixpdbType == null ? String.Empty : $"-p:WixPdbType={wixpdbType}", |
274 | "-p:SuppressValidation=true" | ||
274 | }); | 275 | }); |
275 | result.AssertSuccess(); | 276 | result.AssertSuccess(); |
276 | 277 | ||
@@ -323,9 +324,44 @@ namespace WixToolsetTest.Sdk | |||
323 | [InlineData(BuildSystem.DotNetCoreSdk)] | 324 | [InlineData(BuildSystem.DotNetCoreSdk)] |
324 | [InlineData(BuildSystem.MSBuild)] | 325 | [InlineData(BuildSystem.MSBuild)] |
325 | [InlineData(BuildSystem.MSBuild64)] | 326 | [InlineData(BuildSystem.MSBuild64)] |
326 | public void CanBuildSimpleMsiPackageWithIceSuppressions(BuildSystem buildSystem) | 327 | public void CannotBuildMsiPackageWithIceIssues(BuildSystem buildSystem) |
327 | { | 328 | { |
328 | var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage"); | 329 | var sourceFolder = TestData.Get(@"TestData\MsiPackageWithIceError\MsiPackage"); |
330 | |||
331 | using (var fs = new TestDataFolderFileSystem()) | ||
332 | { | ||
333 | fs.Initialize(sourceFolder); | ||
334 | var baseFolder = fs.BaseFolder; | ||
335 | var binFolder = Path.Combine(baseFolder, @"bin\"); | ||
336 | var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj"); | ||
337 | |||
338 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, suppressValidation: false); | ||
339 | Assert.Equal(1, result.ExitCode); | ||
340 | |||
341 | var iceIssues = result.Output.Where(line => line.Contains(": error") || line.Contains(": warning")) | ||
342 | .Select(line => line.Replace(baseFolder, "<baseFolder>") | ||
343 | .Replace("1>", String.Empty) // remove any multi-proc markers | ||
344 | .Replace("WIX204", "WIX0204") // normalize error number reporting because MSBuild is not consistent on zero padding | ||
345 | .Trim()) | ||
346 | .OrderBy(s => s, StringComparer.OrdinalIgnoreCase) | ||
347 | .ToArray(); | ||
348 | WixAssert.CompareLineByLine(new[] | ||
349 | { | ||
350 | @"<baseFolder>\Package.wxs(17): error WIX0204: ICE12: CustomAction: CausesICE12Error is of type: 35. Therefore it must come after CostFinalize @ 1000 in Seq Table: InstallExecuteSequence. CA Seq#: 49 [<baseFolder>\MsiPackage.wixproj]", | ||
351 | @"<baseFolder>\Package.wxs(17): error WIX0204: ICE12: CustomAction: CausesICE12Error is of type: 35. Therefore it must come after CostFinalize @ 1000 in Seq Table: InstallExecuteSequence. CA Seq#: 49 [<baseFolder>\MsiPackage.wixproj]", | ||
352 | @"<baseFolder>\Package.wxs(8): warning WIX1076: ICE46: Property 'Myproperty' referenced in column 'LaunchCondition'.'Condition' of row 'Myproperty' differs from a defined property by case only. [<baseFolder>\MsiPackage.wixproj]", | ||
353 | @"<baseFolder>\Package.wxs(8): warning WIX1076: ICE46: Property 'Myproperty' referenced in column 'LaunchCondition'.'Condition' of row 'Myproperty' differs from a defined property by case only. [<baseFolder>\MsiPackage.wixproj]", | ||
354 | }, iceIssues); | ||
355 | } | ||
356 | } | ||
357 | |||
358 | [Theory] | ||
359 | [InlineData(BuildSystem.DotNetCoreSdk)] | ||
360 | [InlineData(BuildSystem.MSBuild)] | ||
361 | [InlineData(BuildSystem.MSBuild64)] | ||
362 | public void CannotBuildMsiPackageWithIceWarningsAsErrors(BuildSystem buildSystem) | ||
363 | { | ||
364 | var sourceFolder = TestData.Get(@"TestData\MsiPackageWithIceError\MsiPackage"); | ||
329 | 365 | ||
330 | using (var fs = new TestDataFolderFileSystem()) | 366 | using (var fs = new TestDataFolderFileSystem()) |
331 | { | 367 | { |
@@ -336,8 +372,45 @@ namespace WixToolsetTest.Sdk | |||
336 | 372 | ||
337 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] | 373 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] |
338 | { | 374 | { |
339 | MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "SuppressIces", "ICE45;ICE46"), | 375 | $"-p:TreatWarningsAsErrors=true", |
340 | }); | 376 | MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "SuppressIces", "ICE12"), |
377 | }, suppressValidation: false); | ||
378 | Assert.Equal(1, result.ExitCode); | ||
379 | |||
380 | var iceIssues = result.Output.Where(line => (line.Contains(": error") || line.Contains(": warning"))) | ||
381 | .Select(line => line.Replace(baseFolder, "<baseFolder>") | ||
382 | .Replace("1>", String.Empty) // remove any multi-proc markers | ||
383 | .Replace("WIX204", "WIX0204") // normalize error number reporting because MSBuild is not consistent on zero padding | ||
384 | .Trim()) | ||
385 | .OrderBy(s => s, StringComparer.OrdinalIgnoreCase) | ||
386 | .ToArray(); | ||
387 | WixAssert.CompareLineByLine(new[] | ||
388 | { | ||
389 | @"<baseFolder>\Package.wxs(8): error WIX1076: ICE46: Property 'Myproperty' referenced in column 'LaunchCondition'.'Condition' of row 'Myproperty' differs from a defined property by case only. [<baseFolder>\MsiPackage.wixproj]", | ||
390 | @"<baseFolder>\Package.wxs(8): error WIX1076: ICE46: Property 'Myproperty' referenced in column 'LaunchCondition'.'Condition' of row 'Myproperty' differs from a defined property by case only. [<baseFolder>\MsiPackage.wixproj]", | ||
391 | }, iceIssues); | ||
392 | } | ||
393 | } | ||
394 | |||
395 | [Theory] | ||
396 | [InlineData(BuildSystem.DotNetCoreSdk)] | ||
397 | [InlineData(BuildSystem.MSBuild)] | ||
398 | [InlineData(BuildSystem.MSBuild64)] | ||
399 | public void CanBuildMsiPackageWithIceSuppressions(BuildSystem buildSystem) | ||
400 | { | ||
401 | var sourceFolder = TestData.Get(@"TestData\MsiPackageWithIceError\MsiPackage"); | ||
402 | |||
403 | using (var fs = new TestDataFolderFileSystem()) | ||
404 | { | ||
405 | fs.Initialize(sourceFolder); | ||
406 | var baseFolder = fs.BaseFolder; | ||
407 | var binFolder = Path.Combine(baseFolder, @"bin\"); | ||
408 | var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj"); | ||
409 | |||
410 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] | ||
411 | { | ||
412 | MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "SuppressIces", "ICE12"), | ||
413 | }, suppressValidation: false); | ||
341 | result.AssertSuccess(); | 414 | result.AssertSuccess(); |
342 | } | 415 | } |
343 | } | 416 | } |