private async Task DowwnloadResults() { foreach (var file in Directory.GetFiles(this.OutputDir)) { File.Delete(file); } Storage storage = new Storage(); foreach (var b in Benchmarks) { var metadata = new TestMetadata(b.Test); object target = metadata.InstantiateTest(); List <string> rowKeys = new List <string>(); foreach (var comboList in metadata.EnumerateParamCombinations(0, new Stack <ParamInfo>())) { foreach (var test in metadata.TestMethods) { string name = test.ApplyParams(target, comboList); rowKeys.Add(this.CommitId + "." + b.Test.Name + "." + name); } } Console.WriteLine("Downloading results for test {0}...", b.Name); string summaryFile = Path.Combine(this.OutputDir, "summary.csv"); bool writeHeaders = !File.Exists(summaryFile); using (var file = new StreamWriter(summaryFile, true, Encoding.UTF8)) { if (writeHeaders) { PerfSummary.WriteHeaders(file); } foreach (var summary in await storage.DownloadAsync(this.DownloadPartition, rowKeys)) { if (summary is null) { Console.WriteLine("Summary missing for {0}", b.Name); } else { summary.CommitId = this.CommitId; summary.SetPartitionKey(this.DownloadPartition); summary.WriteCsv(file); } } } } }
private void SaveSummary(List <PerfSummary> report) { string filename = Path.Combine(this.OutputDir, "summary.csv"); bool writeHeaders = !File.Exists(filename); using (StreamWriter writer = new StreamWriter(filename, true, Encoding.UTF8)) { if (writeHeaders) { PerfSummary.WriteHeaders(writer); } foreach (var item in report) { item.WriteCsv(writer); } } }