Skip to content
Prev Previous commit
Next Next commit
ParameterFilter compares string values
  • Loading branch information
Aaron Kunkle committed Mar 17, 2022
commit 1413018f9c1e2a445c63ca96223e1d74c74251c2
2 changes: 1 addition & 1 deletion src/benchmarks/micro/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ static int Main(string[] args)
int? partitionIndex;
List<string> exclusionFilterValue;
List<string> categoryExclusionFilterValue;
Dictionary<string, object> parameterFilterValue;
Dictionary<string, string> parameterFilterValue;
bool getDiffableDisasm;

// Parse and remove any additional parameters that we need that aren't part of BDN
Expand Down
21 changes: 3 additions & 18 deletions src/harness/BenchmarkDotNet.Extensions/CommandLineOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,32 +54,17 @@ public static List<string> ParseAndRemoveStringsParameter(List<string> argsList,
return argsList;
}

public static List<string> ParseAndRemovePairsParameter(List<string> argsList, string parameter, out Dictionary<string, object> pairValues)
public static List<string> ParseAndRemovePairsParameter(List<string> argsList, string parameter, out Dictionary<string, string> pairValues)
{
int parameterIndex = argsList.IndexOf(parameter);
pairValues = new Dictionary<string, object>();
pairValues = new Dictionary<string, string>();

if (parameterIndex + 1 < argsList.Count)
{
while (parameterIndex + 1 < argsList.Count && !argsList[parameterIndex + 1].StartsWith("-"))
{
string[] pair = argsList[parameterIndex + 1].Split(":".ToCharArray(), 2);
object value;
int i_result;
bool b_result;
if (Int32.TryParse(pair[1], out i_result))
{
value = i_result;
}
else if (Boolean.TryParse(pair[1], out b_result))
{
value = b_result;
}
else
{
value = pair[1];
}
pairValues.Add(pair[0], value);
pairValues.Add(pair[0], pair[1]);
argsList.RemoveAt(parameterIndex + 1);
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/harness/BenchmarkDotNet.Extensions/ParameterFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

public class ParameterFilter : IFilter
{
private readonly Dictionary<string, object> _parameterValues;
private readonly Dictionary<string, string> _parameterValues;

public ParameterFilter(Dictionary<string, object> parameterValues)
public ParameterFilter(Dictionary<string, string> parameterValues)
{
_parameterValues = parameterValues;
}
Expand All @@ -24,7 +24,7 @@ public bool Predicate(BenchmarkCase benchmarkCase)
{
if (!items.Keys.Contains(key))
return false;
if (!items[key].Equals(_parameterValues[key]))
if (!items[key].ToString().Equals(_parameterValues[key]))
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static IConfig Create(
int? partitionIndex = null,
List<string> exclusionFilterValue = null,
List<string> categoryExclusionFilterValue = null,
Dictionary<string, object> parameterFilterValue = null,
Dictionary<string, string> parameterFilterValue = null,
Job job = null,
bool getDiffableDisasm = false)
{
Expand Down