Skip to content

Commit

Permalink
Merge pull request #1016 from talentdeficit/eunit_translation_fix
Browse files Browse the repository at this point in the history
when using the `--file' argument to `eunit' paths were being converted
  • Loading branch information
tsloughter committed Jan 12, 2016
2 parents b9e35df + eb58d2f commit 81efc49
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions src/rebar_prv_eunit.erl
Original file line number Diff line number Diff line change
Expand Up @@ -369,26 +369,37 @@ set_verbose(Opts) ->
translate_paths(State, Tests) -> translate_paths(State, Tests, []).

translate_paths(_State, [], Acc) -> lists:reverse(Acc);
translate_paths(State, [{dir, Dir}|Rest], Acc) ->
translate_paths(State, [{K, _} = Path|Rest], Acc) when K == file; K == dir ->
Apps = rebar_state:project_apps(State),
translate_paths(State, Rest, [translate(State, Apps, Dir)|Acc]);
translate_paths(State, [{file, File}|Rest], Acc) ->
Dir = filename:dirname(File),
Apps = rebar_state:project_apps(State),
translate_paths(State, Rest, [translate(State, Apps, Dir)|Acc]);
translate_paths(State, Rest, [translate(State, Apps, Path)|Acc]);
translate_paths(State, [Test|Rest], Acc) ->
translate_paths(State, Rest, [Test|Acc]).

translate(State, [App|Rest], Dir) ->
translate(State, [App|Rest], {dir, Dir}) ->
case rebar_file_utils:path_from_ancestor(Dir, rebar_app_info:dir(App)) of
{ok, Path} -> {dir, filename:join([rebar_app_info:out_dir(App), Path])};
{error, badparent} -> translate(State, Rest, Dir)
{error, badparent} -> translate(State, Rest, {dir, Dir})
end;
translate(State, [App|Rest], {file, FilePath}) ->
Dir = filename:dirname(FilePath),
File = filename:basename(FilePath),
case rebar_file_utils:path_from_ancestor(Dir, rebar_app_info:dir(App)) of
{ok, Path} -> {file, filename:join([rebar_app_info:out_dir(App), Path, File])};
{error, badparent} -> translate(State, Rest, {file, FilePath})
end;
translate(State, [], Dir) ->
translate(State, [], {dir, Dir}) ->
case rebar_file_utils:path_from_ancestor(Dir, rebar_state:dir(State)) of
{ok, Path} -> {dir, filename:join([rebar_dir:base_dir(State), "extras", Path])};
%% not relative, leave as is
{error, badparent} -> {dir, Dir}
end;
translate(State, [], {file, FilePath}) ->
Dir = filename:dirname(FilePath),
File = filename:basename(FilePath),
case rebar_file_utils:path_from_ancestor(Dir, rebar_app_info:dir(State)) of
{ok, Path} -> {file, filename:join([rebar_dir:base_dir(State), "extras", Path, File])};
%% not relative, leave as is
{error, badparent} -> {file, FilePath}
end.

maybe_cover_compile(State) ->
Expand Down

0 comments on commit 81efc49

Please sign in to comment.