public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { mDataSink = dataSink; events.SessionStart += OnSessionStart; events.SessionEnd += OnSessionEnd; events.TestCaseStart += OnTestCaseStart; events.TestCaseEnd += OnTestCaseEnd; }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { tracerPath = configurationElement["TracerPath"].InnerText; outputDir = configurationElement["OutputDir"].InnerText; }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <Guid>(); this.testObjectDictionary = new Dictionary <Guid, BlameTestObject>(); this.logger = logger; // Subscribing to events this.events.TestHostLaunched += this.TestHostLaunchedHandler; this.events.SessionEnd += this.SessionEndedHandler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; if (this.configurationElement != null) { var collectDumpNode = this.configurationElement[Constants.DumpModeKey]; this.collectProcessDumpOnTrigger = collectDumpNode != null; if (this.collectProcessDumpOnTrigger) { this.ValidateAndAddTriggerBasedProcessDumpParameters(collectDumpNode); } var collectHangBasedDumpNode = this.configurationElement[Constants.CollectDumpOnTestSessionHang]; this.collectProcessDumpOnTestHostHang = collectHangBasedDumpNode != null; if (this.collectProcessDumpOnTestHostHang) { this.ValidateAndAddHangBasedProcessDumpParameters(collectHangBasedDumpNode); } var tfm = this.configurationElement[Constants.TargetFramework]?.InnerText; if (!string.IsNullOrWhiteSpace(tfm)) { this.targetFramework = tfm; } } this.attachmentGuid = Guid.NewGuid().ToString().Replace("-", string.Empty); if (this.collectProcessDumpOnTestHostHang) { this.inactivityTimer = this.inactivityTimer ?? new InactivityTimer(this.CollectDumpAndAbortTesthost); this.ResetInactivityTimer(); } }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.SessionEnd += SessionEnded_Handler; _dataCollectionSink = dataSink; _context = environmentContext; }
public override void Initialize( System.Xml.XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.SessionStart += this.SessionStarted_Handler; events.TestCaseStart += this.Events_TestCaseStart; _logger = logger; _context = environmentContext; }
public override void Initialize( System.Xml.XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.SessionStart += new EventHandler <SessionStartEventArgs>(this.SessionStarted_Handler); events.SessionEnd += new EventHandler <SessionEndEventArgs>(this.SessionEnded_Handler); this.dataCollectionSink = dataSink; this.context = environmentContext; this.logger = logger; }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _dataEvents = events; _dataLogger = logger; _dataSink = dataSink; _configSettings = configurationElement; RegisterEventHandlers(); _nyanCat = new CatRenderer(); _stats = new TestStats(); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { this.Initialize( configurationElement, new DataCollectionEventsWrapper(events), new DataCollectionSinkWrapper(dataSink), new DataCollectionLoggerWrapper(logger), new DataCollectionEnvironmentContextWrapper(environmentContext)); }
/// <summary> /// Disposes the data collector /// </summary> /// <param name="disposing">Disposing flag</param> protected override void Dispose(bool disposing) { _eqtTrace.Verbose("{0}: Disposing", CoverletConstants.DataCollectorName); // Unregister events if (_events != null) { _events.SessionStart -= OnSessionStart; _events.SessionEnd -= OnSessionEnd; } // Remove vars _events = null; _dataSink = null; _coverageManager = null; base.Dispose(disposing); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _logger = logger; context = environmentContext; events.TestCaseEnd += EventsOnTestCaseEnd; events.TestCaseStart += EventsOnTestCaseStart; events.SessionEnd += EventsOnSessionEnd; events.SessionStart += EventsOnSessionStart; AppDomain.CurrentDomain.ProcessExit += OnCurrentDomain_ProcessExit; AppDomain.CurrentDomain.UnhandledException += OnCurrentDomain_ProcessExit; }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <TestCase>(); // Subscribing to events this.events.SessionEnd += this.SessionEnded_Handler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { // Load config _sessionConfiguration = new SessionConfiguration( (uint)ReadIntAttribute(configurationElement, "circularBufferSizeMB", 1024), EventPipeSerializationFormat.NetTrace, ReadProviders(configurationElement)); _dataSink = dataSink; _logger = logger; var traceExt = _sessionConfiguration.Format == EventPipeSerializationFormat.NetTrace ? "nettrace" : "netperf"; _traceDirectory = Path.Combine(Path.GetTempPath(), "vstest_eventpipe", $"{environmentContext.SessionDataCollectionContext.SessionId.Id:N}_{Guid.NewGuid():N}"); if (!Directory.Exists(_traceDirectory)) { Directory.CreateDirectory(_traceDirectory); } events.SessionEnd += Events_SessionEnd; }
/// <summary> /// Initializes data collector /// </summary> /// <param name="configurationElement">Configuration element</param> /// <param name="events">Events to register on</param> /// <param name="dataSink">Data sink to send attachments to test platform</param> /// <param name="logger">Test platform logger</param> /// <param name="environmentContext">Environment context</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { if (_eqtTrace.IsInfoEnabled) { _eqtTrace.Info("Initializing {0} with configuration: '{1}'", CoverletConstants.DataCollectorName, configurationElement?.OuterXml); } // Store input variables _events = events; _configurationElement = configurationElement; _dataSink = dataSink; _dataCollectionContext = environmentContext.SessionDataCollectionContext; _logger = new TestPlatformLogger(logger, _dataCollectionContext); // Register events _events.SessionStart += OnSessionStart; _events.SessionEnd += OnSessionEnd; }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _ = StartTracing(message => logger.LogWarning(environmentContext.SessionDataCollectionContext, message)); }
public DataCollectionEventsWrapper(DataCollectionEvents wrapped) { this.wrapped = wrapped; }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <Guid>(); this.testObjectDictionary = new Dictionary <Guid, BlameTestObject>(); this.logger = logger; // Subscribing to events this.events.TestHostLaunched += this.TestHostLaunchedHandler; this.events.SessionEnd += this.SessionEndedHandler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; if (this.configurationElement != null) { var collectDumpNode = this.configurationElement[Constants.DumpModeKey]; this.collectProcessDumpOnTrigger = collectDumpNode != null; if (this.collectProcessDumpOnTrigger) { this.ValidateAndAddTriggerBasedProcessDumpParameters(collectDumpNode); // enabling dumps on MacOS needs to be done explicitly https://github.com/dotnet/runtime/pull/40105 this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgEnableElfDumpOnMacOS", "1")); this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgEnableMiniDump", "1")); // https://github.com/dotnet/coreclr/blob/master/Documentation/botr/xplat-minidump-generation.md // 2 MiniDumpWithPrivateReadWriteMemory // 4 MiniDumpWithFullMemory this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgMiniDumpType", this.processFullDumpEnabled ? "4" : "2")); var dumpDirectory = this.GetDumpDirectory(); var dumpPath = Path.Combine(dumpDirectory, $"%e_%p_%t_crashdump.dmp"); this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgMiniDumpName", dumpPath)); } var collectHangBasedDumpNode = this.configurationElement[Constants.CollectDumpOnTestSessionHang]; this.collectProcessDumpOnTestHostHang = collectHangBasedDumpNode != null; if (this.collectProcessDumpOnTestHostHang) { // enabling dumps on MacOS needs to be done explicitly https://github.com/dotnet/runtime/pull/40105 this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgEnableElfDumpOnMacOS", "1")); this.ValidateAndAddHangBasedProcessDumpParameters(collectHangBasedDumpNode); } var tfm = this.configurationElement[Constants.TargetFramework]?.InnerText; if (!string.IsNullOrWhiteSpace(tfm)) { this.targetFramework = tfm; } } this.attachmentGuid = Guid.NewGuid().ToString().Replace("-", string.Empty); if (this.collectProcessDumpOnTestHostHang) { this.inactivityTimer = this.inactivityTimer ?? new InactivityTimer(this.CollectDumpAndAbortTesthost); this.ResetInactivityTimer(); } }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.TestCaseStart += (sender, e) => logger.LogWarning(environmentContext.SessionDataCollectionContext, e.TestCaseName + " [Start]"); events.TestCaseEnd += (sender, e) => logger.LogWarning(environmentContext.SessionDataCollectionContext, e.TestCaseName + " [Ended]"); }