Exemplo n.º 1
0
 private void FileLoggerBuildFinished(object sender, BuildFinishedEventArgs e)
 {
     _fileWriter?.Flush();
 }
Exemplo n.º 2
0
 private void OnBuildFinished(object sender, BuildFinishedEventArgs eventArgs)
 {
     _outputService.WriteLine(string.Empty);
 }
Exemplo n.º 3
0
 public abstract void BuildFinishedHandler(object sender, BuildFinishedEventArgs e);
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
 void eventSource_BuildFinishedHandler(object sender, BuildFinishedEventArgs e)
 {
     LogStageFinished(e.Succeeded, e.Timestamp);
 }
Exemplo n.º 6
0
        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);
                }
            }
        }
Exemplo n.º 7
0
        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;
            }
        }
Exemplo n.º 8
0
 private void EventSource_BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     log.BuildSucceeded = e.Succeeded;
 }
Exemplo n.º 9
0
 internal void SetStateStopped(object sender, BuildFinishedEventArgs e)
 {
     if (InvokeRequired)
     {
         MethodInvoker invoker = delegate { _isRunning = false; };
         Invoke(invoker);
     }
     else
     {
         _isRunning = false;
     }
 }
Exemplo n.º 10
0
 private void EventSourceOnBuildFinished(object sender, BuildFinishedEventArgs e)
 {
     BuildFinished?.Invoke(sender, e);
 }
Exemplo n.º 11
0
        /// <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;
            }
        }
Exemplo n.º 12
0
 private void BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     OverallSuccess = e.Succeeded;
 }
Exemplo n.º 13
0
 public async void OnBuildFinished(SolutionItem solutionItem, BuildFinishedEventArgs e)
 {
     await MessageSinks[0].AddMessage(e);
 }
Exemplo n.º 14
0
 private void BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     SendMessage(FormatMessage(e));
     SendMessage("END$$");
 }
Exemplo n.º 15
0
 private void BinLog_BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     EndCurrentNode(stringPool.Add(e.Message), e.Timestamp);
 }
Exemplo n.º 16
0
 internal override void OutputBuildFinished(object sender, BuildFinishedEventArgs e)
 {
     logStream.WriteLine(FormatBuildFinishedEvent(e));
 }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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");
        }
Exemplo n.º 19
0
 void BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     writer.WriteLine(GetLogMessage("BuildFinished", e));
 }
Exemplo n.º 20
0
        /// <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;
            }
        }
Exemplo n.º 21
0
 private void OnBuildFinished(object sender, BuildFinishedEventArgs e)
 {
     _buildStart.Stop();
     Log.Trace($"C# compile preparation finished {_buildStart.Elapsed.TotalMilliseconds}ms");
 }
Exemplo n.º 22
0
        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();
                        }
                    }
                }
            }
        }
Exemplo n.º 23
0
        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;
 }
Exemplo n.º 25
0
 void eventSource_BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     _output.Standard.WriteLine("BUILD FINISHED, Succeeded: {0}", e.Succeeded);
 }
Exemplo n.º 26
0
 /// <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);
 }
Exemplo n.º 27
0
 private void BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     SendMessage(FormatMessage(e));
     SendMessage("END$$");
 }
Exemplo n.º 28
0
 void EventSource_BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     Log(MSBuildEvent.BuildFinished, e.Message);
 }
Exemplo n.º 29
0
 void BuildFinished(object sender, BuildFinishedEventArgs e)
 {
     AppendLine("BuildFinished: " + e.Message);
 }
Exemplo n.º 30
0
 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();
        }
Exemplo n.º 32
0
 private void eventSource_BuildFinishedHandler(object sender, BuildFinishedEventArgs e)
 {
     LogStageFinished(e.Succeeded, e.Timestamp);
 }
Exemplo n.º 33
0
 public BuildFinishedLogLine(BuildFinishedEventArgs e) : base(
         $"<span class=\"{StyleSheet.MessageCssClass}\">{Localisation.BuildFinished} " +
         $" {(e.Succeeded?Localisation.InSuccess:Localisation.InError)}</span><br/>")
 {
 }