diff options
author | Fred Hebert <mononcqc@ferd.ca> | 2016-03-03 21:48:24 -0500 |
---|---|---|
committer | Fred Hebert <mononcqc@ferd.ca> | 2016-03-03 21:48:24 -0500 |
commit | b47839e18b84e4479ad918f6d8a72c7fe861d2e8 (patch) | |
tree | 4dc24ffa4d7e9e35011cb816a5923120758d8602 /src/rebar_prv_eunit.erl | |
parent | 925ecefc12fffd4075f5dd6d1a9c31ae07610e9b (diff) | |
parent | 0bd5e230d2689831cad1427287f3ecc62482dc1e (diff) |
Merge pull request #1108 from talentdeficit/make_omar_happy
make omar happy
Diffstat (limited to 'src/rebar_prv_eunit.erl')
-rw-r--r-- | src/rebar_prv_eunit.erl | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/rebar_prv_eunit.erl b/src/rebar_prv_eunit.erl index c085ee4..46ea48d 100644 --- a/src/rebar_prv_eunit.erl +++ b/src/rebar_prv_eunit.erl @@ -244,9 +244,27 @@ first_files(Opts) -> EUnitFirstFiles = opts(Opts, eunit_first_files, []), case append(EUnitFirstFiles, FirstFiles) of {error, _} = Error -> Error; - NewFirstFiles -> rebar_opts:set(Opts, erl_first_files, NewFirstFiles) + NewFirstFiles -> eunit_macro(rebar_opts:set(Opts, erl_first_files, NewFirstFiles)) end. +eunit_macro(Opts) -> + ErlOpts = opts(Opts, erl_opts, []), + NewOpts = safe_define_eunit_macro(ErlOpts), + rebar_opts:set(Opts, erl_opts, NewOpts). + +safe_define_eunit_macro(Opts) -> + %% defining a compile macro twice results in an exception so + %% make sure 'EUNIT' is only defined once + case test_defined(Opts) of + true -> Opts; + false -> [{d, 'EUNIT'}|Opts] + end. + +test_defined([{d, 'EUNIT'}|_]) -> true; +test_defined([{d, 'EUNIT', true}|_]) -> true; +test_defined([_|Rest]) -> test_defined(Rest); +test_defined([]) -> false. + append({error, _} = Error, _) -> Error; append(_, {error, _} = Error) -> Error; append(A, B) -> A ++ B. |