Example #1
0
        private void LogIssue(IssueDescriptor issueDescriptor, string dynamicMessage, IssueKind?issueKindOverride, SourceSegment?sourceSegment)
        {
            var issueKind = issueKindOverride ?? issueDescriptor.DefaultKind;
            var message   = dynamicMessage ?? issueDescriptor.StaticDescription;

            var code        = issueDescriptor.Id;
            var path        = sourceSegment?.Path;
            var startLine   = sourceSegment?.StartLine ?? 0;
            var startColumn = sourceSegment?.StartColumn ?? 0;
            var endLine     = sourceSegment?.EndLine ?? 0;
            var endColumn   = sourceSegment?.EndColumn ?? 0;

            LogBuildEvent(issueKind, message, InfoImportance, code, path, startLine, startColumn, endLine, endColumn);

            if (issueKind == IssueKind.Warning)
            {
                numberOfLoggedWarnings++;
            }

            if (numberOfLoggedWarnings > (_maxWarningErrorThreshold ?? int.MaxValue) && !tooManyWarningsErrorHasBeenLogged)
            {
                tooManyWarningsErrorHasBeenLogged = true;

                LogIssue(IssueDefinitions.MaxWarningErrorThresholdExceededIssue, "MaxWarningErrorThreshold has been exceeded", null, null);
            }
        }
Example #2
0
        public void LogIssueT_Success()
        {
            var issue = new IssueDescriptor <string>("MyCode", IssueKind.Info, "MyDescription", i => i);

            CreateLogger().LogIssue(issue, "MyParameter");

            VerifyLogMessageEvent("MyParameter", MessageImportance.Normal);
        }
Example #3
0
        public void LogIssue_Info_Success()
        {
            var issue = new IssueDescriptor("MyCode", IssueKind.Info, "MyDescription");

            CreateLogger().LogIssue(issue);

            VerifyLogMessageEvent("MyDescription", MessageImportance.Normal);
        }
Example #4
0
        public void LogIssue_Warning_Success()
        {
            var issue = new IssueDescriptor("MyCode", IssueKind.Warning, "MyDescription");

            CreateLogger().LogIssue(issue);

            VerifyLogWarningEvent("MyCode", "MyDescription");
        }
Example #5
0
        public void LogIssue_Error_Success()
        {
            var issue = new IssueDescriptor("MyCode", IssueKind.Error, "MyDescription");

            CreateLogger().LogIssue(issue);

            VerifyLogErrorEvent("MyCode", "MyDescription");
        }
Example #6
0
        public void LogIssue_Info_HighImportance_Success()
        {
            var issue = new IssueDescriptor("MyCode", IssueKind.Info, "MyDescription");

            var logger = CreateLogger();

            logger.InfoImportance = MessageImportance.High;
            logger.LogIssue(issue);

            VerifyLogMessageEvent("MyDescription", MessageImportance.High);
        }
 public static DiagnosticDescriptor ToDiagnosticDescriptor <TIssue>(this IssueDescriptor <TIssue> issueDescriptor)
 {
     return(new DiagnosticDescriptor(
                issueDescriptor.Id,
                issueDescriptor.StaticDescription,
                issueDescriptor.StaticDescription,
                ProductConstants.ToolName,
                issueDescriptor.DefaultKind.ToDiagnosticSeverity(),
                true,
                helpLinkUri: GetHelpLink(issueDescriptor.Id)));
 }
        private void LogIssue(IssueDescriptor issueDescriptor, string dynamicMessage, IssueKind?issueKindOverride, SourceSegment?sourceSegment)
        {
            var issueKind = issueKindOverride ?? issueDescriptor.DefaultKind;
            var message   = dynamicMessage ?? issueDescriptor.StaticDescription;

            var code        = issueDescriptor.Id;
            var path        = sourceSegment?.Path;
            var startLine   = sourceSegment?.StartLine ?? 0;
            var startColumn = sourceSegment?.StartColumn ?? 0;
            var endLine     = sourceSegment?.EndLine ?? 0;
            var endColumn   = sourceSegment?.EndColumn ?? 0;

            LogBuildEvent(issueKind, message, InfoImportance, code, path, startLine, startColumn, endLine, endColumn);
        }
Example #9
0
        public void ExceedingMaxWarningErrorThresholdCausesIssueToBeLogged()
        {
            //Given a logger
            var msBuildLoggerGateway = CreateLogger();

            //And that logger has a maxWarningErrorThreshold
            msBuildLoggerGateway.SetMaxWarningErrorThreshold(0);
            //When there have been more warnings logged than the maxWarningErrorThreshold
            var issue = new IssueDescriptor <string>("MyCode", IssueKind.Warning, "MyDescription", i => i);

            msBuildLoggerGateway.LogIssue(issue, "MyParameter");
            //Then an error should be logged
            VerifyLogErrorEvent(IssueDefinitions.MaxWarningErrorThresholdExceededIssue.Id, "MaxWarningErrorThreshold has been exceeded");
        }
 public void LogIssue(IssueDescriptor issueDescriptor)
 => LogIssue(issueDescriptor, null, null, null);
 public void LogIssue <T>(IssueDescriptor <T> issueDescriptor, T issueParameter, IssueKind?issueKindOverride = null, SourceSegment?sourceSegment = null)
 => LogIssue(issueDescriptor, issueDescriptor.GetDynamicDescription(issueParameter), issueKindOverride, sourceSegment);
Example #12
0
 public void LogIssue(IssueDescriptor issueDescriptor, IssueKind?issueKindOverride = null)
 => LogIssue(issueDescriptor, null, issueKindOverride, null);