Open MikhailArkhipov opened 7 years ago
Not sure about it, need to find out why ConnectionStatusBar..ctor()
is called
I'll have more info later, re-running whole stack
Microsoft.R.Components.Windows.dll!Microsoft.R.Components.ConnectionManager.Implementation.ConnectionManager.CompleteInitializationAsync() Line 92 C#
Microsoft.R.Components.Windows.dll!Microsoft.R.Components.ConnectionManager.Implementation.ConnectionManager.ConnectionManager(Microsoft.R.Components.StatusBar.IStatusBar statusBar, Microsoft.R.Components.Settings.IRSettings settings, Microsoft.R.Components.InteractiveWorkflow.IRInteractiveWorkflowVisual interactiveWorkflow) Line 88 C#
Microsoft.R.Components.Windows.dll!Microsoft.R.Components.ConnectionManager.Implementation.ConnectionManagerProvider.CreateConnectionManager(Microsoft.R.Components.InteractiveWorkflow.IRInteractiveWorkflow interactiveWorkflow) Line 20 C#
> Microsoft.R.Components.Windows.dll!Microsoft.R.Components.InteractiveWorkflow.Implementation.RInteractiveWorkflow.RInteractiveWorkflow(Microsoft.R.Components.ConnectionManager.IConnectionManagerProvider connectionsProvider, Microsoft.R.Components.History.IRHistoryProvider historyProvider, Microsoft.R.Components.PackageManager.IRPackageManagerProvider packagesProvider, Microsoft.R.Components.Plots.IRPlotManagerProvider plotsProvider, Microsoft.R.Components.InteractiveWorkflow.IActiveWpfTextViewTracker activeTextViewTracker, Microsoft.R.Components.InteractiveWorkflow.IDebuggerModeTracker debuggerModeTracker, Microsoft.Common.Core.Shell.ICoreShell coreShell) Line 70 C#
Microsoft.R.Components.Test.dll!Microsoft.R.Components.Test.Fakes.InteractiveWindow.TestRInteractiveWorkflowProvider.CreateRInteractiveWorkflow() Line 83 C#
[External Code]
Microsoft.R.Components.Test.dll!Microsoft.R.Components.Test.Fakes.InteractiveWindow.TestRInteractiveWorkflowProvider.Microsoft.R.Components.InteractiveWorkflow.IRInteractiveWorkflowVisualProvider.GetOrCreate() Line 75 C#
Microsoft.R.Components.Test.dll!Microsoft.R.Components.Test.Fakes.InteractiveWindow.TestRInteractiveWorkflowProvider.Microsoft.R.Components.InteractiveWorkflow.IRInteractiveWorkflowProvider.GetOrCreate() Line 78 C#
Looks like 0fedd5b2 , change to RSessionChangeWatcher
which now calls Workflow = workflowProvider.GetOrCreate();
in ctor causing CM and friends to be pulled in.
Ok, looks like I understand why it is happening.
At the end of the test, we call TestMainThread.CancelPendingTasks
to cancel all threads that are currently waiting for switch to UI thread, but they don't throw exception because of _cancellationToken.ThrowIfCancellationRequested()
I'll fix this.
I added lazy creation of UI elements so they don't get created in blind tests
Threading issues still happen when tests run in a group. Primarily 'another thread owns it` from WPF dispatcher checks