private static Job CreateJob(string id, int launchCount, int warmupCount, int targetCount, int invocationCount, RunStrategy?runStrategy, bool baseline, RuntimeMoniker runtimeMoniker = RuntimeMoniker.HostProcess) { var job = new Job(id); int manualValuesCount = 0; if (launchCount != DefaultValue) { job.Run.LaunchCount = launchCount; manualValuesCount++; } if (warmupCount != DefaultValue) { job.Run.WarmupCount = warmupCount; manualValuesCount++; } if (targetCount != DefaultValue) { job.Run.IterationCount = targetCount; manualValuesCount++; } if (invocationCount != DefaultValue) { job.Run.InvocationCount = invocationCount; manualValuesCount++; int unrollFactor = job.Run.ResolveValue(RunMode.UnrollFactorCharacteristic, EnvironmentResolver.Instance); if (invocationCount % unrollFactor != 0) { job.Run.UnrollFactor = 1; manualValuesCount++; } } if (runStrategy != null) { job.Run.RunStrategy = runStrategy.Value; manualValuesCount++; } if (baseline) { job.Meta.Baseline = true; } if (runtimeMoniker != RuntimeMoniker.HostProcess) { job.Environment.Runtime = runtimeMoniker.GetRuntime(); manualValuesCount++; } if (id == null && manualValuesCount == 1 && runtimeMoniker != RuntimeMoniker.HostProcess) { job = job.WithId(runtimeMoniker.GetRuntime().Name); } return(job.Freeze()); }
public void TryGetVersionFromProductInfoHandlesValidInput(RuntimeMoniker expectedTfm, string expectedMsBuildMoniker, string productName, string productVersion) { Assert.True(CoreRuntime.TryGetVersionFromProductInfo(productVersion, productName, out Version version)); var runtime = CoreRuntime.FromVersion(version); Assert.Equal(expectedTfm, runtime.RuntimeMoniker); Assert.Equal(expectedMsBuildMoniker, runtime.MsBuildMoniker); }
public SimpleJobAttribute( RuntimeMoniker runtimeMoniker, int launchCount = DefaultValue, int warmupCount = DefaultValue, int targetCount = DefaultValue, int invocationCount = DefaultValue, string id = null, bool baseline = false ) : base(CreateJob(id, launchCount, warmupCount, targetCount, invocationCount, null, baseline, runtimeMoniker)) { }
protected Runtime(RuntimeMoniker runtimeMoniker, string msBuildMoniker, string displayName) { if (string.IsNullOrEmpty(displayName)) { throw new ArgumentNullException(nameof(displayName)); } if (string.IsNullOrEmpty(msBuildMoniker)) { throw new ArgumentNullException(nameof(msBuildMoniker)); } RuntimeMoniker = runtimeMoniker; MsBuildMoniker = msBuildMoniker; Name = displayName; }
private static Job GetJob(RuntimeMoniker runtimeMoniker, Jit?jit, Platform?platform) { var runtime = runtimeMoniker.GetRuntime(); var baseJob = Job.Dry.WithRuntime(runtime).WithId($"Dry-{runtime.Name}"); var id = baseJob.Id; if (jit.HasValue) { baseJob = baseJob.WithJit(jit.Value); id += "-" + jit.Value; } if (platform.HasValue) { baseJob = baseJob.WithPlatform(platform.Value); id += "-" + platform.Value; } return(baseJob.WithId(id).Freeze()); }
private ClrRuntime(RuntimeMoniker targetFrameworkMoniker, string msBuildMoniker, string displayName, string version = null) : base(targetFrameworkMoniker, msBuildMoniker, displayName) { Version = version; }
/// <summary> /// defines a new MediumRun Job that targets specified Framework /// </summary> /// <param name="runtimeMoniker">Target Framework to test.</param> public MediumRunJobAttribute(RuntimeMoniker runtimeMoniker) : base(GetJob(Job.MediumRun, runtimeMoniker, null, null)) { }
private static IToolchain GetToolchain(RuntimeMoniker targetFrameworkMoniker) { switch (targetFrameworkMoniker) { case RuntimeMoniker.Net461: return(CsProjClassicNetToolchain.Net461); case RuntimeMoniker.Net462: return(CsProjClassicNetToolchain.Net462); case RuntimeMoniker.Net47: return(CsProjClassicNetToolchain.Net47); case RuntimeMoniker.Net471: return(CsProjClassicNetToolchain.Net471); case RuntimeMoniker.Net472: return(CsProjClassicNetToolchain.Net472); case RuntimeMoniker.Net48: return(CsProjClassicNetToolchain.Net48); case RuntimeMoniker.NetCoreApp20: return(CsProjCoreToolchain.NetCoreApp20); case RuntimeMoniker.NetCoreApp21: return(CsProjCoreToolchain.NetCoreApp21); case RuntimeMoniker.NetCoreApp22: return(CsProjCoreToolchain.NetCoreApp22); case RuntimeMoniker.NetCoreApp30: return(CsProjCoreToolchain.NetCoreApp30); case RuntimeMoniker.NetCoreApp31: return(CsProjCoreToolchain.NetCoreApp31); case RuntimeMoniker.NetCoreApp50: return(CsProjCoreToolchain.NetCoreApp50); case RuntimeMoniker.CoreRt20: return(CoreRtToolchain.Core20); case RuntimeMoniker.CoreRt21: return(CoreRtToolchain.Core21); case RuntimeMoniker.CoreRt22: return(CoreRtToolchain.Core22); case RuntimeMoniker.CoreRt30: return(CoreRtToolchain.Core30); case RuntimeMoniker.CoreRt31: return(CoreRtToolchain.Core31); case RuntimeMoniker.CoreRt50: return(CoreRtToolchain.Core50); default: throw new ArgumentOutOfRangeException(nameof(targetFrameworkMoniker), targetFrameworkMoniker, "Target Framework Moniker not supported"); } }
/// <summary> /// defines a new Dry Job that targets specified Framework, JIT and Platform /// </summary> /// <param name="runtimeMoniker">Target Framework to test.</param> /// <param name="jit">Jit to test.</param> /// <param name="platform">Platform to test.</param> public DryJobAttribute(RuntimeMoniker runtimeMoniker, Jit jit, Platform platform) : base(GetJob(Job.Dry, runtimeMoniker, jit, platform)) { }
/// <summary> /// creates new instance of WasmRuntime /// </summary> /// <param name="javaScriptEngine">Full path to a java script engine used to run the benchmarks. "v8" by default</param> /// <param name="javaScriptEngineArguments">Arguments for the javascript engine. "--expose_wasm" by default</param> /// <param name="msBuildMoniker">moniker, default: "net5.0"</param> /// <param name="displayName">default: "Wasm"</param> /// <param name="aot">Specifies whether AOT or Interpreter (default) project should be generated.</param> /// <param name="wasmDataDir">Specifies a wasm data directory surfaced as $(WasmDataDir) for the project</param> /// <param name="moniker">Runtime moniker</param> public WasmRuntime(string msBuildMoniker = "net5.0", string displayName = "Wasm", string javaScriptEngine = "v8", string javaScriptEngineArguments = "--expose_wasm", bool aot = false, string wasmDataDir = null, RuntimeMoniker moniker = RuntimeMoniker.Wasm) : base(moniker, msBuildMoniker, displayName) { if (!string.IsNullOrEmpty(javaScriptEngine) && javaScriptEngine != "v8" && !File.Exists(javaScriptEngine)) { throw new FileNotFoundException($"Provided {nameof(javaScriptEngine)} file: \"{javaScriptEngine}\" doest NOT exist"); } JavaScriptEngine = javaScriptEngine; JavaScriptEngineArguments = javaScriptEngineArguments; Aot = aot; WasmDataDir = wasmDataDir; }
/// <summary> /// defines a new LongRun Job that targets specified Framework /// </summary> /// <param name="runtimeMoniker">Target Framework to test.</param> public LongRunJobAttribute(RuntimeMoniker runtimeMoniker) : base(GetJob(Job.LongRun, runtimeMoniker, null, null)) { }
private ClrRuntime(RuntimeMoniker runtimeMoniker, string msBuildMoniker, string displayName, string version = null) : base(runtimeMoniker, msBuildMoniker, displayName) { Version = version; }
/// <summary> /// defines a new ShortRun Job that targets specified Framework /// </summary> /// <param name="runtimeMoniker">Target Framework to test.</param> public ShortRunJobAttribute(RuntimeMoniker runtimeMoniker) : base(GetJob(Job.ShortRun, runtimeMoniker, null, null)) { }
public void TryGetVersionFromRuntimeDirectoryHandlesValidInput(string runtimeDirectory, RuntimeMoniker expectedTfm, string expectedMsBuildMoniker) { Assert.True(CoreRuntime.TryGetVersionFromRuntimeDirectory(runtimeDirectory, out Version version)); var runtime = CoreRuntime.FromVersion(version); Assert.Equal(expectedTfm, runtime.RuntimeMoniker); Assert.Equal(expectedMsBuildMoniker, runtime.MsBuildMoniker); }
public void TryGetVersionFromFrameworkNameHandlesValidInput(string frameworkName, RuntimeMoniker expectedTfm, string expectedMsBuildMoniker) { Assert.True(CoreRuntime.TryGetVersionFromFrameworkName(frameworkName, out Version version)); var runtime = CoreRuntime.FromVersion(version); Assert.Equal(expectedTfm, runtime.RuntimeMoniker); Assert.Equal(expectedMsBuildMoniker, runtime.MsBuildMoniker); }
internal static Runtime GetRuntime(this RuntimeMoniker runtimeMoniker) { switch (runtimeMoniker) { case RuntimeMoniker.Net461: return(ClrRuntime.Net461); case RuntimeMoniker.Net462: return(ClrRuntime.Net462); case RuntimeMoniker.Net47: return(ClrRuntime.Net47); case RuntimeMoniker.Net471: return(ClrRuntime.Net471); case RuntimeMoniker.Net472: return(ClrRuntime.Net472); case RuntimeMoniker.Net48: return(ClrRuntime.Net48); case RuntimeMoniker.NetCoreApp20: return(CoreRuntime.Core20); case RuntimeMoniker.NetCoreApp21: return(CoreRuntime.Core21); case RuntimeMoniker.NetCoreApp22: return(CoreRuntime.Core22); case RuntimeMoniker.NetCoreApp30: return(CoreRuntime.Core30); case RuntimeMoniker.NetCoreApp31: return(CoreRuntime.Core31); case RuntimeMoniker.NetCoreApp50: return(CoreRuntime.Core50); case RuntimeMoniker.Mono: return(MonoRuntime.Default); case RuntimeMoniker.CoreRt20: return(CoreRtRuntime.CoreRt20); case RuntimeMoniker.CoreRt21: return(CoreRtRuntime.CoreRt21); case RuntimeMoniker.CoreRt22: return(CoreRtRuntime.CoreRt22); case RuntimeMoniker.CoreRt30: return(CoreRtRuntime.CoreRt30); case RuntimeMoniker.CoreRt31: return(CoreRtRuntime.CoreRt31); case RuntimeMoniker.CoreRt50: return(CoreRtRuntime.CoreRt50); default: throw new ArgumentOutOfRangeException(nameof(runtimeMoniker), runtimeMoniker, "Runtime Moniker not supported"); } }
internal static Runtime GetRuntime(this RuntimeMoniker runtimeMoniker) { switch (runtimeMoniker) { case RuntimeMoniker.Net461: return(ClrRuntime.Net461); case RuntimeMoniker.Net462: return(ClrRuntime.Net462); case RuntimeMoniker.Net47: return(ClrRuntime.Net47); case RuntimeMoniker.Net471: return(ClrRuntime.Net471); case RuntimeMoniker.Net472: return(ClrRuntime.Net472); case RuntimeMoniker.Net48: return(ClrRuntime.Net48); case RuntimeMoniker.Net481: return(ClrRuntime.Net481); case RuntimeMoniker.NetCoreApp20: return(CoreRuntime.Core20); case RuntimeMoniker.NetCoreApp21: return(CoreRuntime.Core21); case RuntimeMoniker.NetCoreApp22: return(CoreRuntime.Core22); case RuntimeMoniker.NetCoreApp30: return(CoreRuntime.Core30); case RuntimeMoniker.NetCoreApp31: return(CoreRuntime.Core31); case RuntimeMoniker.Net50: #pragma warning disable CS0618 // Type or member is obsolete case RuntimeMoniker.NetCoreApp50: #pragma warning restore CS0618 // Type or member is obsolete return(CoreRuntime.Core50); case RuntimeMoniker.Net60: return(CoreRuntime.Core60); case RuntimeMoniker.Net70: return(CoreRuntime.Core70); case RuntimeMoniker.Mono: return(MonoRuntime.Default); case RuntimeMoniker.NativeAot60: return(NativeAotRuntime.Net60); case RuntimeMoniker.NativeAot70: return(NativeAotRuntime.Net70); default: throw new ArgumentOutOfRangeException(nameof(runtimeMoniker), runtimeMoniker, "Runtime Moniker not supported"); } }
private CoreRuntime(RuntimeMoniker targetFrameworkMoniker, string msBuildMoniker, string displayName) : base(targetFrameworkMoniker, msBuildMoniker, displayName) { }
private CoreRuntime(RuntimeMoniker runtimeMoniker, string msBuildMoniker, string displayName) : base(runtimeMoniker, msBuildMoniker, displayName) { }
private NativeAotRuntime(RuntimeMoniker runtimeMoniker, string msBuildMoniker, string displayName) : base(runtimeMoniker, msBuildMoniker, displayName) { }
/// <summary> /// defines a new LongRun Job that targets specified Framework, JIT and Platform /// </summary> /// <param name="runtimeMoniker">Target Framework to test.</param> /// <param name="jit">Jit to test.</param> /// <param name="platform">Platform to test.</param> public LongRunJobAttribute(RuntimeMoniker runtimeMoniker, Jit jit, Platform platform) : base(GetJob(Job.LongRun, runtimeMoniker, jit, platform)) { }
/// <summary> /// defines a new Dry Job that targets specified Framework /// </summary> /// <param name="runtimeMoniker">Target Framework to test.</param> public DryJobAttribute(RuntimeMoniker runtimeMoniker) : base(GetJob(Job.Dry, runtimeMoniker, null, null)) { }