private void FileLoggerBuildFinished(object sender, BuildFinishedEventArgs e) { _fileWriter?.Flush(); }
private void OnBuildFinished(object sender, BuildFinishedEventArgs eventArgs) { _outputService.WriteLine(string.Empty); }
public abstract void BuildFinishedHandler(object sender, BuildFinishedEventArgs e);
/// <summary> /// Handler for build finished events /// </summary> /// <param name="sender">sender (should be null)</param> /// <param name="e">event arguments</param> public void BuildFinishedHandler(object sender, BuildFinishedEventArgs e) { InitializeBaseConsoleLogger(); // for compat: see DDB#136924 _consoleLogger.BuildFinishedHandler(sender, e); }
void eventSource_BuildFinishedHandler(object sender, BuildFinishedEventArgs e) { LogStageFinished(e.Succeeded, e.Timestamp); }
public void MessageFormattingTest() { // Make sure that the registry key is no present so that we can set the verbosity. DeleteVerbosityKey(); using (OleServiceProvider provider = new OleServiceProvider()) { using (TaskProvider task = new TaskProvider(new ServiceProvider(provider))) { IVsHierarchy hierarchy = MockFactories.HierarchyForLogger(provider); IVsOutputWindowPane output = MockFactories.OutputPaneWithStringFunctions(); BaseMock mockOutput = (BaseMock)output; // Create the logger and make sure that it points to the verbosity IDELoggerProxy logger = new IDELoggerProxy(output, task, hierarchy); logger.SetBuildVerbosityRegistryRoot(TestVerbosityRoot); // Create the IEventSource that will be used to send messages to the logger BaseMock mockSource = MockFactories.CreateMSBuildEventSource(); // Now initialize the logger. logger.Initialize(mockSource as IEventSource); // Verify that the logger has installed an event handler for messages and // build events. Assert.IsNotNull(mockSource["MessageRaised"]); BuildMessageEventHandler messageHandler = (BuildMessageEventHandler)mockSource["MessageRaised"]; Assert.IsNotNull(mockSource["BuildStarted"]); BuildStartedEventHandler buildStartedHandler = (BuildStartedEventHandler)mockSource["BuildStarted"]; Assert.IsNotNull(mockSource["BuildFinished"]); BuildFinishedEventHandler buildFinishedHandler = (BuildFinishedEventHandler)mockSource["BuildFinished"]; Assert.IsNotNull(mockSource["TaskStarted"]); TaskStartedEventHandler taskStartedHandler = (TaskStartedEventHandler)mockSource["TaskStarted"]; Assert.IsNotNull(mockSource["TaskFinished"]); TaskFinishedEventHandler taskFinishedHandler = (TaskFinishedEventHandler)mockSource["TaskFinished"]; // Set the verbosity to Diagnostic so that all the messages are written. logger.Verbosity = LoggerVerbosity.Diagnostic; // Create a message of the expected importance. BuildMessageEventArgs message = new BuildMessageEventArgs("message", "help", "sender", MessageImportance.Normal); messageHandler.Invoke(mockSource, message); // Add a second message with null text. message = new BuildMessageEventArgs(null, "help", "sender", MessageImportance.Normal); messageHandler.Invoke(mockSource, message); // Add another message with emty text. message = new BuildMessageEventArgs(string.Empty, "help", "sender", MessageImportance.Normal); messageHandler.Invoke(mockSource, message); System.Windows.Forms.Application.DoEvents(); string expected = "message" + Environment.NewLine; System.Text.StringBuilder builder = (System.Text.StringBuilder)mockOutput["StringBuilder"]; Assert.AreEqual(expected, builder.ToString(), false); // Clean up the text. output.Clear(); // Now verify the identation in case of start and end build events. string startText = "Test Started"; string messageText = "build message"; string endText = "Test Finished"; BuildStartedEventArgs startBuildArgs = new BuildStartedEventArgs(startText, "help"); buildStartedHandler.Invoke(mockSource, startBuildArgs); message = new BuildMessageEventArgs(messageText, "help", "sender", MessageImportance.Normal); messageHandler.Invoke(mockSource, message); BuildFinishedEventArgs finishBuildArgs = new BuildFinishedEventArgs(endText, "help", true); buildFinishedHandler.Invoke(mockSource, finishBuildArgs); System.Windows.Forms.Application.DoEvents(); // Get the text in the output pane. builder = (System.Text.StringBuilder)mockOutput["StringBuilder"]; expected = string.Format("{0}{1}{2}{1}{1}{3}{1}", startText, Environment.NewLine, messageText, endText); Assert.AreEqual(expected, builder.ToString(), false); // Clear the output and test the identation in case of start and end task. output.Clear(); TaskStartedEventArgs startTaskArgs = new TaskStartedEventArgs(startText, null, null, null, null); taskStartedHandler.Invoke(mockSource, startTaskArgs); message = new BuildMessageEventArgs(messageText, "help", "sender", MessageImportance.Normal); messageHandler.Invoke(mockSource, message); TaskFinishedEventArgs endTaskArgs = new TaskFinishedEventArgs(endText, null, null, null, null, true); taskFinishedHandler.Invoke(mockSource, endTaskArgs); System.Windows.Forms.Application.DoEvents(); // Verify the text in the output pane. expected = string.Format("{0}{1}\t{2}{1}{3}{1}", startText, Environment.NewLine, messageText, endText); builder = (System.Text.StringBuilder)mockOutput["StringBuilder"]; Assert.AreEqual(expected, builder.ToString(), false); } } }
public static void EncodeEvent(BinaryWriter writer, BuildEventArgs e) { EventTypes type = GetEventType(e); writer.WriteInt32((int)type); writer.WriteNullableString(e.Message); writer.WriteNullableString(e.HelpKeyword); writer.WriteNullableString(e.SenderName); writer.WriteDateTime(e.Timestamp); switch (type) { case EventTypes.Error: BuildErrorEventArgs error = (BuildErrorEventArgs)e; writer.WriteNullableString(error.Subcategory); writer.WriteNullableString(error.Code); writer.WriteNullableString(error.File); writer.WriteInt32(error.LineNumber); writer.WriteInt32(error.ColumnNumber); writer.WriteInt32(error.EndLineNumber); writer.WriteInt32(error.EndColumnNumber); break; case EventTypes.Warning: BuildWarningEventArgs warning = (BuildWarningEventArgs)e; writer.WriteNullableString(warning.Subcategory); writer.WriteNullableString(warning.Code); writer.WriteNullableString(warning.File); writer.WriteInt32(warning.LineNumber); writer.WriteInt32(warning.ColumnNumber); writer.WriteInt32(warning.EndLineNumber); writer.WriteInt32(warning.EndColumnNumber); break; case EventTypes.Message: BuildMessageEventArgs message = (BuildMessageEventArgs)e; writer.WriteInt32((int)message.Importance); break; case EventTypes.BuildFinished: BuildFinishedEventArgs buildFinished = (BuildFinishedEventArgs)e; writer.Write(buildFinished.Succeeded); break; case EventTypes.BuildStarted: break; case EventTypes.ProjectFinished: ProjectFinishedEventArgs projectFinished = (ProjectFinishedEventArgs)e; writer.WriteNullableString(projectFinished.ProjectFile); writer.Write(projectFinished.Succeeded); break; case EventTypes.ProjectStarted: ProjectStartedEventArgs projectStarted = (ProjectStartedEventArgs)e; writer.WriteNullableString(projectStarted.ProjectFile); writer.WriteNullableString(projectStarted.TargetNames); break; case EventTypes.TargetFinished: TargetFinishedEventArgs targetFinished = (TargetFinishedEventArgs)e; writer.WriteNullableString(targetFinished.TargetName); writer.WriteNullableString(targetFinished.ProjectFile); writer.WriteNullableString(targetFinished.TargetFile); writer.Write(targetFinished.Succeeded); break; case EventTypes.TargetStarted: TargetStartedEventArgs targetStarted = (TargetStartedEventArgs)e; writer.WriteNullableString(targetStarted.TargetName); writer.WriteNullableString(targetStarted.ProjectFile); writer.WriteNullableString(targetStarted.TargetFile); #if MSBUILD35 writer.WriteNullableString(null); #else writer.WriteNullableString(targetStarted.ParentTarget); #endif break; case EventTypes.TaskFinished: TaskFinishedEventArgs taskFinished = (TaskFinishedEventArgs)e; writer.WriteNullableString(taskFinished.ProjectFile); writer.WriteNullableString(taskFinished.TaskFile); writer.WriteNullableString(taskFinished.TaskName); writer.Write(taskFinished.Succeeded); break; case EventTypes.TaskStarted: TaskStartedEventArgs taskStarted = (TaskStartedEventArgs)e; writer.WriteNullableString(taskStarted.ProjectFile); writer.WriteNullableString(taskStarted.TaskFile); writer.WriteNullableString(taskStarted.TaskName); break; default: // unknown etc. break; } }
private void EventSource_BuildFinished(object sender, BuildFinishedEventArgs e) { log.BuildSucceeded = e.Succeeded; }
internal void SetStateStopped(object sender, BuildFinishedEventArgs e) { if (InvokeRequired) { MethodInvoker invoker = delegate { _isRunning = false; }; Invoke(invoker); } else { _isRunning = false; } }
private void EventSourceOnBuildFinished(object sender, BuildFinishedEventArgs e) { BuildFinished?.Invoke(sender, e); }
/// <summary> /// Compares two LogMessagePacket objects for equivalence. /// </summary> private void CompareLogMessagePackets(LogMessagePacket left, LogMessagePacket right) { Assert.Equal(left.EventType, right.EventType); Assert.Equal(left.NodeBuildEvent.Value.Value.GetType(), right.NodeBuildEvent.Value.Value.GetType()); CompareNodeBuildEventArgs(left.NodeBuildEvent.Value, right.NodeBuildEvent.Value, left.EventType == LoggingEventType.CustomEvent /* expectInvalidBuildEventContext */); switch (left.EventType) { case LoggingEventType.BuildErrorEvent: BuildErrorEventArgs leftError = left.NodeBuildEvent.Value.Value as BuildErrorEventArgs; BuildErrorEventArgs rightError = right.NodeBuildEvent.Value.Value as BuildErrorEventArgs; Assert.NotNull(leftError); Assert.NotNull(rightError); Assert.Equal(leftError.Code, rightError.Code); Assert.Equal(leftError.ColumnNumber, rightError.ColumnNumber); Assert.Equal(leftError.EndColumnNumber, rightError.EndColumnNumber); Assert.Equal(leftError.EndLineNumber, rightError.EndLineNumber); Assert.Equal(leftError.File, rightError.File); Assert.Equal(leftError.LineNumber, rightError.LineNumber); Assert.Equal(leftError.Message, rightError.Message); Assert.Equal(leftError.Subcategory, rightError.Subcategory); break; case LoggingEventType.BuildFinishedEvent: BuildFinishedEventArgs leftFinished = left.NodeBuildEvent.Value.Value as BuildFinishedEventArgs; BuildFinishedEventArgs rightFinished = right.NodeBuildEvent.Value.Value as BuildFinishedEventArgs; Assert.NotNull(leftFinished); Assert.NotNull(rightFinished); Assert.Equal(leftFinished.Succeeded, rightFinished.Succeeded); break; case LoggingEventType.BuildMessageEvent: BuildMessageEventArgs leftMessage = left.NodeBuildEvent.Value.Value as BuildMessageEventArgs; BuildMessageEventArgs rightMessage = right.NodeBuildEvent.Value.Value as BuildMessageEventArgs; Assert.NotNull(leftMessage); Assert.NotNull(rightMessage); Assert.Equal(leftMessage.Importance, rightMessage.Importance); break; case LoggingEventType.BuildStartedEvent: BuildStartedEventArgs leftBuildStart = left.NodeBuildEvent.Value.Value as BuildStartedEventArgs; BuildStartedEventArgs rightBuildStart = right.NodeBuildEvent.Value.Value as BuildStartedEventArgs; Assert.NotNull(leftBuildStart); Assert.NotNull(rightBuildStart); break; case LoggingEventType.BuildWarningEvent: BuildWarningEventArgs leftBuildWarn = left.NodeBuildEvent.Value.Value as BuildWarningEventArgs; BuildWarningEventArgs rightBuildWarn = right.NodeBuildEvent.Value.Value as BuildWarningEventArgs; Assert.NotNull(leftBuildWarn); Assert.NotNull(rightBuildWarn); Assert.Equal(leftBuildWarn.Code, rightBuildWarn.Code); Assert.Equal(leftBuildWarn.ColumnNumber, rightBuildWarn.ColumnNumber); Assert.Equal(leftBuildWarn.EndColumnNumber, rightBuildWarn.EndColumnNumber); Assert.Equal(leftBuildWarn.EndLineNumber, rightBuildWarn.EndLineNumber); Assert.Equal(leftBuildWarn.File, rightBuildWarn.File); Assert.Equal(leftBuildWarn.LineNumber, rightBuildWarn.LineNumber); Assert.Equal(leftBuildWarn.Subcategory, rightBuildWarn.Subcategory); break; case LoggingEventType.CustomEvent: ExternalProjectStartedEventArgs leftCustom = left.NodeBuildEvent.Value.Value as ExternalProjectStartedEventArgs; ExternalProjectStartedEventArgs rightCustom = right.NodeBuildEvent.Value.Value as ExternalProjectStartedEventArgs; Assert.NotNull(leftCustom); Assert.NotNull(rightCustom); Assert.Equal(leftCustom.ProjectFile, rightCustom.ProjectFile); Assert.Equal(leftCustom.TargetNames, rightCustom.TargetNames); break; case LoggingEventType.ProjectFinishedEvent: ProjectFinishedEventArgs leftProjectFinished = left.NodeBuildEvent.Value.Value as ProjectFinishedEventArgs; ProjectFinishedEventArgs rightProjectFinished = right.NodeBuildEvent.Value.Value as ProjectFinishedEventArgs; Assert.NotNull(leftProjectFinished); Assert.NotNull(rightProjectFinished); Assert.Equal(leftProjectFinished.ProjectFile, rightProjectFinished.ProjectFile); Assert.Equal(leftProjectFinished.Succeeded, rightProjectFinished.Succeeded); break; case LoggingEventType.ProjectStartedEvent: ProjectStartedEventArgs leftProjectStarted = left.NodeBuildEvent.Value.Value as ProjectStartedEventArgs; ProjectStartedEventArgs rightProjectStarted = right.NodeBuildEvent.Value.Value as ProjectStartedEventArgs; Assert.NotNull(leftProjectStarted); Assert.NotNull(rightProjectStarted); Assert.Equal(leftProjectStarted.ParentProjectBuildEventContext, rightProjectStarted.ParentProjectBuildEventContext); Assert.Equal(leftProjectStarted.ProjectFile, rightProjectStarted.ProjectFile); Assert.Equal(leftProjectStarted.ProjectId, rightProjectStarted.ProjectId); Assert.Equal(leftProjectStarted.TargetNames, rightProjectStarted.TargetNames); // UNDONE: (Serialization.) We don't actually serialize the items at this time. // Assert.AreEqual(leftProjectStarted.Items, rightProjectStarted.Items); // UNDONE: (Serialization.) We don't actually serialize properties at this time. // Assert.AreEqual(leftProjectStarted.Properties, rightProjectStarted.Properties); break; case LoggingEventType.ProjectEvaluationStartedEvent: ProjectEvaluationStartedEventArgs leftEvaluationStarted = left.NodeBuildEvent.Value.Value as ProjectEvaluationStartedEventArgs; ProjectEvaluationStartedEventArgs rightEvaluationStarted = right.NodeBuildEvent.Value.Value as ProjectEvaluationStartedEventArgs; Assert.NotNull(leftEvaluationStarted); Assert.NotNull(rightEvaluationStarted); Assert.Equal(leftEvaluationStarted.ProjectFile, rightEvaluationStarted.ProjectFile); break; case LoggingEventType.ProjectEvaluationFinishedEvent: ProjectEvaluationFinishedEventArgs leftEvaluationFinished = left.NodeBuildEvent.Value.Value as ProjectEvaluationFinishedEventArgs; ProjectEvaluationFinishedEventArgs rightEvaluationFinished = right.NodeBuildEvent.Value.Value as ProjectEvaluationFinishedEventArgs; Assert.NotNull(leftEvaluationFinished); Assert.NotNull(rightEvaluationFinished); Assert.Equal(leftEvaluationFinished.ProjectFile, rightEvaluationFinished.ProjectFile); Assert.Equal(leftEvaluationFinished.ProfilerResult, rightEvaluationFinished.ProfilerResult); Assert.Equal( TranslationHelpers.GetPropertiesString(leftEvaluationFinished.GlobalProperties), TranslationHelpers.GetPropertiesString(rightEvaluationFinished.GlobalProperties)); Assert.Equal( TranslationHelpers.GetPropertiesString(leftEvaluationFinished.Properties), TranslationHelpers.GetPropertiesString(rightEvaluationFinished.Properties)); Assert.Equal( TranslationHelpers.GetMultiItemsString(leftEvaluationFinished.Items), TranslationHelpers.GetMultiItemsString(rightEvaluationFinished.Items)); break; case LoggingEventType.TargetFinishedEvent: TargetFinishedEventArgs leftTargetFinished = left.NodeBuildEvent.Value.Value as TargetFinishedEventArgs; TargetFinishedEventArgs rightTargetFinished = right.NodeBuildEvent.Value.Value as TargetFinishedEventArgs; Assert.NotNull(leftTargetFinished); Assert.NotNull(rightTargetFinished); Assert.Equal(leftTargetFinished.ProjectFile, rightTargetFinished.ProjectFile); Assert.Equal(leftTargetFinished.Succeeded, rightTargetFinished.Succeeded); Assert.Equal(leftTargetFinished.TargetFile, rightTargetFinished.TargetFile); Assert.Equal(leftTargetFinished.TargetName, rightTargetFinished.TargetName); //TODO: target output translation is a special case and is done in TranslateTargetFinishedEvent //Assert.Equal(leftTargetFinished.TargetOutputs, rightTargetFinished.TargetOutputs); break; case LoggingEventType.TargetStartedEvent: TargetStartedEventArgs leftTargetStarted = left.NodeBuildEvent.Value.Value as TargetStartedEventArgs; TargetStartedEventArgs rightTargetStarted = right.NodeBuildEvent.Value.Value as TargetStartedEventArgs; Assert.NotNull(leftTargetStarted); Assert.NotNull(rightTargetStarted); Assert.Equal(leftTargetStarted.ProjectFile, rightTargetStarted.ProjectFile); Assert.Equal(leftTargetStarted.TargetFile, rightTargetStarted.TargetFile); Assert.Equal(leftTargetStarted.TargetName, rightTargetStarted.TargetName); break; case LoggingEventType.TargetSkipped: TargetSkippedEventArgs leftTargetSkipped = left.NodeBuildEvent.Value.Value as TargetSkippedEventArgs; TargetSkippedEventArgs rightTargetSkipped = right.NodeBuildEvent.Value.Value as TargetSkippedEventArgs; Assert.Equal(leftTargetSkipped.BuildReason, rightTargetSkipped.BuildReason); Assert.Equal(leftTargetSkipped.SkipReason, rightTargetSkipped.SkipReason); Assert.Equal(leftTargetSkipped.BuildEventContext, rightTargetSkipped.BuildEventContext); Assert.Equal(leftTargetSkipped.OriginalBuildEventContext, rightTargetSkipped.OriginalBuildEventContext); Assert.Equal(leftTargetSkipped.Condition, rightTargetSkipped.Condition); Assert.Equal(leftTargetSkipped.EvaluatedCondition, rightTargetSkipped.EvaluatedCondition); Assert.Equal(leftTargetSkipped.Importance, rightTargetSkipped.Importance); Assert.Equal(leftTargetSkipped.OriginallySucceeded, rightTargetSkipped.OriginallySucceeded); Assert.Equal(leftTargetSkipped.ProjectFile, rightTargetSkipped.ProjectFile); Assert.Equal(leftTargetSkipped.TargetFile, rightTargetSkipped.TargetFile); Assert.Equal(leftTargetSkipped.TargetName, rightTargetSkipped.TargetName); Assert.Equal(leftTargetSkipped.ParentTarget, rightTargetSkipped.ParentTarget); break; case LoggingEventType.TaskCommandLineEvent: TaskCommandLineEventArgs leftCommand = left.NodeBuildEvent.Value.Value as TaskCommandLineEventArgs; TaskCommandLineEventArgs rightCommand = right.NodeBuildEvent.Value.Value as TaskCommandLineEventArgs; Assert.NotNull(leftCommand); Assert.NotNull(rightCommand); Assert.Equal(leftCommand.CommandLine, rightCommand.CommandLine); Assert.Equal(leftCommand.Importance, rightCommand.Importance); Assert.Equal(leftCommand.TaskName, rightCommand.TaskName); break; case LoggingEventType.TaskParameterEvent: var leftTaskParameter = left.NodeBuildEvent.Value.Value as TaskParameterEventArgs; var rightTaskParameter = right.NodeBuildEvent.Value.Value as TaskParameterEventArgs; Assert.NotNull(leftTaskParameter); Assert.NotNull(rightTaskParameter); Assert.Equal(leftTaskParameter.Kind, rightTaskParameter.Kind); Assert.Equal(leftTaskParameter.ItemType, rightTaskParameter.ItemType); Assert.Equal(leftTaskParameter.Items.Count, rightTaskParameter.Items.Count); Assert.Equal(leftTaskParameter.Message, rightTaskParameter.Message); Assert.Equal(leftTaskParameter.BuildEventContext, rightTaskParameter.BuildEventContext); Assert.Equal(leftTaskParameter.Timestamp, rightTaskParameter.Timestamp); Assert.Equal(leftTaskParameter.LineNumber, rightTaskParameter.LineNumber); Assert.Equal(leftTaskParameter.ColumnNumber, rightTaskParameter.ColumnNumber); break; case LoggingEventType.TaskFinishedEvent: TaskFinishedEventArgs leftTaskFinished = left.NodeBuildEvent.Value.Value as TaskFinishedEventArgs; TaskFinishedEventArgs rightTaskFinished = right.NodeBuildEvent.Value.Value as TaskFinishedEventArgs; Assert.NotNull(leftTaskFinished); Assert.NotNull(rightTaskFinished); Assert.Equal(leftTaskFinished.ProjectFile, rightTaskFinished.ProjectFile); Assert.Equal(leftTaskFinished.Succeeded, rightTaskFinished.Succeeded); Assert.Equal(leftTaskFinished.TaskFile, rightTaskFinished.TaskFile); Assert.Equal(leftTaskFinished.TaskName, rightTaskFinished.TaskName); break; case LoggingEventType.TaskStartedEvent: TaskStartedEventArgs leftTaskStarted = left.NodeBuildEvent.Value.Value as TaskStartedEventArgs; TaskStartedEventArgs rightTaskStarted = right.NodeBuildEvent.Value.Value as TaskStartedEventArgs; Assert.NotNull(leftTaskStarted); Assert.NotNull(rightTaskStarted); Assert.Equal(leftTaskStarted.ProjectFile, rightTaskStarted.ProjectFile); Assert.Equal(leftTaskStarted.TaskFile, rightTaskStarted.TaskFile); Assert.Equal(leftTaskStarted.TaskName, rightTaskStarted.TaskName); Assert.Equal(leftTaskStarted.LineNumber, rightTaskStarted.LineNumber); Assert.Equal(leftTaskStarted.ColumnNumber, rightTaskStarted.ColumnNumber); break; default: Assert.True(false, string.Format("Unexpected logging event type {0}", left.EventType)); break; } }
private void BuildFinished(object sender, BuildFinishedEventArgs e) { OverallSuccess = e.Succeeded; }
public async void OnBuildFinished(SolutionItem solutionItem, BuildFinishedEventArgs e) { await MessageSinks[0].AddMessage(e); }
private void BuildFinished(object sender, BuildFinishedEventArgs e) { SendMessage(FormatMessage(e)); SendMessage("END$$"); }
private void BinLog_BuildFinished(object sender, BuildFinishedEventArgs e) { EndCurrentNode(stringPool.Add(e.Message), e.Timestamp); }
internal override void OutputBuildFinished(object sender, BuildFinishedEventArgs e) { logStream.WriteLine(FormatBuildFinishedEvent(e)); }
void BuildFinishedHandlerActual(BuildFinishedEventArgs args) { if (!IsVerbosityGreaterOrEqual(LoggerVerbosity.Normal)) { PopEvent(args); return; } TimeSpan timeElapsed = args.Timestamp - buildStart; if (performanceSummary || verbosity == LoggerVerbosity.Diagnostic) { DumpPerformanceSummary(); } if (args.Succeeded == true && !projectFailed) { WriteLine("Build succeeded."); } else { WriteLine("Build FAILED."); } if (warnings.Count > 0) { WriteLine(Environment.NewLine + "Warnings:"); SetColor(warningColor); WriteLine(String.Empty); foreach (KeyValuePair <string, List <string> > pair in warningsTable) { if (!String.IsNullOrEmpty(pair.Key)) { WriteLine(pair.Key); } string indent_str = String.IsNullOrEmpty(pair.Key) ? String.Empty : "\t"; foreach (string msg in pair.Value) { WriteLine(String.Format("{0}{1}", indent_str, msg)); } WriteLine(String.Empty); } ResetColor(); } if (errors.Count > 0) { WriteLine("Errors:"); SetColor(errorColor); WriteLine(String.Empty); foreach (KeyValuePair <string, List <string> > pair in errorsTable) { if (!String.IsNullOrEmpty(pair.Key)) { WriteLine(pair.Key); } string indent_str = String.IsNullOrEmpty(pair.Key) ? String.Empty : "\t"; foreach (string msg in pair.Value) { WriteLine(String.Format("{0}{1}", indent_str, msg)); } WriteLine(String.Empty); } ResetColor(); } if (showSummary == true) { WriteLine(String.Format("\t {0} Warning(s)", warningCount)); WriteLine(String.Format("\t {0} Error(s)", errorCount)); WriteLine(String.Empty); WriteLine(String.Format("Time Elapsed {0}", timeElapsed)); } PopEvent(args); }
public void TestLoggingEventCustomerSerialization() { Hashtable loggingTypeCacheWrites = new Hashtable(); stream.Position = 0; BuildEventContext context = new BuildEventContext(1, 3, 5, 7); GenericBuildEventArg genericBuildEvent = new GenericBuildEventArg("Message", "Help", "Sender"); genericBuildEvent.BuildEventContext = context; NodeLoggingEvent genericBuildEventLoggingEvent = new NodeLoggingEvent(genericBuildEvent); genericBuildEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); GenericCustomBuildEventArg genericCustomEvent = new GenericCustomBuildEventArg("FooFighter"); genericCustomEvent.BuildEventContext = context; NodeLoggingEvent genericCustomEventLoggingEvent = new NodeLoggingEvent(genericCustomEvent); genericCustomEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); BuildErrorEventArgs errorEvent = new BuildErrorEventArgs("Subcategory", "Code", "File", 1, 2, 3, 4, "Message", "HelpKeyword", "SenderName"); errorEvent.BuildEventContext = context; NodeLoggingEvent errorEventLoggingEvent = new NodeLoggingEvent(errorEvent); errorEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); BuildMessageEventArgs messageEvent = new BuildMessageEventArgs("Message", "HelpKeyword", "SenderName", MessageImportance.High); messageEvent.BuildEventContext = context; NodeLoggingEvent messageEventLoggingEvent = new NodeLoggingEvent(messageEvent); messageEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); BuildWarningEventArgs warningEvent = new BuildWarningEventArgs("Subcategory", "Code", "File", 1, 2, 3, 4, "Message", "HelpKeyword", "SenderName"); warningEvent.BuildEventContext = context; NodeLoggingEvent warningEventLoggingEvent = new NodeLoggingEvent(warningEvent); warningEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); ProjectStartedEventArgs projectStartedEvent = new ProjectStartedEventArgs(8, "Message", "HelpKeyword", "ProjectFile", "TargetNames", null, null, new BuildEventContext(7, 8, 9, 10)); projectStartedEvent.BuildEventContext = context; NodeLoggingEvent projectStartedEventLoggingEvent = new NodeLoggingEvent(projectStartedEvent); projectStartedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); ProjectFinishedEventArgs projectFinishedEvent = new ProjectFinishedEventArgs("Message", "HelpKeyword", "ProjectFile", true); projectFinishedEvent.BuildEventContext = context; NodeLoggingEvent projectFinishedEventLoggingEvent = new NodeLoggingEvent(projectFinishedEvent); projectFinishedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); TargetStartedEventArgs targetStartedEvent = new TargetStartedEventArgs("Message", "HelpKeyword", "TargetName", "ProjectFile", "TargetFile"); targetStartedEvent.BuildEventContext = context; NodeLoggingEvent targetStartedEventLoggingEvent = new NodeLoggingEvent(targetStartedEvent); targetStartedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); TargetFinishedEventArgs targetFinished = new TargetFinishedEventArgs("Message", "HelpKeyword", "TargetName", "ProjectFile", "TargetFile", true); targetFinished.BuildEventContext = context; NodeLoggingEvent targetFinishedEventLoggingEvent = new NodeLoggingEvent(targetFinished); targetFinishedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); TaskStartedEventArgs taskStartedEvent = new TaskStartedEventArgs("Message", "HelpKeyword", "ProjectFile", "TaskFile", "TaskName"); taskStartedEvent.BuildEventContext = context; NodeLoggingEvent taskStartedEventLoggingEvent = new NodeLoggingEvent(taskStartedEvent); taskStartedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); TaskFinishedEventArgs taskFinishedEvent = new TaskFinishedEventArgs("Message", "HelpKeyword", "ProjectFile", "TaskFile", "TaskName", true); taskFinishedEvent.BuildEventContext = context; NodeLoggingEvent taskFinishedEventLoggingEvent = new NodeLoggingEvent(taskFinishedEvent); taskFinishedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); BuildFinishedEventArgs buildFinishedEvent = new BuildFinishedEventArgs("Message", "Help", true); buildFinishedEvent.BuildEventContext = context; NodeLoggingEvent buildFinishedEventEventLoggingEvent = new NodeLoggingEvent(buildFinishedEvent); buildFinishedEventEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); BuildStartedEventArgs buildStartedEvent = new BuildStartedEventArgs("Message", "Help"); buildStartedEvent.BuildEventContext = context; NodeLoggingEvent buildStartedEventLoggingEvent = new NodeLoggingEvent(buildStartedEvent); buildStartedEventLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); TaskCommandLineEventArgs commandlineEventArg = new TaskCommandLineEventArgs("CommandLine", "TaskName", MessageImportance.High); commandlineEventArg.BuildEventContext = context; NodeLoggingEvent commandlineEventArgLoggingEvent = new NodeLoggingEvent(commandlineEventArg); commandlineEventArgLoggingEvent.WriteToStream(writer, loggingTypeCacheWrites); Hashtable loggingTypeCacheReads = new Hashtable(); long streamWriteEndPosition = stream.Position; stream.Position = 0; NodeLoggingEvent nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(GenericBuildEventArg)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(GenericCustomBuildEventArg)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(BuildErrorEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(BuildMessageEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(BuildWarningEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(ProjectStartedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(ProjectFinishedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(TargetStartedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(TargetFinishedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(TaskStartedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(TaskFinishedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(BuildFinishedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(BuildStartedEventArgs)); nodeLoggingEvent = new NodeLoggingEvent(null); nodeLoggingEvent.CreateFromStream(reader, loggingTypeCacheReads); Assert.IsTrue(nodeLoggingEvent.BuildEvent.GetType() == typeof(TaskCommandLineEventArgs)); long streamReadEndPosition = stream.Position; Assert.AreEqual(streamWriteEndPosition, streamReadEndPosition, "Expected Read and Write Positions to match"); }
void BuildFinished(object sender, BuildFinishedEventArgs e) { writer.WriteLine(GetLogMessage("BuildFinished", e)); }
/// <summary> /// Compares two LogMessagePacket objects for equivalence. /// </summary> private void CompareLogMessagePackets(LogMessagePacket left, LogMessagePacket right) { Assert.Equal(left.EventType, right.EventType); Assert.Equal(left.NodeBuildEvent.Value.Value.GetType(), right.NodeBuildEvent.Value.Value.GetType()); CompareNodeBuildEventArgs(left.NodeBuildEvent.Value, right.NodeBuildEvent.Value, left.EventType == LoggingEventType.CustomEvent /* expectInvalidBuildEventContext */); switch (left.EventType) { case LoggingEventType.BuildErrorEvent: BuildErrorEventArgs leftError = left.NodeBuildEvent.Value.Value as BuildErrorEventArgs; BuildErrorEventArgs rightError = right.NodeBuildEvent.Value.Value as BuildErrorEventArgs; Assert.NotNull(leftError); Assert.NotNull(rightError); Assert.Equal(leftError.Code, rightError.Code); Assert.Equal(leftError.ColumnNumber, rightError.ColumnNumber); Assert.Equal(leftError.EndColumnNumber, rightError.EndColumnNumber); Assert.Equal(leftError.EndLineNumber, rightError.EndLineNumber); Assert.Equal(leftError.File, rightError.File); Assert.Equal(leftError.LineNumber, rightError.LineNumber); Assert.Equal(leftError.Message, rightError.Message); Assert.Equal(leftError.Subcategory, rightError.Subcategory); break; case LoggingEventType.BuildFinishedEvent: BuildFinishedEventArgs leftFinished = left.NodeBuildEvent.Value.Value as BuildFinishedEventArgs; BuildFinishedEventArgs rightFinished = right.NodeBuildEvent.Value.Value as BuildFinishedEventArgs; Assert.NotNull(leftFinished); Assert.NotNull(rightFinished); Assert.Equal(leftFinished.Succeeded, rightFinished.Succeeded); break; case LoggingEventType.BuildMessageEvent: BuildMessageEventArgs leftMessage = left.NodeBuildEvent.Value.Value as BuildMessageEventArgs; BuildMessageEventArgs rightMessage = right.NodeBuildEvent.Value.Value as BuildMessageEventArgs; Assert.NotNull(leftMessage); Assert.NotNull(rightMessage); Assert.Equal(leftMessage.Importance, rightMessage.Importance); break; case LoggingEventType.BuildStartedEvent: BuildStartedEventArgs leftBuildStart = left.NodeBuildEvent.Value.Value as BuildStartedEventArgs; BuildStartedEventArgs rightBuildStart = right.NodeBuildEvent.Value.Value as BuildStartedEventArgs; Assert.NotNull(leftBuildStart); Assert.NotNull(rightBuildStart); break; case LoggingEventType.BuildWarningEvent: BuildWarningEventArgs leftBuildWarn = left.NodeBuildEvent.Value.Value as BuildWarningEventArgs; BuildWarningEventArgs rightBuildWarn = right.NodeBuildEvent.Value.Value as BuildWarningEventArgs; Assert.NotNull(leftBuildWarn); Assert.NotNull(rightBuildWarn); Assert.Equal(leftBuildWarn.Code, rightBuildWarn.Code); Assert.Equal(leftBuildWarn.ColumnNumber, rightBuildWarn.ColumnNumber); Assert.Equal(leftBuildWarn.EndColumnNumber, rightBuildWarn.EndColumnNumber); Assert.Equal(leftBuildWarn.EndLineNumber, rightBuildWarn.EndLineNumber); Assert.Equal(leftBuildWarn.File, rightBuildWarn.File); Assert.Equal(leftBuildWarn.LineNumber, rightBuildWarn.LineNumber); Assert.Equal(leftBuildWarn.Subcategory, rightBuildWarn.Subcategory); break; case LoggingEventType.CustomEvent: ExternalProjectStartedEventArgs leftCustom = left.NodeBuildEvent.Value.Value as ExternalProjectStartedEventArgs; ExternalProjectStartedEventArgs rightCustom = right.NodeBuildEvent.Value.Value as ExternalProjectStartedEventArgs; Assert.NotNull(leftCustom); Assert.NotNull(rightCustom); Assert.Equal(leftCustom.ProjectFile, rightCustom.ProjectFile); Assert.Equal(leftCustom.TargetNames, rightCustom.TargetNames); break; case LoggingEventType.ProjectFinishedEvent: ProjectFinishedEventArgs leftProjectFinished = left.NodeBuildEvent.Value.Value as ProjectFinishedEventArgs; ProjectFinishedEventArgs rightProjectFinished = right.NodeBuildEvent.Value.Value as ProjectFinishedEventArgs; Assert.NotNull(leftProjectFinished); Assert.NotNull(rightProjectFinished); Assert.Equal(leftProjectFinished.ProjectFile, rightProjectFinished.ProjectFile); Assert.Equal(leftProjectFinished.Succeeded, rightProjectFinished.Succeeded); break; case LoggingEventType.ProjectStartedEvent: ProjectStartedEventArgs leftProjectStarted = left.NodeBuildEvent.Value.Value as ProjectStartedEventArgs; ProjectStartedEventArgs rightProjectStarted = right.NodeBuildEvent.Value.Value as ProjectStartedEventArgs; Assert.NotNull(leftProjectStarted); Assert.NotNull(rightProjectStarted); Assert.Equal(leftProjectStarted.ParentProjectBuildEventContext, rightProjectStarted.ParentProjectBuildEventContext); Assert.Equal(leftProjectStarted.ProjectFile, rightProjectStarted.ProjectFile); Assert.Equal(leftProjectStarted.ProjectId, rightProjectStarted.ProjectId); Assert.Equal(leftProjectStarted.TargetNames, rightProjectStarted.TargetNames); // UNDONE: (Serialization.) We don't actually serialize the items at this time. // Assert.AreEqual(leftProjectStarted.Items, rightProjectStarted.Items); // UNDONE: (Serialization.) We don't actually serialize properties at this time. // Assert.AreEqual(leftProjectStarted.Properties, rightProjectStarted.Properties); break; case LoggingEventType.TargetFinishedEvent: TargetFinishedEventArgs leftTargetFinished = left.NodeBuildEvent.Value.Value as TargetFinishedEventArgs; TargetFinishedEventArgs rightTargetFinished = right.NodeBuildEvent.Value.Value as TargetFinishedEventArgs; Assert.NotNull(leftTargetFinished); Assert.NotNull(rightTargetFinished); Assert.Equal(leftTargetFinished.ProjectFile, rightTargetFinished.ProjectFile); Assert.Equal(leftTargetFinished.Succeeded, rightTargetFinished.Succeeded); Assert.Equal(leftTargetFinished.TargetFile, rightTargetFinished.TargetFile); Assert.Equal(leftTargetFinished.TargetName, rightTargetFinished.TargetName); break; case LoggingEventType.TargetStartedEvent: TargetStartedEventArgs leftTargetStarted = left.NodeBuildEvent.Value.Value as TargetStartedEventArgs; TargetStartedEventArgs rightTargetStarted = right.NodeBuildEvent.Value.Value as TargetStartedEventArgs; Assert.NotNull(leftTargetStarted); Assert.NotNull(rightTargetStarted); Assert.Equal(leftTargetStarted.ProjectFile, rightTargetStarted.ProjectFile); Assert.Equal(leftTargetStarted.TargetFile, rightTargetStarted.TargetFile); Assert.Equal(leftTargetStarted.TargetName, rightTargetStarted.TargetName); break; case LoggingEventType.TaskCommandLineEvent: TaskCommandLineEventArgs leftCommand = left.NodeBuildEvent.Value.Value as TaskCommandLineEventArgs; TaskCommandLineEventArgs rightCommand = right.NodeBuildEvent.Value.Value as TaskCommandLineEventArgs; Assert.NotNull(leftCommand); Assert.NotNull(rightCommand); Assert.Equal(leftCommand.CommandLine, rightCommand.CommandLine); Assert.Equal(leftCommand.Importance, rightCommand.Importance); Assert.Equal(leftCommand.TaskName, rightCommand.TaskName); break; case LoggingEventType.TaskFinishedEvent: TaskFinishedEventArgs leftTaskFinished = left.NodeBuildEvent.Value.Value as TaskFinishedEventArgs; TaskFinishedEventArgs rightTaskFinished = right.NodeBuildEvent.Value.Value as TaskFinishedEventArgs; Assert.NotNull(leftTaskFinished); Assert.NotNull(rightTaskFinished); Assert.Equal(leftTaskFinished.ProjectFile, rightTaskFinished.ProjectFile); Assert.Equal(leftTaskFinished.Succeeded, rightTaskFinished.Succeeded); Assert.Equal(leftTaskFinished.TaskFile, rightTaskFinished.TaskFile); Assert.Equal(leftTaskFinished.TaskName, rightTaskFinished.TaskName); break; case LoggingEventType.TaskStartedEvent: TaskStartedEventArgs leftTaskStarted = left.NodeBuildEvent.Value.Value as TaskStartedEventArgs; TaskStartedEventArgs rightTaskStarted = right.NodeBuildEvent.Value.Value as TaskStartedEventArgs; Assert.NotNull(leftTaskStarted); Assert.NotNull(rightTaskStarted); Assert.Equal(leftTaskStarted.ProjectFile, rightTaskStarted.ProjectFile); Assert.Equal(leftTaskStarted.TaskFile, rightTaskStarted.TaskFile); Assert.Equal(leftTaskStarted.TaskName, rightTaskStarted.TaskName); break; default: Assert.True(false, string.Format("Unexpected logging event type {0}", left.EventType)); break; } }
private void OnBuildFinished(object sender, BuildFinishedEventArgs e) { _buildStart.Stop(); Log.Trace($"C# compile preparation finished {_buildStart.Elapsed.TotalMilliseconds}ms"); }
public void EventsOutOfSequence() { // Make sure that the registry key is no present so that we can set the verbosity. DeleteVerbosityKey(); using (OleServiceProvider provider = new OleServiceProvider()) { using (TaskProvider task = new TaskProvider(new ServiceProvider(provider))) { IVsHierarchy hierarchy = MockFactories.HierarchyForLogger(provider); IVsOutputWindowPane output = MockFactories.OutputPaneWithStringFunctions(); BaseMock mockOutput = (BaseMock)output; // Create the logger and make sure that it points to the verbosity IDELoggerProxy logger = new IDELoggerProxy(output, task, hierarchy); logger.SetBuildVerbosityRegistryRoot(TestVerbosityRoot); // Create the IEventSource that will be used to send messages to the logger BaseMock mockSource = MockFactories.CreateMSBuildEventSource(); // Now initialize the logger. logger.Initialize(mockSource as IEventSource); // Verify that the logger has installed an event handler for messages and // build events. Assert.IsNotNull(mockSource["MessageRaised"]); BuildMessageEventHandler messageHandler = (BuildMessageEventHandler)mockSource["MessageRaised"]; Assert.IsNotNull(mockSource["BuildStarted"]); BuildStartedEventHandler buildStartedHandler = (BuildStartedEventHandler)mockSource["BuildStarted"]; Assert.IsNotNull(mockSource["BuildFinished"]); BuildFinishedEventHandler buildFinishedHandler = (BuildFinishedEventHandler)mockSource["BuildFinished"]; Assert.IsNotNull(mockSource["TaskStarted"]); TaskStartedEventHandler taskStartedHandler = (TaskStartedEventHandler)mockSource["TaskStarted"]; Assert.IsNotNull(mockSource["TaskFinished"]); TaskFinishedEventHandler taskFinishedHandler = (TaskFinishedEventHandler)mockSource["TaskFinished"]; // Create the arguments for the events and the delegates. BuildMessageEventArgs messageArgs = new BuildMessageEventArgs("Message", "help", "sender", MessageImportance.Normal); SendEventFunction sendMessage = delegate { messageHandler.Invoke(mockSource, messageArgs); }; // BuildStartedEventArgs startBuildArgs = new BuildStartedEventArgs("Start Build", "help"); SendEventFunction sendStartBuild = delegate { buildStartedHandler.Invoke(mockSource, startBuildArgs); }; // BuildFinishedEventArgs finishBuildArgs = new BuildFinishedEventArgs("End Build", "help", true); SendEventFunction sendEndBuild = delegate { buildFinishedHandler.Invoke(mockSource, finishBuildArgs); }; // TaskStartedEventArgs startTaskArgs = new TaskStartedEventArgs("Start Task", null, null, null, null); SendEventFunction sendStartTask = delegate { taskStartedHandler.Invoke(mockSource, startTaskArgs); }; // TaskFinishedEventArgs endTaskArgs = new TaskFinishedEventArgs("End Task", null, null, null, null, true); SendEventFunction sendEndTask = delegate { taskFinishedHandler.Invoke(mockSource, endTaskArgs); }; // Set the verbosity to Diagnostic so that all the messages are written. logger.Verbosity = LoggerVerbosity.Diagnostic; List <SendEventFunction>[] events = new List <SendEventFunction>[] { new List <SendEventFunction>(new SendEventFunction[] { sendMessage, sendEndBuild, sendStartBuild }), new List <SendEventFunction>(new SendEventFunction[] { sendStartBuild, sendEndTask, sendEndBuild, sendStartTask }), new List <SendEventFunction>(new SendEventFunction[] { sendStartTask, sendStartBuild, sendEndTask, sendEndBuild }), new List <SendEventFunction>(new SendEventFunction[] { sendEndBuild, sendStartTask, sendEndTask, sendStartBuild }), new List <SendEventFunction>(new SendEventFunction[] { sendEndBuild, sendEndTask, sendStartTask, sendStartBuild }), new List <SendEventFunction>(new SendEventFunction[] { sendEndTask, sendEndBuild, sendStartTask, sendStartBuild }), }; // Call the functions. Note that here we don't check for the actual text printed on the output, // but we simply verify that the logger can handle the events without exceptions. foreach (List <SendEventFunction> sendFunctions in events) { output.Clear(); foreach (SendEventFunction func in sendFunctions) { func(); } } } } }
public void BuildFinishedHandler(object sender, BuildFinishedEventArgs args) { if (args.Succeeded == true && !projectFailed) { WriteLine("Build succeeded."); } else { WriteLine("Build FAILED."); } if (performanceSummary == true) { } if (warnings.Count > 0) { WriteLine(Environment.NewLine + "Warnings:"); SetColor(warningColor); WriteLine(String.Empty); foreach (KeyValuePair <string, List <string> > pair in warningsTable) { if (!String.IsNullOrEmpty(pair.Key)) { WriteLine(pair.Key); } string indent_str = String.IsNullOrEmpty(pair.Key) ? String.Empty : "\t"; foreach (string msg in pair.Value) { WriteLine(String.Format("{0}{1}", indent_str, msg)); } WriteLine(String.Empty); } ResetColor(); } if (errors.Count > 0) { WriteLine("Errors:"); SetColor(errorColor); WriteLine(String.Empty); foreach (KeyValuePair <string, List <string> > pair in errorsTable) { if (!String.IsNullOrEmpty(pair.Key)) { WriteLine(pair.Key); } string indent_str = String.IsNullOrEmpty(pair.Key) ? String.Empty : "\t"; foreach (string msg in pair.Value) { WriteLine(String.Format("{0}{1}", indent_str, msg)); } WriteLine(String.Empty); } ResetColor(); } if (showSummary == true) { TimeSpan timeElapsed = args.Timestamp - buildStart; WriteLine(String.Format("\t {0} Warning(s)", warningCount)); WriteLine(String.Format("\t {0} Error(s)", errorCount)); WriteLine(String.Empty); WriteLine(String.Format("Time Elapsed {0}", timeElapsed)); } PopEvent(); }
private void BuildFinished(object sender, BuildFinishedEventArgs e) { _succeeded = e.Succeeded; }
void eventSource_BuildFinished(object sender, BuildFinishedEventArgs e) { _output.Standard.WriteLine("BUILD FINISHED, Succeeded: {0}", e.Succeeded); }
/// <summary> /// Handle a build finished event /// </summary> /// <param name="sender">Who sent the event</param> /// <param name="e">Event raised on the event source</param> private void Source_BuildFinished(object sender, BuildFinishedEventArgs e) { HandleEvent(e); }
void EventSource_BuildFinished(object sender, BuildFinishedEventArgs e) { Log(MSBuildEvent.BuildFinished, e.Message); }
void BuildFinished(object sender, BuildFinishedEventArgs e) { AppendLine("BuildFinished: " + e.Message); }
private void Write(BuildFinishedEventArgs e) { Write(BinaryLogRecordKind.BuildFinished); WriteBuildEventArgsFields(e); Write(e.Succeeded); }
/// <summary> /// Handler for build finished events /// </summary> /// <param name="sender">sender (should be null)</param> /// <param name="e">event arguments</param> public override void BuildFinishedHandler(object sender, BuildFinishedEventArgs e) { // Show the performance summary if the verbosity is diagnostic or the user specifically asked for it // with a logger parameter. if (this.showPerfSummary) { ShowPerfSummary(); } if (ShowSummary == true) { if (e.Succeeded) { setColor(ConsoleColor.Green); } // Write the "Build Finished" event. WriteNewLine(); WriteLinePretty(e.Message); resetColor(); } // The decision whether or not to show a summary at this verbosity // was made during initialization. We just do what we're told. if (ShowSummary == true) { ShowErrorWarningSummary(); if (IsVerbosityAtLeast(LoggerVerbosity.Normal)) { // Emit text like: // 1 Warning(s) // 0 Error(s) // Don't color the line if it's zero. (Per Whidbey behavior.) if (warningCount > 0) { setColor(ConsoleColor.Yellow); } WriteLinePrettyFromResource(2, "WarningCount", warningCount); resetColor(); if (errorCount > 0) { setColor(ConsoleColor.Red); } WriteLinePrettyFromResource(2, "ErrorCount", errorCount); resetColor(); } } if (ShowSummary == true) { string timeElapsed = LogFormatter.FormatTimeSpan(e.Timestamp - buildStarted); WriteNewLine(); WriteLinePrettyFromResource("TimeElapsed", timeElapsed); } ResetConsoleLoggerState(); }
private void eventSource_BuildFinishedHandler(object sender, BuildFinishedEventArgs e) { LogStageFinished(e.Succeeded, e.Timestamp); }
public BuildFinishedLogLine(BuildFinishedEventArgs e) : base( $"<span class=\"{StyleSheet.MessageCssClass}\">{Localisation.BuildFinished} " + $" {(e.Succeeded?Localisation.InSuccess:Localisation.InError)}</span><br/>") { }