summaryrefslogtreecommitdiff
path: root/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs')
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs81
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 }