From 04b8976ca565ce95cf32a58c8725843618724383 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 8 Jun 2020 16:25:38 -0700 Subject: Make commands async and internal processes cancelable --- src/WixToolset.Core.TestPackage/WixRunner.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/WixToolset.Core.TestPackage') 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 { using System; using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; using WixToolset.Data; using WixToolset.Extensibility.Data; using WixToolset.Extensibility.Services; @@ -13,17 +15,18 @@ namespace WixToolset.Core.TestPackage public static int Execute(string[] args, out List messages) { var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); - return Execute(args, serviceProvider, out messages); + var task = Execute(args, serviceProvider, out messages); + return task.Result; } public static WixRunnerResult Execute(params string[] args) { var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); var exitCode = Execute(args, serviceProvider, out var messages); - return new WixRunnerResult { ExitCode = exitCode, Messages = messages.ToArray() }; + return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; } - public static int Execute(string[] args, IWixToolsetServiceProvider serviceProvider, out List messages) + public static Task Execute(string[] args, IWixToolsetServiceProvider serviceProvider, out List messages) { var listener = new TestMessageListener(); @@ -39,7 +42,7 @@ namespace WixToolset.Core.TestPackage commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); commandLine.Arguments = arguments; var command = commandLine.ParseStandardCommandLine(); - return command?.Execute() ?? 1; + return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); } private static IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, string[] extensions) -- cgit v1.2.3-55-g6feb