public void RegisterGoodDistributedAndCentralLogger() { string configurableClassName = "Microsoft.Build.Logging.ConfigurableForwardingLogger"; string distributedClassName = "Microsoft.Build.Logging.DistributedFileLogger"; LoggerDescription configurableDescription = CreateLoggerDescription(configurableClassName, Assembly.GetAssembly(typeof(ProjectCollection)).FullName, true); LoggerDescription distributedDescription = CreateLoggerDescription(distributedClassName, Assembly.GetAssembly(typeof(ProjectCollection)).FullName, true); DistributedFileLogger fileLogger = new DistributedFileLogger(); RegularILogger regularILogger = new RegularILogger(); Assert.True(_initializedService.RegisterDistributedLogger(regularILogger, configurableDescription)); Assert.True(_initializedService.RegisterDistributedLogger(null, distributedDescription)); Assert.NotNull(_initializedService.RegisteredLoggerTypeNames); // Should have 2 central loggers and 2 forwarding logger Assert.Equal(4, _initializedService.RegisteredLoggerTypeNames.Count); Assert.True(_initializedService.RegisteredLoggerTypeNames.Contains("Microsoft.Build.Logging.ConfigurableForwardingLogger")); Assert.True(_initializedService.RegisteredLoggerTypeNames.Contains("Microsoft.Build.UnitTests.Logging.LoggingService_Tests+RegularILogger")); Assert.True(_initializedService.RegisteredLoggerTypeNames.Contains("Microsoft.Build.Logging.DistributedFileLogger")); Assert.True(_initializedService.RegisteredLoggerTypeNames.Contains("Microsoft.Build.BackEnd.Logging.NullCentralLogger")); // Should have 2 event sink Assert.NotNull(_initializedService.RegisteredSinkNames); Assert.Equal(2, _initializedService.RegisteredSinkNames.Count); Assert.Equal(2, _initializedService.LoggerDescriptions.Count); }
public void DistributedLoggerNullEmpty() { Assert.Throws<LoggerException>(() => { DistributedFileLogger fileLogger = new DistributedFileLogger(); fileLogger.NodeId = 0; fileLogger.Initialize(new EventSourceSink()); fileLogger.NodeId = 1; fileLogger.Parameters = "logfile="; fileLogger.Initialize(new EventSourceSink()); Assert.True(false); } ); }
public void DistributedLoggerBadPath() { Assert.Throws<LoggerException>(() => { DistributedFileLogger fileLogger = new DistributedFileLogger(); fileLogger.NodeId = 0; fileLogger.Initialize(new EventSourceSink()); fileLogger.NodeId = 1; fileLogger.Parameters = "logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "\\DONTEXIST\\mylogfile.log"); fileLogger.Initialize(new EventSourceSink()); Assert.Equal(0, string.Compare(fileLogger.InternalFilelogger.Parameters, ";ShowCommandLine;logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "\\DONTEXIST\\mylogfile2.log"), StringComparison.OrdinalIgnoreCase)); } ); }
public void DistributedFileLoggerParameters() { DistributedFileLogger fileLogger = new DistributedFileLogger(); try { fileLogger.NodeId = 0; fileLogger.Initialize(new EventSourceSink()); Assert.Equal(0, string.Compare(fileLogger.InternalFilelogger.Parameters, "ForceNoAlign;ShowEventId;ShowCommandLine;logfile=msbuild0.log;", StringComparison.OrdinalIgnoreCase)); fileLogger.Shutdown(); fileLogger.NodeId = 3; fileLogger.Parameters = "logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "mylogfile.log"); fileLogger.Initialize(new EventSourceSink()); Assert.Equal(0, string.Compare(fileLogger.InternalFilelogger.Parameters, "ForceNoAlign;ShowEventId;ShowCommandLine;logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "mylogfile3.log") + ";", StringComparison.OrdinalIgnoreCase)); fileLogger.Shutdown(); fileLogger.NodeId = 4; fileLogger.Parameters = "logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "mylogfile.log"); fileLogger.Initialize(new EventSourceSink()); Assert.Equal(0, string.Compare(fileLogger.InternalFilelogger.Parameters, "ForceNoAlign;ShowEventId;ShowCommandLine;logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "mylogfile4.log") + ";", StringComparison.OrdinalIgnoreCase)); fileLogger.Shutdown(); Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), "tempura")); fileLogger.NodeId = 1; fileLogger.Parameters = "logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "tempura\\mylogfile.log"); fileLogger.Initialize(new EventSourceSink()); Assert.Equal(0, string.Compare(fileLogger.InternalFilelogger.Parameters, "ForceNoAlign;ShowEventId;ShowCommandLine;logfile=" + Path.Combine(Directory.GetCurrentDirectory(), "tempura\\mylogfile1.log") + ";", StringComparison.OrdinalIgnoreCase)); fileLogger.Shutdown(); } finally { if (Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), "tempura"))) { File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "tempura\\mylogfile1.log")); Directory.Delete(Path.Combine(Directory.GetCurrentDirectory(), "tempura")); } File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "mylogfile0.log")); File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "mylogfile3.log")); File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "mylogfile4.log")); } }
public void DistributedLoggerNullEmpty() { DistributedFileLogger fileLogger = new DistributedFileLogger(); fileLogger.NodeId = 0; fileLogger.Initialize(new EventSourceSink()); fileLogger.NodeId = 1; fileLogger.Parameters = "logfile="; fileLogger.Initialize(new EventSourceSink()); Assert.Fail(); }
public void DistributedLoggerBadPath() { DistributedFileLogger fileLogger = new DistributedFileLogger(); fileLogger.NodeId = 0; fileLogger.Initialize(new EventSourceSink()); fileLogger.NodeId = 1; fileLogger.Parameters = "logfile=" + Path.Combine(Environment.CurrentDirectory, "\\DONTEXIST\\mylogfile.log"); fileLogger.Initialize(new EventSourceSink()); Assert.IsTrue(string.Compare(fileLogger.InternalFilelogger.Parameters, ";ShowCommandLine;logfile=" + Path.Combine(Environment.CurrentDirectory, "\\DONTEXIST\\mylogfile2.log"), StringComparison.OrdinalIgnoreCase) == 0); }