First of all congrats on the release of 5.0 - _really_ impressed with the promise of RDI :-)
Unfortunately in our codebase we seem to be encountering problems related to the use of ImmutableArrays
Errors fall into three categories (quite possibly with the same root cause...)
Quote:System.InvalidOperationException: This operation cannot be performed on a default instance of ImmutableArray<T>. Consider initializing the array, or checking the ImmutableArray<T>.IsDefault property.
at nCrunch.TestRuntime.DotNetCore.RuntimeDataInspection.MemoryMappedLog.LogObjectValue(Object value, Int32 componentMappingId, UInt32 rdiDataPointId)
at nCrunch.TestRuntime.DotNetCore.RuntimeDataInspection.RdiEventListener.NCrunchLogWithReturnObject(Object value, Int32 componentMappingId, UInt32 rdiDataPointId)
at our code .....
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
Quote:
System.AggregateException: One or more errors occurred. (The given key 'ourObject'+<MergeFiles>d__9' was not present in the dictionary.)
---> System.Collections.Generic.KeyNotFoundException: The given key 'ourObject+<MergeFiles>d__9' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at nCrunch.TestRuntime.DotNetCore.RuntimeDataInspection.RdiStateMachineTracker.EnterInnerScopeWithinStateMachine(Object stateMachineInstance, UInt32 newScopeFrameIndex, UInt32 relativeScopeTransientId)
at nCrunch.TestRuntime.DotNetCore.RuntimeDataInspection.MemoryMappedLog.LogStateMachineInnerScopeEntry(Object stateMachineInstance, Int32 componentMappingId, UInt32 innerScopeTransientId, UInt32 outerScopeTransientId, UInt32 parentScopeFrameIndex)
at nCrunch.TestRuntime.DotNetCore.RuntimeDataInspection.RdiEventListener.NCrunchLogStateMachineInnerScopeEntry(Object stateMachineInstance, Int32 componentMappingId, UInt32 innerScopeTransientId, UInt32 outerScopeTransientId, UInt32 parentScopeFrameIndex)
at ... our code
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait()
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Quote:NCrunch was unable to retrieve a meaningful result from this test due to an unexpected error - was the execution process terminated?
All these tests passed before migrating to 5.0 (we're currently using 5.1.0.2)
If RDI is disable in Ncrunch configuration then the tests also run to completion and pass.
Happy to collect/provide more detailed info.
Neil