From 82a26a321bae36e38743f50f38887387a392ce24 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 1 Jun 2020 21:58:44 +1000 Subject: Add ability for net461 tasks to run the tool out of proc. --- src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs | 25 +++++++++++----------- .../WixToolsetTest.MSBuild/MsbuildHeatFixture.cs | 8 +++++-- .../WixToolsetTest.MSBuild/MsbuildUtilities.cs | 7 +++++- 3 files changed, 25 insertions(+), 15 deletions(-) (limited to 'src/test/WixToolsetTest.MSBuild') diff --git a/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs b/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs index 210473fa..6862f2a8 100644 --- a/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs +++ b/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs @@ -28,9 +28,6 @@ namespace WixToolsetTest.MSBuild var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); result.AssertSuccess(); - var platformSwitches = result.Output.Where(line => line.TrimStart().StartsWith("wix.exe build -platform x86")); - Assert.Single(platformSwitches); - var warnings = result.Output.Where(line => line.Contains(": warning")); Assert.Empty(warnings); @@ -63,9 +60,6 @@ namespace WixToolsetTest.MSBuild var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); result.AssertSuccess(); - var platformSwitches = result.Output.Where(line => line.TrimStart().StartsWith("wix.exe build -platform x86")); - Assert.Single(platformSwitches); - var warnings = result.Output.Where(line => line.Contains(": warning")); Assert.Empty(warnings); @@ -98,7 +92,7 @@ namespace WixToolsetTest.MSBuild var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); result.AssertSuccess(); - var platformSwitches = result.Output.Where(line => line.TrimStart().StartsWith("wix.exe build -platform x86")); + var platformSwitches = result.Output.Where(line => line.Contains("-platform x86")); Assert.Single(platformSwitches); var warnings = result.Output.Where(line => line.Contains(": warning")); @@ -223,7 +217,7 @@ namespace WixToolsetTest.MSBuild }); result.AssertSuccess(); - var platformSwitches = result.Output.Where(line => line.TrimStart().StartsWith("wix.exe build -platform x64")); + var platformSwitches = result.Output.Where(line => line.Contains("-platform x64")); Assert.Single(platformSwitches); var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) @@ -287,9 +281,11 @@ namespace WixToolsetTest.MSBuild } [Theory] - [InlineData(BuildSystem.MSBuild)] - [InlineData(BuildSystem.MSBuild64)] - public void CanBuildSimpleMsiPackageAsWixipl(BuildSystem buildSystem) + [InlineData(BuildSystem.MSBuild, null)] + [InlineData(BuildSystem.MSBuild, true)] + [InlineData(BuildSystem.MSBuild64, null)] + [InlineData(BuildSystem.MSBuild64, true)] + public void CanBuildSimpleMsiPackageAsWixipl(BuildSystem buildSystem, bool? outOfProc) { var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage"); @@ -303,9 +299,14 @@ namespace WixToolsetTest.MSBuild var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] { "-p:OutputType=IntermediatePostLink", - }); + }, outOfProc: outOfProc); result.AssertSuccess(); + var expectedOutOfProc = outOfProc.HasValue && outOfProc.Value; + var expectedWixCommand = $"{(expectedOutOfProc ? "wix.exe" : "(wix.exe)")} build"; + var buildCommands = result.Output.Where(line => line.TrimStart().Contains(expectedWixCommand)); + Assert.Single(buildCommands); + var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) .Select(s => s.Substring(baseFolder.Length + 1)) .Single(); diff --git a/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs b/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs index 038da241..b5c71f86 100644 --- a/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs +++ b/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs @@ -31,7 +31,9 @@ namespace WixToolsetTest.MSBuild var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); result.AssertSuccess(); - var heatCommandLines = result.Output.Where(line => line.TrimStart().StartsWith("heat.exe file")); + var expectedOutOfProc = false; + var expectedHeatCommand = $"{(expectedOutOfProc ? "heat.exe" : "(heat.exe)")} file"; + var heatCommandLines = result.Output.Where(line => line.Contains(expectedHeatCommand)); Assert.Single(heatCommandLines); var warnings = result.Output.Where(line => line.Contains(": warning")); @@ -86,7 +88,9 @@ namespace WixToolsetTest.MSBuild var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); result.AssertSuccess(); - var heatCommandLines = result.Output.Where(line => line.TrimStart().StartsWith("heat.exe file")); + var expectedOutOfProc = false; + var expectedHeatCommand = $"{(expectedOutOfProc ? "heat.exe" : "(heat.exe)")} file"; + var heatCommandLines = result.Output.Where(line => line.Contains(expectedHeatCommand)); Assert.Equal(2, heatCommandLines.Count()); var warnings = result.Output.Where(line => line.Contains(": warning")); diff --git a/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs b/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs index 633fffe0..6a6f32e0 100644 --- a/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs +++ b/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs @@ -17,7 +17,7 @@ namespace WixToolsetTest.MSBuild { public static readonly string WixPropsPath = Path.Combine(new Uri(typeof(MsbuildUtilities).Assembly.CodeBase).AbsolutePath, "..", "..", "publish", "WixToolset.MSBuild", "build", "WixToolset.MSBuild.props"); - public static MsbuildRunnerResult BuildProject(BuildSystem buildSystem, string projectPath, string[] arguments = null, string configuration = "Release") + public static MsbuildRunnerResult BuildProject(BuildSystem buildSystem, string projectPath, string[] arguments = null, string configuration = "Release", bool? outOfProc = null) { var allArgs = new List { @@ -28,6 +28,11 @@ namespace WixToolsetTest.MSBuild "-nr:false", }; + if (outOfProc.HasValue) + { + allArgs.Add($"-p:RunWixToolsOutOfProc={outOfProc.Value}"); + } + if (arguments != null) { allArgs.AddRange(arguments); -- cgit v1.2.3-55-g6feb