aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.TestPackage/WixRunner.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Core.TestPackage/WixRunner.cs30
1 files changed, 25 insertions, 5 deletions
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
21 /// </summary> 21 /// </summary>
22 /// <param name="args"></param> 22 /// <param name="args"></param>
23 /// <param name="messages"></param> 23 /// <param name="messages"></param>
24 /// <param name="warningsAsErrors"></param>
24 /// <returns></returns> 25 /// <returns></returns>
25 public static int Execute(string[] args, out List<Message> messages) 26 public static int Execute(string[] args, out List<Message> messages, bool warningsAsErrors = true)
26 { 27 {
27 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); 28 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
28 var task = Execute(args, serviceProvider, out messages); 29 var task = Execute(args, serviceProvider, out messages, warningsAsErrors: warningsAsErrors);
29 return task.Result; 30 return task.Result;
30 } 31 }
31 32
32 /// <summary> 33 /// <summary>
33 /// Emulates calling wix.exe with standard backends. 34 /// Emulates calling wix.exe with standard backends.
35 /// This overload always treats warnings as errors.
34 /// </summary> 36 /// </summary>
35 /// <param name="args"></param> 37 /// <param name="args"></param>
36 /// <returns></returns> 38 /// <returns></returns>
37 public static WixRunnerResult Execute(params string[] args) 39 public static WixRunnerResult Execute(params string[] args)
38 { 40 {
41 return Execute(true, args);
42 }
43
44 /// <summary>
45 /// Emulates calling wix.exe with standard backends.
46 /// </summary>
47 /// <param name="warningsAsErrors"></param>
48 /// <param name="args"></param>
49 /// <returns></returns>
50 public static WixRunnerResult Execute(bool warningsAsErrors, params string[] args)
51 {
39 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); 52 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
40 var exitCode = Execute(args, serviceProvider, out var messages); 53 var exitCode = Execute(args, serviceProvider, out var messages, warningsAsErrors: warningsAsErrors);
41 return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; 54 return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() };
42 } 55 }
43 56
@@ -47,8 +60,9 @@ namespace WixToolset.Core.TestPackage
47 /// <param name="args"></param> 60 /// <param name="args"></param>
48 /// <param name="coreProvider"></param> 61 /// <param name="coreProvider"></param>
49 /// <param name="messages"></param> 62 /// <param name="messages"></param>
63 /// <param name="warningsAsErrors"></param>
50 /// <returns></returns> 64 /// <returns></returns>
51 public static Task<int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List<Message> messages) 65 public static Task<int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List<Message> messages, bool warningsAsErrors = true)
52 { 66 {
53 coreProvider.AddWindowsInstallerBackend() 67 coreProvider.AddWindowsInstallerBackend()
54 .AddBundleBackend(); 68 .AddBundleBackend();
@@ -60,8 +74,14 @@ namespace WixToolset.Core.TestPackage
60 var messaging = coreProvider.GetService<IMessaging>(); 74 var messaging = coreProvider.GetService<IMessaging>();
61 messaging.SetListener(listener); 75 messaging.SetListener(listener);
62 76
77 var arguments = new List<string>(args);
78 if (warningsAsErrors)
79 {
80 arguments.Add("-wx");
81 }
82
63 var commandLine = coreProvider.GetService<ICommandLine>(); 83 var commandLine = coreProvider.GetService<ICommandLine>();
64 var command = commandLine.CreateCommand(args); 84 var command = commandLine.CreateCommand(arguments.ToArray());
65 return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); 85 return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1);
66 } 86 }
67 } 87 }