コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
 private static Benchmark[] GetSupportedBenchmarks(IList<Benchmark> benchmarks, CompositeLogger logger, Func<IJob, IToolchain> toolchainProvider)
 {
     return benchmarks.Where(benchmark => toolchainProvider(benchmark.Job).IsSupported(benchmark, logger)).ToArray();
 }