From 6bb2c3d5a2082c377a31bffe1bbdb950b5e15781 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 3 Jun 2020 14:01:28 +1000 Subject: Get the inner exception test working in the MSBuild test project. --- src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs | 26 ++++++++++++++++++++++ .../WixToolsetTest.MSBuild/MsbuildUtilities.cs | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'src/test/WixToolsetTest.MSBuild') diff --git a/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs b/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs index 71255165..163e8402 100644 --- a/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs +++ b/src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs @@ -378,5 +378,31 @@ namespace WixToolsetTest.MSBuild Assert.Empty(remainingPaths); } } + + [Theory] + [InlineData(BuildSystem.DotNetCoreSdk)] + [InlineData(BuildSystem.MSBuild)] + [InlineData(BuildSystem.MSBuild64)] + public void ReportsInnerExceptionForUnexpectedExceptions(BuildSystem buildSystem) + { + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage"); + + using (var fs = new TestDataFolderFileSystem()) + { + fs.Initialize(sourceFolder); + var baseFolder = fs.BaseFolder; + var binFolder = Path.Combine(baseFolder, @"bin\"); + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] + { + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixToolDir", Path.Combine(MsbuildUtilities.WixMsbuildPath, "broken", "net461")), + }, outOfProc: true); + Assert.Equal(1, result.ExitCode); + + var expectedMessage = "System.PlatformNotSupportedException: Could not find platform specific 'wixnative.exe' ---> System.IO.FileNotFoundException: Could not find internal piece of WiX Toolset from"; + Assert.Contains(result.Output, m => m.Contains(expectedMessage)); + } + } } } diff --git a/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs b/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs index 90c3194b..fead4915 100644 --- a/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs +++ b/src/test/WixToolsetTest.MSBuild/MsbuildUtilities.cs @@ -17,7 +17,8 @@ namespace WixToolsetTest.MSBuild public static class MsbuildUtilities { - public static readonly string WixPropsPath = Path.Combine(new Uri(typeof(MsbuildUtilities).Assembly.CodeBase).AbsolutePath, "..", "..", "publish", "WixToolset.MSBuild", "build", "WixToolset.MSBuild.props"); + public static readonly string WixMsbuildPath = Path.Combine(new Uri(typeof(MsbuildUtilities).Assembly.CodeBase).AbsolutePath, "..", "..", "publish", "WixToolset.MSBuild"); + public static readonly string WixPropsPath = Path.Combine(WixMsbuildPath, "build", "WixToolset.MSBuild.props"); public static MsbuildRunnerResult BuildProject(BuildSystem buildSystem, string projectPath, string[] arguments = null, string configuration = "Release", bool? outOfProc = null, string verbosityLevel = "normal") { -- cgit v1.2.3-55-g6feb