aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.TestPackage
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-08 16:25:38 -0700
committerRob Mensching <rob@firegiant.com>2020-06-08 16:37:14 -0700
commit04b8976ca565ce95cf32a58c8725843618724383 (patch)
tree72cf07a394f193a49afcba9bac89647e3b0a0922 /src/WixToolset.Core.TestPackage
parent3fb889ab7aa3cb0dfae23e0379e28552e919ad72 (diff)
downloadwix-04b8976ca565ce95cf32a58c8725843618724383.tar.gz
wix-04b8976ca565ce95cf32a58c8725843618724383.tar.bz2
wix-04b8976ca565ce95cf32a58c8725843618724383.zip
Make commands async and internal processes cancelable
Diffstat (limited to 'src/WixToolset.Core.TestPackage')
-rw-r--r--src/WixToolset.Core.TestPackage/WixRunner.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/WixToolset.Core.TestPackage/WixRunner.cs b/src/WixToolset.Core.TestPackage/WixRunner.cs
index 082e9e10..679956bd 100644
--- a/src/WixToolset.Core.TestPackage/WixRunner.cs
+++ b/src/WixToolset.Core.TestPackage/WixRunner.cs
@@ -4,6 +4,8 @@ namespace WixToolset.Core.TestPackage
4{ 4{
5 using System; 5 using System;
6 using System.Collections.Generic; 6 using System.Collections.Generic;
7 using System.Threading;
8 using System.Threading.Tasks;
7 using WixToolset.Data; 9 using WixToolset.Data;
8 using WixToolset.Extensibility.Data; 10 using WixToolset.Extensibility.Data;
9 using WixToolset.Extensibility.Services; 11 using WixToolset.Extensibility.Services;
@@ -13,17 +15,18 @@ namespace WixToolset.Core.TestPackage
13 public static int Execute(string[] args, out List<Message> messages) 15 public static int Execute(string[] args, out List<Message> messages)
14 { 16 {
15 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); 17 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
16 return Execute(args, serviceProvider, out messages); 18 var task = Execute(args, serviceProvider, out messages);
19 return task.Result;
17 } 20 }
18 21
19 public static WixRunnerResult Execute(params string[] args) 22 public static WixRunnerResult Execute(params string[] args)
20 { 23 {
21 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); 24 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
22 var exitCode = Execute(args, serviceProvider, out var messages); 25 var exitCode = Execute(args, serviceProvider, out var messages);
23 return new WixRunnerResult { ExitCode = exitCode, Messages = messages.ToArray() }; 26 return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() };
24 } 27 }
25 28
26 public static int Execute(string[] args, IWixToolsetServiceProvider serviceProvider, out List<Message> messages) 29 public static Task<int> Execute(string[] args, IWixToolsetServiceProvider serviceProvider, out List<Message> messages)
27 { 30 {
28 var listener = new TestMessageListener(); 31 var listener = new TestMessageListener();
29 32
@@ -39,7 +42,7 @@ namespace WixToolset.Core.TestPackage
39 commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); 42 commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions);
40 commandLine.Arguments = arguments; 43 commandLine.Arguments = arguments;
41 var command = commandLine.ParseStandardCommandLine(); 44 var command = commandLine.ParseStandardCommandLine();
42 return command?.Execute() ?? 1; 45 return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1);
43 } 46 }
44 47
45 private static IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, string[] extensions) 48 private static IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, string[] extensions)