From b673734cce44dd28c1d4d1810da3069324466166 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 2 Jan 2021 19:00:16 -0600 Subject: Implement command line for SuppressAllWarnings and WarningsAsError. Make WixRunner.Execute default to setting WarningsAsError to make sure tests are not accidentally causing warnings. --- src/WixToolset.Core.TestPackage/WixRunner.cs | 30 +++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'src/WixToolset.Core.TestPackage') diff --git a/src/WixToolset.Core.TestPackage/WixRunner.cs b/src/WixToolset.Core.TestPackage/WixRunner.cs index a3883cd5..ed7c49b8 100644 --- a/src/WixToolset.Core.TestPackage/WixRunner.cs +++ b/src/WixToolset.Core.TestPackage/WixRunner.cs @@ -21,23 +21,36 @@ namespace WixToolset.Core.TestPackage /// /// /// + /// /// - public static int Execute(string[] args, out List messages) + public static int Execute(string[] args, out List messages, bool warningsAsErrors = true) { var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); - var task = Execute(args, serviceProvider, out messages); + var task = Execute(args, serviceProvider, out messages, warningsAsErrors: warningsAsErrors); return task.Result; } /// /// Emulates calling wix.exe with standard backends. + /// This overload always treats warnings as errors. /// /// /// public static WixRunnerResult Execute(params string[] args) + { + return Execute(true, args); + } + + /// + /// Emulates calling wix.exe with standard backends. + /// + /// + /// + /// + public static WixRunnerResult Execute(bool warningsAsErrors, params string[] args) { var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); - var exitCode = Execute(args, serviceProvider, out var messages); + var exitCode = Execute(args, serviceProvider, out var messages, warningsAsErrors: warningsAsErrors); return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; } @@ -47,8 +60,9 @@ namespace WixToolset.Core.TestPackage /// /// /// + /// /// - public static Task Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List messages) + public static Task Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List messages, bool warningsAsErrors = true) { coreProvider.AddWindowsInstallerBackend() .AddBundleBackend(); @@ -60,8 +74,14 @@ namespace WixToolset.Core.TestPackage var messaging = coreProvider.GetService(); messaging.SetListener(listener); + var arguments = new List(args); + if (warningsAsErrors) + { + arguments.Add("-wx"); + } + var commandLine = coreProvider.GetService(); - var command = commandLine.CreateCommand(args); + var command = commandLine.CreateCommand(arguments.ToArray()); return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); } } -- cgit v1.2.3-55-g6feb