Skip to content

Commit 80da43c

Browse files
committed
chore: fix CommandLineParser specific workaround code
1 parent 2490829 commit 80da43c

3 files changed

Lines changed: 29 additions & 27 deletions

File tree

src/BenchmarkDotNet/ConsoleArguments/ConfigParser.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,12 +467,6 @@ private static IEnumerable<string> ConsumeTokens(string line)
467467
string GetToken()
468468
{
469469
var result = token.ToString();
470-
if (result.Contains(' '))
471-
{
472-
// Workaround for CommandLine library issue with parsing these kind of args.
473-
return " " + result;
474-
}
475-
476470
return result;
477471
}
478472
}

tests/BenchmarkDotNet.IntegrationTests/BenchmarkSwitcherTest.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ public class BenchmarkSwitcherTest
2020

2121
public BenchmarkSwitcherTest(ITestOutputHelper output) => Output = output;
2222

23-
[FactEnvSpecific(
24-
"When CommandLineParser wants to display help, it tries to get the Title of the Entry Assembly which is an xunit runner, which has no Title and fails..",
25-
EnvRequirement.DotNetCoreOnly)]
23+
[Fact]
2624
public void WhenInvalidCommandLineArgumentIsPassedAnErrorMessageIsDisplayedAndNoBenchmarksAreExecuted()
2725
{
2826
var logger = new OutputLogger(Output);

tests/BenchmarkDotNet.Tests/ConfigParserTests.cs

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,15 @@ public void UserCanChooseInProcessAndStrategyMonitoring()
160160
job.Run.RunStrategy.Should().Be(RunStrategy.Monitoring);
161161
}
162162

163-
[FactEnvSpecific(
164-
"When CommandLineParser wants to display help, it tries to get the Title of the Entry Assembly which is an xunit runner, which has no Title and fails..",
165-
EnvRequirement.DotNetCoreOnly)]
163+
[Fact]
166164
public void UnknownConfigMeansFailure()
167165
{
168-
Assert.False(ConfigParser.Parse(["--unknown"], new OutputLogger(Output)).isSuccess);
166+
var logger = new AccumulationLogger();
167+
var results = ConfigParser.Parse(["--unknown"], logger);
168+
169+
// Assert
170+
results.isSuccess.Should().BeTrue();
171+
logger.GetLog().Should().Contain("Option 'unknown' is unknown.");
169172
}
170173

171174
[Fact]
@@ -766,31 +769,37 @@ public void UsersCanSpecifyEvaluateOverhead()
766769
}
767770
}
768771

769-
[Fact(Skip = "This should be handled somehow at CommandLineParser level. See https://github.com/commandlineparser/commandline/pull/892")]
772+
[Fact]
770773
public void UserCanSpecifyWasmArgs()
771774
{
772775
var parsedConfiguration = ConfigParser.Parse(["--runtimes", "wasmnet80", "--wasmArgs", "--expose_wasm --module", GetDummyWasmEngine()], new OutputLogger(Output));
773-
Assert.True(parsedConfiguration.isSuccess);
774-
Assert.NotNull(parsedConfiguration.config);
776+
777+
// Assert
778+
parsedConfiguration.isSuccess.Should().BeTrue();
779+
parsedConfiguration.config.Should().NotBeNull();
780+
775781
var jobs = parsedConfiguration.config.GetJobs();
776782
foreach (var job in parsedConfiguration.config.GetJobs())
777783
{
778784
var wasmRuntime = Assert.IsType<WasmRuntime>(job.Environment.Runtime);
779-
Assert.Equal(" --expose_wasm --module", wasmRuntime.JavaScriptEngineArguments);
785+
wasmRuntime.JavaScriptEngineArguments.Should().Be("--expose_wasm --module");
780786
}
781787
}
782788

783789
[Fact]
784790
public void UserCanSpecifyWasmArgsUsingEquals()
785791
{
786792
var parsedConfiguration = ConfigParser.Parse(["--runtimes", "wasmnet80", "--wasmArgs=--expose_wasm --module", GetDummyWasmEngine()], new OutputLogger(Output));
787-
Assert.True(parsedConfiguration.isSuccess);
788-
Assert.NotNull(parsedConfiguration.config);
793+
794+
// Assert
795+
parsedConfiguration.isSuccess.Should().BeTrue();
796+
parsedConfiguration.config.Should().NotBeNull();
797+
789798
var jobs = parsedConfiguration.config.GetJobs();
790799
foreach (var job in parsedConfiguration.config.GetJobs())
791800
{
792-
var wasmRuntime = Assert.IsType<WasmRuntime>(job.Environment.Runtime);
793-
Assert.Equal("--expose_wasm --module", wasmRuntime.JavaScriptEngineArguments);
801+
var wasmRuntime = job.Environment.Runtime.Should().BeOfType<WasmRuntime>().Subject;
802+
wasmRuntime.JavaScriptEngineArguments.Should().Be("--expose_wasm --module");
794803
}
795804
}
796805

@@ -805,15 +814,16 @@ public void UserCanSpecifyWasmArgsViaResponseFile()
805814
GetDummyWasmEngine()
806815
]);
807816
var parsedConfiguration = ConfigParser.Parse([$"@{tempResponseFile}"], new OutputLogger(Output));
808-
Assert.True(parsedConfiguration.isSuccess);
809-
Assert.NotNull(parsedConfiguration.config);
817+
818+
// Assert
819+
parsedConfiguration.isSuccess.Should().BeTrue();
820+
parsedConfiguration.config.Should().NotBeNull();
821+
810822
var jobs = parsedConfiguration.config.GetJobs();
811823
foreach (var job in parsedConfiguration.config.GetJobs())
812824
{
813-
var wasmRuntime = Assert.IsType<WasmRuntime>(job.Environment.Runtime);
814-
// We may need change assertion to just "--expose_wasm --module"
815-
// if https://github.com/commandlineparser/commandline/pull/892 lands
816-
Assert.Equal(" --expose_wasm --module", wasmRuntime.JavaScriptEngineArguments);
825+
var wasmRuntime = job.Environment.Runtime.Should().BeOfType<WasmRuntime>().Subject;
826+
wasmRuntime.JavaScriptEngineArguments.Should().Be("--expose_wasm --module");
817827
}
818828
}
819829

0 commit comments

Comments
 (0)