summaryrefslogtreecommitdiff
path: root/src/rebar_prv_eunit.erl
diff options
context:
space:
mode:
authoralisdair sullivan <alisdairsullivan@yahoo.ca>2015-01-09 09:47:34 -0800
committeralisdair sullivan <alisdairsullivan@yahoo.ca>2015-01-09 09:54:27 -0800
commit5e270a745632739f0a6af10014b906047cdb31bd (patch)
treecbf21f3ff777d7cbfdeb1bf455042679b8c1a85e /src/rebar_prv_eunit.erl
parentde6bba6ff683f80463a5f97d14f29f13bce6ebf1 (diff)
when compiling `common_test` or `eunit` use the same tmp dir
from run to run
Diffstat (limited to 'src/rebar_prv_eunit.erl')
-rw-r--r--src/rebar_prv_eunit.erl22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/rebar_prv_eunit.erl b/src/rebar_prv_eunit.erl
index ee8a235..3bd20fd 100644
--- a/src/rebar_prv_eunit.erl
+++ b/src/rebar_prv_eunit.erl
@@ -38,11 +38,7 @@ do(State) ->
{RawOpts, _} = rebar_state:command_parsed_args(State),
Opts = transform_opts(RawOpts, State),
TestApps = filter_checkouts(rebar_state:project_apps(State)),
- OutDir = case proplists:get_value(outdir, Opts, undefined) of
- undefined -> filename:join([rebar_state:dir(State),
- ec_file:insecure_mkdtemp()]);
- Out -> Out
- end,
+ OutDir = proplists:get_value(outdir, Opts, default_test_dir(State)),
?DEBUG("Compiling EUnit instrumented modules in: ~p", [OutDir]),
lists:foreach(fun(App) ->
AppDir = rebar_app_info:dir(App),
@@ -105,6 +101,22 @@ filter_checkouts([App|Rest], Acc) ->
false -> filter_checkouts(Rest, [App|Acc])
end.
+default_test_dir(State) ->
+ Tmp = case erlang:system_info(system_architecture) of
+ "win32" ->
+ "./tmp";
+ _SysArch ->
+ "/tmp"
+ end,
+ Root = filename:join([rebar_state:dir(State), Tmp]),
+ Project = filename:basename(rebar_state:dir(State)),
+ OutDir = filename:join([Root, Project ++ "_rebar3_eunit"]),
+ %% delete the directory if it exists so tests run with clean state
+ _ = ec_file:remove(OutDir, [recursive]),
+ %% recreate the directory
+ ok = filelib:ensure_dir(filename:join([OutDir, "dummy.beam"])),
+ OutDir.
+
test_state(State, TmpDir) ->
ErlOpts = rebar_state:get(State, eunit_compile_opts, []) ++
rebar_utils:erl_opts(State),