コード例 #1
0
ファイル: Program.cs プロジェクト: tmat/roslyn-tools
        private static Benchmark[] MakeBenchmarks(string slnDir, EndToEndRoslynConfig config, string[] commits)
        {
            var benchmarks = new Benchmark[commits.Length];

            for (int i = 0; i < commits.Length; i++)
            {
                benchmarks[i] = new ExternalProcessBenchmark(
                    Path.Combine(slnDir, "Binaries/CodeAnalysisRepro"),
                    "-noconfig @repro.rsp",
                    BuildRoslyn(slnDir),
                    config.GetJobs().Single(),
                    MakeParameterInstances(commits[i]));
            }
            return(benchmarks);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: tmat/roslyn-tools
        public static int Main(string[] args)
        {
            var roslynDir = Path.GetFullPath(
                Path.Combine(AppContext.BaseDirectory, "../../../../../../roslyn"));

            try
            {
                int i = 0;
                while (i < args.Length)
                {
                    var arg = args[i++];

                    string ReadVar() => (i < args.Length)
                        ? args[i++]
                        : throw new InvalidDataException($"Expected value for \"{arg}\"");

                    switch (arg)
                    {
                    case "--roslynDir":
                        roslynDir = Path.GetFullPath(ReadVar());
                        break;

                    default:
                        throw new InvalidDataException("Unexpected option " + arg);
                    }
                }
            }
            catch (InvalidDataException e)
            {
                Console.Error.WriteLine(e.Message);
                return(1);
            }

            var config = new EndToEndRoslynConfig(
                Path.Combine(roslynDir, "Binaries/Release/Exes/csc/netcoreapp2.0/csc.dll"));
            var benchmarks = MakeBenchmarks(roslynDir, config, new[] { "HEAD^", "HEAD" });

            var summary = BenchmarkRunner.Run(benchmarks, config);

            return(0);
        }