summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralisdair sullivan <alisdair.sullivan@askuity.com>2016-01-30 18:58:18 -0800
committeralisdair sullivan <alisdair.sullivan@askuity.com>2016-01-30 18:58:18 -0800
commit7427b5f03eecc06ef797eb8f259b75482b2c0808 (patch)
tree312c293ae15237cf0ba991162b10ffd8a708a822 /src
parente7abae84c04a33ed86780465d3c9d9b566e0ddad (diff)
fix paths for multiple app projects when running ct with no --dir argument
Diffstat (limited to 'src')
-rw-r--r--src/rebar_prv_common_test.erl20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/rebar_prv_common_test.erl b/src/rebar_prv_common_test.erl
index f6fee9a..4be50d8 100644
--- a/src/rebar_prv_common_test.erl
+++ b/src/rebar_prv_common_test.erl
@@ -381,11 +381,9 @@ maybe_inject_test_dir(State, AppAcc, [App|Rest], Dir) ->
%% suite exists in but if the suite is in the app root directory
%% the current compiler tries to compile all subdirs including priv
%% instead copy only files ending in `.erl' and directories
- %% ending in `_SUITE_data' into the `_build/PROFILE/extras' dir
- {ok, RelAppDir} = rebar_file_utils:path_from_ancestor(rebar_app_info:dir(App), rebar_state:dir(State)),
- ExtrasDir = filename:join([rebar_dir:base_dir(State), "extras", RelAppDir]),
- ok = copy_bare_suites(Dir, ExtrasDir),
- Opts = inject_test_dir(rebar_state:opts(State), ExtrasDir),
+ %% ending in `_SUITE_data' into the `_build/PROFILE/lib/APP' dir
+ ok = copy_bare_suites(Dir, rebar_app_info:out_dir(App)),
+ Opts = inject_test_dir(rebar_state:opts(State), rebar_app_info:out_dir(App)),
{rebar_state:opts(State, Opts), AppAcc ++ [App]};
{ok, Path} ->
Opts = inject_test_dir(rebar_app_info:opts(App), Path),
@@ -450,15 +448,23 @@ translate_suites(_State, [], Acc) -> lists:reverse(Acc);
translate_suites(State, [{suite, Suite}|Rest], Acc) when is_integer(hd(Suite)) ->
%% single suite
Apps = rebar_state:project_apps(State),
- translate_suites(State, Rest, [{suite, translate(State, Apps, Suite)}|Acc]);
+ translate_suites(State, Rest, [{suite, translate_suite(State, Apps, Suite)}|Acc]);
translate_suites(State, [{suite, Suites}|Rest], Acc) ->
%% multiple suites
Apps = rebar_state:project_apps(State),
- NewSuites = {suite, lists:map(fun(Suite) -> translate(State, Apps, Suite) end, Suites)},
+ NewSuites = {suite, lists:map(fun(Suite) -> translate_suite(State, Apps, Suite) end, Suites)},
translate_suites(State, Rest, [NewSuites|Acc]);
translate_suites(State, [Test|Rest], Acc) ->
translate_suites(State, Rest, [Test|Acc]).
+translate_suite(State, Apps, Suite) ->
+ Dirname = filename:dirname(Suite),
+ Basename = filename:basename(Suite),
+ case Dirname of
+ "." -> Suite;
+ _ -> filename:join([translate(State, Apps, Dirname), Basename])
+ end.
+
translate(State, [App|Rest], Path) ->
case rebar_file_utils:path_from_ancestor(Path, rebar_app_info:dir(App)) of
{ok, P} -> filename:join([rebar_app_info:out_dir(App), P]);