diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-06-08 16:25:38 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-06-08 16:37:14 -0700 |
| commit | 04b8976ca565ce95cf32a58c8725843618724383 (patch) | |
| tree | 72cf07a394f193a49afcba9bac89647e3b0a0922 /src/WixToolset.Core.TestPackage | |
| parent | 3fb889ab7aa3cb0dfae23e0379e28552e919ad72 (diff) | |
| download | wix-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.cs | 11 |
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) |
