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.cs114
1 files changed, 112 insertions, 2 deletions
diff --git a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
index 40ebad5b..bd6f70bc 100644
--- a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
+++ b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
@@ -273,7 +273,47 @@ namespace WixToolsetTest.Sdk
273 }); 273 });
274 } 274 }
275 275
276 private void AssertWixpdb(BuildSystem buildSystem, string wixpdbType, string[] expectedOutputFiles) 276 [Theory]
277 [InlineData(BuildSystem.DotNetCoreSdk)]
278 [InlineData(BuildSystem.MSBuild)]
279 [InlineData(BuildSystem.MSBuild64)]
280 public void CanBuildWithWixpdbToDifferentFolder(BuildSystem buildSystem)
281 {
282 var expectedOutputFiles = new[]
283 {
284 @"bin\x86\Release\en-US\cab1.cab",
285 @"bin\x86\Release\en-US\MsiPackage.msi",
286 @"pdb\en-US\MsiPackage.wixpdb",
287 };
288
289 var sourceFolder = TestData.Get(@"TestData", "SimpleMsiPackage", "MsiPackage");
290
291 using (var fs = new TestDataFolderFileSystem())
292 {
293 fs.Initialize(sourceFolder);
294 var baseFolder = fs.BaseFolder;
295 var binFolder = Path.Combine(baseFolder, @"bin\");
296 var pdbFolder = Path.Combine(baseFolder, @"pdb\");
297 var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
298
299 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[]
300 {
301 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath),
302 $"-p:PdbOutputDir={pdbFolder}",
303 "-p:SuppressValidation=true"
304 });
305 result.AssertSuccess();
306
307 var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
308 .Concat(Directory.EnumerateFiles(pdbFolder, @"*.*", SearchOption.AllDirectories))
309 .Select(s => s.Substring(baseFolder.Length + 1))
310 .OrderBy(s => s)
311 .ToArray();
312 WixAssert.CompareLineByLine(expectedOutputFiles, paths);
313 }
314 }
315
316 private void AssertWixpdb(BuildSystem buildSystem, string debugType, string[] expectedOutputFiles)
277 { 317 {
278 var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage"); 318 var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
279 319
@@ -287,7 +327,7 @@ namespace WixToolsetTest.Sdk
287 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] 327 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[]
288 { 328 {
289 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath), 329 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath),
290 wixpdbType == null ? String.Empty : $"-p:WixPdbType={wixpdbType}", 330 debugType == null ? String.Empty : $"-p:DebugType={debugType}",
291 "-p:SuppressValidation=true" 331 "-p:SuppressValidation=true"
292 }); 332 });
293 result.AssertSuccess(); 333 result.AssertSuccess();
@@ -425,6 +465,76 @@ namespace WixToolsetTest.Sdk
425 } 465 }
426 466
427 [Theory] 467 [Theory]
468 [InlineData(BuildSystem.DotNetCoreSdk, null)]
469 [InlineData(BuildSystem.DotNetCoreSdk, true)]
470 [InlineData(BuildSystem.MSBuild, null)]
471 [InlineData(BuildSystem.MSBuild, true)]
472 [InlineData(BuildSystem.MSBuild64, null)]
473 [InlineData(BuildSystem.MSBuild64, true)]
474 public void CanBuildSimpleWixlib(BuildSystem buildSystem, bool? outOfProc)
475 {
476 var sourceFolder = TestData.Get(@"TestData", "Wixlib", "SimpleWixlib");
477
478 using (var fs = new TestDataFolderFileSystem())
479 {
480 fs.Initialize(sourceFolder);
481 var baseFolder = fs.BaseFolder;
482 var binFolder = Path.Combine(baseFolder, @"bin\");
483 var projectPath = Path.Combine(baseFolder, "SimpleWixlib.wixproj");
484
485 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[]
486 {
487 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath),
488 }, outOfProc: outOfProc);
489 result.AssertSuccess();
490
491 var wixBuildCommands = MsbuildUtilities.GetToolCommandLines(result, "wix", "build", buildSystem, outOfProc);
492 Assert.Single(wixBuildCommands);
493
494 var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
495 .Select(s => s.Substring(baseFolder.Length + 1))
496 .Single();
497 WixAssert.StringEqual(@"bin\x86\Release\SimpleWixlib.wixlib", path);
498 }
499 }
500
501 [Theory]
502 [InlineData(BuildSystem.DotNetCoreSdk, null)]
503 [InlineData(BuildSystem.DotNetCoreSdk, true)]
504 [InlineData(BuildSystem.MSBuild, null)]
505 [InlineData(BuildSystem.MSBuild, true)]
506 [InlineData(BuildSystem.MSBuild64, null)]
507 [InlineData(BuildSystem.MSBuild64, true)]
508 public void CanBuildPackageIncludingSimpleWixlib(BuildSystem buildSystem, bool? outOfProc)
509 {
510 var sourceFolder = TestData.Get(@"TestData", "Wixlib");
511
512 using (var fs = new TestDataFolderFileSystem())
513 {
514 fs.Initialize(sourceFolder);
515 var baseFolder = fs.BaseFolder;
516 var binFolder = Path.Combine(baseFolder, "PackageIncludesWixlib", @"bin\");
517 var projectPath = Path.Combine(baseFolder, "PackageIncludesWixlib", "PackageIncludesWixlib.wixproj");
518
519 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[]
520 {
521 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath),
522 }, outOfProc: outOfProc);
523 result.AssertSuccess();
524
525 var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
526 .Select(s => s.Substring(baseFolder.Length + 1))
527 .ToArray();
528 WixAssert.CompareLineByLine(new[]
529 {
530 @"PackageIncludesWixlib\bin\x86\Release\cab1.cab",
531 @"PackageIncludesWixlib\bin\x86\Release\PackageIncludesWixlib.msi",
532 @"PackageIncludesWixlib\bin\x86\Release\PackageIncludesWixlib.wixpdb",
533 }, paths);
534 }
535 }
536
537 [Theory]
428 [InlineData(BuildSystem.DotNetCoreSdk)] 538 [InlineData(BuildSystem.DotNetCoreSdk)]
429 [InlineData(BuildSystem.MSBuild)] 539 [InlineData(BuildSystem.MSBuild)]
430 [InlineData(BuildSystem.MSBuild64)] 540 [InlineData(BuildSystem.MSBuild64)]