diff --git a/lib/benchee/system.ex b/lib/benchee/system.ex index 79936bf1..b48641c8 100644 --- a/lib/benchee/system.ex +++ b/lib/benchee/system.ex @@ -255,11 +255,13 @@ defmodule Benchee.System do # just made public for easy testing purposes @doc false - def all_protocols_consolidated?(lib_dir_fun \\ &lib_dir/2) do - case lib_dir_fun.(:elixir, :ebin) do + def all_protocols_consolidated?(lib_dir_fun \\ &:code.lib_dir/1) do + case lib_dir_fun.(:elixir) do # do we get a good old erlang charlist? path when is_list(path) -> - [path] + ebin_path = Path.join(path, "ebin") + + [ebin_path] |> Protocol.extract_protocols() |> Enum.all?(&Protocol.consolidated?/1) @@ -271,8 +273,6 @@ defmodule Benchee.System do true end end - - defp lib_dir(app, subdir), do: Path.join(:code.lib_dir(app), subdir) end defimpl DeepMerge.Resolver, for: Benchee.System do diff --git a/test/benchee/system_test.exs b/test/benchee/system_test.exs index 08772bda..24797142 100644 --- a/test/benchee/system_test.exs +++ b/test/benchee/system_test.exs @@ -131,7 +131,7 @@ defmodule Benchee.SystemTest do end test "when it borks out it warns and defaults to true, see #384" do - fake_lib_dir = fn _, _ -> {:error, :bad_name} end + fake_lib_dir = fn _ -> {:error, :bad_name} end warning = capture_io(fn ->