private static SarifLog ConvertConsoleOutputToSarifLog(string consoleOutput) { var sb = new StringBuilder(); var converter = new MSBuildConverter(verbose: true); using (var input = new MemoryStream(Encoding.UTF8.GetBytes(consoleOutput))) using (var outputTextWriter = new StringWriter(sb)) using (var outputJson = new JsonTextWriter(outputTextWriter)) using (var output = new ResultLogJsonWriter(outputJson)) { converter.Convert(input, output, OptionallyEmittedData.None); } return(JsonConvert.DeserializeObject <SarifLog>(sb.ToString())); }
private static SarifLog RunAnalyzeCommand(TestAnalyzeOptions options, IFileSystem fileSystem = null, int expectedReturnCode = 0) { // If no log file is specified, we will convert the console output into a log file bool captureConsoleOutput = string.IsNullOrEmpty(options.OutputFilePath); var command = new TestAnalyzeCommand(fileSystem) { _captureConsoleOutput = captureConsoleOutput }; command.DefaultPlugInAssemblies = new Assembly[] { typeof(AnalyzeCommandBaseTests).Assembly }; try { HashUtilities.FileSystem = fileSystem; command.Run(options).Should().Be(expectedReturnCode); } finally { HashUtilities.FileSystem = null; } SarifLog sarifLog = null; if (captureConsoleOutput) { var converter = new MSBuildConverter(verbose: true); var sb = new StringBuilder(); using (var input = new MemoryStream(Encoding.UTF8.GetBytes(command._consoleLogger.CapturedOutput))) using (var outputTextWriter = new StringWriter(sb)) using (var outputJson = new JsonTextWriter(outputTextWriter)) using (var output = new ResultLogJsonWriter(outputJson)) { converter.Convert(input, output, OptionallyEmittedData.None); } sarifLog = JsonConvert.DeserializeObject <SarifLog>(sb.ToString()); } else { sarifLog = JsonConvert.DeserializeObject <SarifLog>(File.ReadAllText(options.OutputFilePath)); } return(sarifLog); }