Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 5
0
            public async Task InitializeAsync()
            {
                await _session.StartHostAsync(new RHostStartupInfo (isInteractive : true), _callback, 50000);

                _taskObserver.ObserveTaskFailure(_session.RHost.GetRHostRunTask());
            }
Ejemplo n.º 6
0
            public async Task InitializeAsync()
            {
                await _session.StartHostAsync(new RHostStartupInfo (isInteractive : true), _callback, 50000);

                TestEnvironment.Current.TryAddTaskToWait(_session.RHost.GetRHostRunTask());
            }
Ejemplo n.º 7
0
 public async Task InitializeAsync()
 {
     await _session.StartHostAsync(new RHostStartupInfo(), null, 50000);
 }
Ejemplo n.º 8
0
            public async Task InitializeAsync()
            {
                await _session.StartHostAsync(new RHostStartupInfo(), null, 50000);

                TestEnvironment.Current.TryAddTaskToWait(_session.RHost.GetRHostRunTask());
            }
Ejemplo n.º 9
0
 public async Task InitializeAsync()
 {
     await _session.StartHostAsync(new RHostStartupInfo {
         Name = _testMethod.Name
     }, null, 50000);
 }
Ejemplo n.º 10
0
            public async Task InitializeAsync()
            {
                await _session.StartHostAsync(new RHostStartupInfo(), null, 50000);

                _taskObserver.ObserveTaskFailure(_session.RHost.GetRHostRunTask());
            }