summaryrefslogtreecommitdiff
path: root/src/rebar_eunit.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rebar_eunit.erl')
-rw-r--r--src/rebar_eunit.erl26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/rebar_eunit.erl b/src/rebar_eunit.erl
index d63ff92..69f8a0a 100644
--- a/src/rebar_eunit.erl
+++ b/src/rebar_eunit.erl
@@ -91,9 +91,17 @@ clean(Config, File) ->
%% ===================================================================
compile_erl(Source, Config) ->
+ case is_quickcheck_avail() of
+ true ->
+ EqcOpts = [{d, 'EQC'}];
+ false ->
+ EqcOpts = []
+ end,
+
ErlOpts = rebar_config:get_list(Config, erl_opts, []),
EunitOpts = rebar_config:get_list(Config, eunit_compile_opts, []),
- Opts = [{i, "include"}, {outdir, ?EUNIT_DIR}, {d, 'TEST'}, debug_info, report] ++ ErlOpts ++ EunitOpts,
+ Opts = [{i, "include"}, {outdir, ?EUNIT_DIR}, {d, 'TEST'}, debug_info, report] ++
+ ErlOpts ++ EunitOpts ++ EqcOpts,
case compile:file(Source, Opts) of
{ok, _} ->
ok;
@@ -101,6 +109,20 @@ compile_erl(Source, Config) ->
?FAIL
end.
-
+is_quickcheck_avail() ->
+ case erlang:get(is_quickcheck_avail) of
+ undefined ->
+ case code:lib_dir(eqc, include) of
+ {error, bad_name} ->
+ IsAvail = false;
+ Dir ->
+ IsAvail = filelib:is_file(filename:join(Dir, "eqc.hrl"))
+ end,
+ erlang:put(is_quickcheck_avail, IsAvail),
+ ?DEBUG("Quickcheck availability: ~p\n", [IsAvail]),
+ IsAvail;
+ IsAvail ->
+ IsAvail
+ end.