From 17c7c18ab474156146e7c1ff46c6225f8b5044a7 Mon Sep 17 00:00:00 2001 From: Tim Jones Date: Fri, 10 Mar 2023 11:49:24 +0000 Subject: [PATCH 1/2] Allow custom runtimes to use Executor --- src/BenchmarkDotNet/Toolchains/Executor.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/BenchmarkDotNet/Toolchains/Executor.cs b/src/BenchmarkDotNet/Toolchains/Executor.cs index 85afb75a3b..0bd2d14635 100644 --- a/src/BenchmarkDotNet/Toolchains/Executor.cs +++ b/src/BenchmarkDotNet/Toolchains/Executor.cs @@ -149,7 +149,9 @@ private static ProcessStartInfo CreateStartInfo(BenchmarkCase benchmarkCase, Art start.WorkingDirectory = artifactsPaths.BinariesDirectoryPath; break; default: - throw new NotSupportedException("Runtime = " + runtime); + start.FileName = exePath; + start.Arguments = args; + break; } return start; } From 8471f18b8fc96ddc3d12dd3a89717afcae905dbf Mon Sep 17 00:00:00 2001 From: Tim Jones Date: Fri, 10 Mar 2023 15:06:01 +0000 Subject: [PATCH 2/2] Apply @AndreyAkinshin's suggestion --- .../Environments/Runtimes/CustomRuntime.cs | 12 ++++++++++++ src/BenchmarkDotNet/Toolchains/Executor.cs | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/BenchmarkDotNet/Environments/Runtimes/CustomRuntime.cs diff --git a/src/BenchmarkDotNet/Environments/Runtimes/CustomRuntime.cs b/src/BenchmarkDotNet/Environments/Runtimes/CustomRuntime.cs new file mode 100644 index 0000000000..96144b942a --- /dev/null +++ b/src/BenchmarkDotNet/Environments/Runtimes/CustomRuntime.cs @@ -0,0 +1,12 @@ +using BenchmarkDotNet.Jobs; + +namespace BenchmarkDotNet.Environments +{ + public abstract class CustomRuntime : Runtime + { + protected CustomRuntime(RuntimeMoniker runtimeMoniker, string msBuildMoniker, string displayName) + : base(runtimeMoniker, msBuildMoniker, displayName) + { + } + } +} \ No newline at end of file diff --git a/src/BenchmarkDotNet/Toolchains/Executor.cs b/src/BenchmarkDotNet/Toolchains/Executor.cs index 0bd2d14635..735c6f7437 100644 --- a/src/BenchmarkDotNet/Toolchains/Executor.cs +++ b/src/BenchmarkDotNet/Toolchains/Executor.cs @@ -148,10 +148,12 @@ private static ProcessStartInfo CreateStartInfo(BenchmarkCase benchmarkCase, Art start.Arguments = args; start.WorkingDirectory = artifactsPaths.BinariesDirectoryPath; break; - default: + case CustomRuntime _: start.FileName = exePath; start.Arguments = args; break; + default: + throw new NotSupportedException("Runtime = " + runtime); } return start; }