Ejemplo n.º 1
0
        public void LogAzureDevOpsIssueTest()
        {
            var            console   = new MockConsole();
            BuildViewModel viewModel = new BuildViewModel();

            viewModel.BuildSummary = new BuildSummary(Path.Combine(TestOutputDirectory, "test.md"));
            var pipDescription      = "my cool pip";
            var shortPipDescription = "my pip";
            var pipSpecPath         = @"specs\mypip.dsc";
            var pipWorkingDirectory = @"specs\workingDir";
            var pipExe                 = "coolpip.exe";
            var outputToLog            = "Failure message Line1\r\nFailure message Line2\rFailure message Line3\n";
            var processedOutputToLog   = "Failure message Line1%0D%0A##[error]Failure message Line2%0D##[error]Failure message Line3%0A##[error]";
            var messageAboutPathsToLog = "Find output file in following path:";
            var pathsToLog             = @"specs\workingDir\out.txt";
            var exitCode               = -1;
            var optionalMessage        = "what does this do?";
            var expectingConsoleLog    = @$ "##vso[task.logIssue type=error;][Pip0000000000000018, {shortPipDescription}, {pipSpecPath}] - failed with exit code {exitCode}, {optionalMessage}%0D%0A##[error]{processedOutputToLog}%0D%0A##[error]{messageAboutPathsToLog}%0D%0A##[error]{pathsToLog}";

            using (AzureDevOpsListener listener = new AzureDevOpsListener(Events.Log, console, DateTime.Now, viewModel, false, null))
            {
                listener.RegisterEventSource(global::BuildXL.Processes.ETWLogger.Log);
                global::BuildXL.Processes.Tracing.Logger.Log.PipProcessError(LoggingContext,
                                                                             pipSemiStableHash: 24,
                                                                             pipDescription: pipDescription,
                                                                             pipSpecPath: pipSpecPath,
                                                                             pipWorkingDirectory: pipWorkingDirectory,
                                                                             pipExe: pipExe,
                                                                             outputToLog: outputToLog,
                                                                             messageAboutPathsToLog: messageAboutPathsToLog,
                                                                             pathsToLog: pathsToLog,
                                                                             exitCode: exitCode,
                                                                             optionalMessage: optionalMessage,
                                                                             shortPipDescription: shortPipDescription);
                console.ValidateCall(MessageLevel.Info, expectingConsoleLog);
            }
        }