Browse Source

fix issue where apps with a `rebar.config` were preventing

rebar state from propogating appropriately
pull/211/head
alisdair sullivan 10 years ago
parent
commit
1c56941225
1 changed files with 5 additions and 6 deletions
  1. +5
    -6
      src/rebar_prv_common_test.erl

+ 5
- 6
src/rebar_prv_common_test.erl View File

@ -317,28 +317,27 @@ resolve_ct_opts(State, CmdLineOpts) ->
[{auto_compile, false}|lists:keydelete(dir, 1, Opts)]. [{auto_compile, false}|lists:keydelete(dir, 1, Opts)].
compile_tests(State, TestApps, InDirs) -> compile_tests(State, TestApps, InDirs) ->
State1 = replace_src_dirs(State, InDirs),
F = fun(AppInfo) -> F = fun(AppInfo) ->
AppDir = rebar_app_info:dir(AppInfo), AppDir = rebar_app_info:dir(AppInfo),
S = case rebar_app_info:state(AppInfo) of S = case rebar_app_info:state(AppInfo) of
undefined -> undefined ->
C = rebar_config:consult(AppDir), C = rebar_config:consult(AppDir),
rebar_state:new(State1, C, AppDir);
rebar_state:new(State, C, AppDir);
AppState -> AppState ->
AppState AppState
end, end,
ok = rebar_erlc_compiler:compile(S,
ok = rebar_erlc_compiler:compile(replace_src_dirs(S, InDirs),
ec_cnv:to_list(rebar_app_info:dir(AppInfo)), ec_cnv:to_list(rebar_app_info:dir(AppInfo)),
ec_cnv:to_list(rebar_app_info:out_dir(AppInfo))) ec_cnv:to_list(rebar_app_info:out_dir(AppInfo)))
end, end,
lists:foreach(F, TestApps), lists:foreach(F, TestApps),
compile_bare_tests(State1, TestApps).
compile_bare_tests(State, TestApps, InDirs).
compile_bare_tests(State, TestApps) ->
compile_bare_tests(State, TestApps, InDirs) ->
F = fun(App) -> rebar_app_info:dir(App) == rebar_dir:get_cwd() end, F = fun(App) -> rebar_app_info:dir(App) == rebar_dir:get_cwd() end,
case lists:filter(F, TestApps) of case lists:filter(F, TestApps) of
%% compile just the `test` directory of the base dir %% compile just the `test` directory of the base dir
[] -> rebar_erlc_compiler:compile(State,
[] -> rebar_erlc_compiler:compile(replace_src_dirs(State, InDirs),
rebar_dir:get_cwd(), rebar_dir:get_cwd(),
rebar_dir:base_dir(State)); rebar_dir:base_dir(State));
%% already compiled `./test` so do nothing %% already compiled `./test` so do nothing

Loading…
Cancel
Save