private ProcessStartInfo CreateStartInfo(Benchmark benchmark, string exeName, string args, string workingDirectory) { var start = new ProcessStartInfo { UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = true, WorkingDirectory = workingDirectory }; var runtime = benchmark.Job.Runtime == Runtime.Host ? RuntimeInformation.GetCurrent() : benchmark.Job.Runtime; switch (runtime) { case Runtime.Clr: case Runtime.Dnx: case Runtime.Core: start.FileName = exeName; start.Arguments = args; break; case Runtime.Mono: start.FileName = "mono"; start.Arguments = exeName + " " + args; break; default: throw new NotSupportedException("Runtime = " + benchmark.Job.Runtime); } return(start); }
public virtual bool IsSupported(Benchmark benchmark, ILogger logger) { var runtime = benchmark.Job.Runtime == Runtime.Host ? RuntimeInformation.GetCurrent() : benchmark.Job.Runtime; if (runtime != Runtime.Mono && benchmark.Job.Jit == Jit.Llvm) { logger.WriteLineError($"Llvm is supported only for Mono, benchmark {benchmark.ShortInfo} will not be executed"); return(false); } return(true); }
internal static IToolchain GetToolchain(this Runtime runtime) { switch (runtime) { case Runtime.Host: return(GetToolchain(RuntimeInformation.GetCurrent())); case Runtime.Clr: case Runtime.Mono: return(Classic.ClassicToolchain.Instance); case Runtime.Core: return(Core.CoreToolchain.Instance); } throw new NotSupportedException("Runtime not supported"); }
public static IToolchain GetToolchain(Runtime runtime) { switch (runtime) { case Runtime.Host: return(GetToolchain(RuntimeInformation.GetCurrent())); case Runtime.Clr: case Runtime.Mono: #if CLASSIC return(Classic.ClassicToolchain.Instance); #endif case Runtime.Dnx: return(Dnx.DnxToolchain.Instance); case Runtime.Core: return(Core.CoreToolchain.Instance); } throw new NotSupportedException("Runtime not supported"); }
public static Runtime GetCurrentRuntime() => RuntimeInformation.GetCurrent();