public async Task DoubleStart() { var session = new RSession(0, () => { }); Func <Task> start = () => session.StartHostAsync(new RHostStartupInfo { Name = _testMethod.Name, RBasePath = RUtilities.FindExistingRBasePath() }, null, 50000); Func <Task> f = () => ParallelTools.InvokeAsync(4, i => start()); f.ShouldThrow <InvalidOperationException>(); await session.HostStarted; session.IsHostRunning.Should().BeTrue(); await session.StopHostAsync(); session.IsHostRunning.Should().BeFalse(); }
public async Task StartStop() { var session = new RSession(0, () => { }); session.HostStarted.Status.Should().Be(TaskStatus.Canceled); session.IsHostRunning.Should().BeFalse(); await session.StartHostAsync(new RHostStartupInfo { Name = _testMethod.Name, RBasePath = RUtilities.FindExistingRBasePath() }, null, 50000); session.HostStarted.Status.Should().Be(TaskStatus.RanToCompletion); session.IsHostRunning.Should().BeTrue(); await session.StopHostAsync(); session.HostStarted.Status.Should().Be(TaskStatus.Canceled); session.IsHostRunning.Should().BeFalse(); }
public async Task StartStopMultipleSessions() { Func <int, Task <RSession> > start = async i => { var session = new RSession(i, _testMethod.FileSystemSafeName + i, _brokerClient, new AsyncReaderWriterLock().CreateExclusiveReaderLock(), () => { }); await session.StartHostAsync(new RHostStartupInfo(), null, 50000); return(session); }; var sessionsTasks = await ParallelTools.InvokeAsync(4, start, 50000); sessionsTasks.Should().OnlyContain(t => t.Status == TaskStatus.RanToCompletion); var sessions = sessionsTasks.Select(t => t.Result).ToList(); sessions.Should().OnlyContain(t => t.IsHostRunning); var sessionStopTasks = await ParallelTools.InvokeAsync(4, i => sessionsTasks[i].Result.StopHostAsync()); sessionStopTasks.Should().OnlyContain(t => t.Status == TaskStatus.RanToCompletion); sessions.Should().OnlyContain(t => !t.IsHostRunning); }
public async Task StartupOptions() { var session = new RSession(0, _testMethod.FileSystemSafeName, _fileSystem, _brokerClient, new AsyncReaderWriterLock().CreateExclusiveReaderLock(), () => { }); var info = new RHostStartupInfo(string.Empty, null, 1251, 80, false, false, false, true); await session.StartHostAsync(info, new RHostOptionsTestCallback(), HostStartTimeout); var result = await session.EvaluateAsync("rtvs:::view_env$view_mode"); result.Result.ToObject <int>().Should().Be(1); result = await session.EvaluateAsync("Sys.getlocale()"); result.Result.ToObject <string>().Should().Contain("1251"); result = await session.EvaluateAsync("as.list(getOption('repos'))"); var urls = result.Result.ToObject <IDictionary <string, string> >(); Uri.TryCreate(urls.First().Value, UriKind.Absolute, out Uri uri).Should().BeTrue(); uri.Host.Should().Be("test.cran.info"); }
public async Task InitializeAsync() { await _session.StartHostAsync(new RHostStartupInfo (isInteractive : true), _callback, 50000); _taskObserver.ObserveTaskFailure(_session.RHost.GetRHostRunTask()); }
public async Task InitializeAsync() { await _session.StartHostAsync(new RHostStartupInfo (isInteractive : true), _callback, 50000); TestEnvironment.Current.TryAddTaskToWait(_session.RHost.GetRHostRunTask()); }
public async Task InitializeAsync() { await _session.StartHostAsync(new RHostStartupInfo(), null, 50000); }
public async Task InitializeAsync() { await _session.StartHostAsync(new RHostStartupInfo(), null, 50000); TestEnvironment.Current.TryAddTaskToWait(_session.RHost.GetRHostRunTask()); }
public async Task InitializeAsync() { await _session.StartHostAsync(new RHostStartupInfo { Name = _testMethod.Name }, null, 50000); }
public async Task InitializeAsync() { await _session.StartHostAsync(new RHostStartupInfo(), null, 50000); _taskObserver.ObserveTaskFailure(_session.RHost.GetRHostRunTask()); }