public static Summary Run(Benchmark[] benchmarks, IConfig config, Func<Job, IToolchain> toolchainProvider) { var resolver = DefaultResolver; config = BenchmarkConverter.GetFullConfig(benchmarks.FirstOrDefault()?.Target.Type, config); var title = GetTitle(benchmarks); var rootArtifactsFolderPath = GetRootArtifactsFolderPath(); using (var logStreamWriter = Portability.StreamWriter.FromPath(Path.Combine(rootArtifactsFolderPath, title + ".log"))) { var logger = new CompositeLogger(config.GetCompositeLogger(), new StreamLogger(logStreamWriter)); benchmarks = GetSupportedBenchmarks(benchmarks, logger, toolchainProvider, resolver); return Run(benchmarks, logger, title, config, rootArtifactsFolderPath, toolchainProvider, resolver); } }
internal static Summary Run(Benchmark[] benchmarks, IConfig config, Func<IJob, IToolchain> toolchainProvider) { config = BenchmarkConverter.GetFullConfig(benchmarks.FirstOrDefault()?.Target.Type, config); var title = GetTitle(benchmarks); var rootArtifactsFolderPath = GetRootArtifactsFolderPath(); using (var logStreamWriter = Portability.StreamWriter.FromPath(Path.Combine(rootArtifactsFolderPath, title + ".log"))) { var logger = new CompositeLogger(config.GetCompositeLogger(), new StreamLogger(logStreamWriter)); benchmarks = GetSupportedBenchmarks(benchmarks, logger, toolchainProvider); var summary = Run(benchmarks, logger, title, config, rootArtifactsFolderPath, toolchainProvider); if (!summary.HasCriticalValidationErrors) { config.GetCompositeExporter().ExportToFiles(summary).ToArray(); } return summary; } }