Skip to content

Commit

Permalink
Merge pull request #217 from PragTob/zachdaniel-fix-tag-name
Browse files Browse the repository at this point in the history
Zachdaniel fix tag name
  • Loading branch information
PragTob committed May 2, 2018
2 parents 4d54763 + 54185bd commit 4bdfddc
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
15 changes: 7 additions & 8 deletions lib/benchee/formatters/tagged_save.ex
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,20 @@ defmodule Benchee.Formatters.TaggedSave do
defp choose_tag([], desired_tag), do: desired_tag

defp choose_tag(tags, desired_tag) do
if Enum.all?(tags, fn tag -> tag == desired_tag end) do
"#{desired_tag}-2"
else
max = get_maximum_tag_increaser(tags, desired_tag)
"#{desired_tag}-#{max + 1}"
end
max = get_maximum_tag_increaser(tags, desired_tag)
"#{desired_tag}-#{max + 1}"
end

defp get_maximum_tag_increaser(tags, desired_tag) do
tags
|> Enum.map(fn tag -> String.replace(tag, desired_tag <> "-", "") end)
|> Enum.map(&String.to_integer/1)
|> Enum.map(fn tag -> String.replace(tag, ~r/#{Regex.escape(desired_tag)}-?/, "") end)
|> Enum.map(&tag_increaser/1)
|> Enum.max()
end

defp tag_increaser(""), do: 1
defp tag_increaser(string_number), do: String.to_integer(string_number)

defp tag_scenarios(scenarios, tag) do
Enum.map(scenarios, fn scenario ->
scenario
Expand Down
18 changes: 12 additions & 6 deletions test/benchee/formatters/tagged_save_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -99,20 +99,26 @@ defmodule Benchee.Formatters.TaggedSaveTest do
end

test "when there's already a -2 and -3 tag we end up with -4" do
scenario_1 = %Scenario{job_name: "foo", tag: "#{@benchee_tag}-2"}
scenario_2 = %Scenario{job_name: "foo", tag: "#{@benchee_tag}-3"}
scenario_1 = %Scenario{job_name: "foo", tag: @benchee_tag}
scenario_2 = %Scenario{job_name: "foo", tag: "#{@benchee_tag}-2"}
scenario_3 = %Scenario{job_name: "foo", tag: "#{@benchee_tag}-3"}
new_scenario = %Scenario{job_name: "foo"}

suite = %Suite{@suite | scenarios: [scenario_1, new_scenario, scenario_2]}
suite = %Suite{@suite | scenarios: [scenario_1, new_scenario, scenario_2, scenario_3]}

scenarios = scenarios_from_formatted(suite)
tags = sorted_tags(scenarios)
names = sorted_names(scenarios)

assert tags == [@benchee_tag <> "-2", @benchee_tag <> "-3", @benchee_tag <> "-4"]
assert tags ==
[@benchee_tag, @benchee_tag <> "-2", @benchee_tag <> "-3", @benchee_tag <> "-4"]

assert names ==
["foo (#{@benchee_tag}-2)", "foo (#{@benchee_tag}-3)", "foo (#{@benchee_tag}-4)"]
assert names == [
"foo (#{@benchee_tag})",
"foo (#{@benchee_tag}-2)",
"foo (#{@benchee_tag}-3)",
"foo (#{@benchee_tag}-4)"
]
end

defp scenarios_from_formatted(suite) do
Expand Down

0 comments on commit 4bdfddc

Please sign in to comment.