public void GrandOutputHasSameCompressedAndUncompressedLogs()
{
string rootPath = SystemActivityMonitor.RootLogPath + @"\GrandOutputGzip";
TestHelper.CleanupFolder(rootPath);
GrandOutputConfiguration c = new GrandOutputConfiguration();
Assert.That(c.Load(XDocument.Parse(@"
<GrandOutputConfiguration GlobalDefaultFilter=""Release"" >
<Channel>
<Add Type=""BinaryFile"" Name=""GzipGlobalCatch"" Path=""" + rootPath + @"\OutputGzip"" MaxCountPerFile=""200000"" UseGzipCompression=""True"" />
<Add Type=""BinaryFile"" Name=""RawGlobalCatch"" Path=""" + rootPath + @"\OutputRaw"" MaxCountPerFile=""200000"" UseGzipCompression=""False"" />
</Channel>
</GrandOutputConfiguration>"
).Root, TestHelper.ConsoleMonitor));
Assert.That(c.ChannelsConfiguration.Configurations.Count, Is.EqualTo(2));
using (GrandOutput g = new GrandOutput())
{
Assert.That(g.SetConfiguration(c, TestHelper.ConsoleMonitor), Is.True);
var taskA = Task.Factory.StartNew <int>(() => { DumpMonitorOutput(CreateMonitorAndRegisterGrandOutput("Task A", g)); return(1); });
var taskB = Task.Factory.StartNew <int>(() => { DumpMonitorOutput(CreateMonitorAndRegisterGrandOutput("Task B", g)); return(1); });
var taskC = Task.Factory.StartNew <int>(() => { DumpMonitorOutput(CreateMonitorAndRegisterGrandOutput("Task C", g)); return(1); });
Task.WaitAll(taskA, taskB, taskC);
}
string[] gzipCkmons = TestHelper.WaitForCkmonFilesInDirectory(rootPath + @"\OutputGzip", 1);
string[] rawCkmons = TestHelper.WaitForCkmonFilesInDirectory(rootPath + @"\OutputRaw", 1);
Assert.That(gzipCkmons, Has.Length.EqualTo(1));
Assert.That(rawCkmons, Has.Length.EqualTo(1));
FileInfo gzipCkmonFile = new FileInfo(gzipCkmons.Single());
FileInfo rawCkmonFile = new FileInfo(rawCkmons.Single());
Assert.That(gzipCkmonFile.Exists, Is.True);
Assert.That(rawCkmonFile.Exists, Is.True);
// Test file size
Assert.That(gzipCkmonFile.Length, Is.LessThan(rawCkmonFile.Length));
// Test de-duplication between Gzip and non-Gzip
MultiLogReader mlr = new MultiLogReader();
var fileList = mlr.Add(new string[] { gzipCkmonFile.FullName, rawCkmonFile.FullName });
Assert.That(fileList, Has.Count.EqualTo(2));
var map = mlr.GetActivityMap();
Assert.That(map.Monitors.Count, Is.EqualTo(3));
}