From d75fa758d86fa062164671e0154ed1b05691b0f9 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Thu, 3 Mar 2016 14:45:47 -0800 Subject: Revert "define the 'EUNIT' macro in the test profile" This reverts commit 4c32c52b557c66ac6e6764efb1ed9135c00a3c20. --- src/rebar3.erl | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/rebar3.erl b/src/rebar3.erl index ab7d35a..c1a1ae4 100644 --- a/src/rebar3.erl +++ b/src/rebar3.erl @@ -337,19 +337,18 @@ state_from_global_config(Config, GlobalConfigFile) -> test_state(State) -> ErlOpts = rebar_state:get(State, erl_opts, []), - TestOpts = safe_define_test_macro(ErlOpts, 'TEST'), - MoreTestOpts = safe_define_test_macro(ErlOpts, 'EUNIT'), - [{extra_src_dirs, ["test"]}, {erl_opts, TestOpts ++ MoreTestOpts}]. + TestOpts = safe_define_test_macro(ErlOpts), + [{extra_src_dirs, ["test"]}, {erl_opts, TestOpts}]. -safe_define_test_macro(Opts, Macro) -> +safe_define_test_macro(Opts) -> %% defining a compile macro twice results in an exception so - %% make sure 'TEST' or 'EUNIT' is only defined once - case test_defined(Opts, Macro) of + %% make sure 'TEST' is only defined once + case test_defined(Opts) of true -> []; - false -> [{d, Macro}] + false -> [{d, 'TEST'}] end. -test_defined([{d, Macro}|_], Macro) -> true; -test_defined([{d, Macro, true}|_], Macro) -> true; -test_defined([_|Rest], Macro) -> test_defined(Rest, Macro); -test_defined([], _) -> false. +test_defined([{d, 'TEST'}|_]) -> true; +test_defined([{d, 'TEST', true}|_]) -> true; +test_defined([_|Rest]) -> test_defined(Rest); +test_defined([]) -> false. -- cgit v1.1 From 0bd5e230d2689831cad1427287f3ecc62482dc1e Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Thu, 3 Mar 2016 17:39:17 -0800 Subject: move definition of 'EUNIT' macro to eunit provider add definition of 'COMMON_TEST' macro to eunit provider --- src/rebar_prv_common_test.erl | 20 +++++++++++++++++++- src/rebar_prv_eunit.erl | 20 +++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/rebar_prv_common_test.erl b/src/rebar_prv_common_test.erl index 784b682..6b94f79 100644 --- a/src/rebar_prv_common_test.erl +++ b/src/rebar_prv_common_test.erl @@ -329,9 +329,27 @@ include_files(Opts, Tests) -> Is = lists:map(fun(I) -> {i, I} end, Includes), case append(Is, ErlOpts) of {error, _} = Error -> Error; - NewIncludes -> rebar_opts:set(Opts, erl_opts, NewIncludes) + NewIncludes -> ct_macro(rebar_opts:set(Opts, erl_opts, NewIncludes)) end. +ct_macro(Opts) -> + ErlOpts = opts(Opts, erl_opts, []), + NewOpts = safe_define_ct_macro(ErlOpts), + rebar_opts:set(Opts, erl_opts, NewOpts). + +safe_define_ct_macro(Opts) -> + %% defining a compile macro twice results in an exception so + %% make sure 'COMMON_TEST' is only defined once + case test_defined(Opts) of + true -> Opts; + false -> [{d, 'COMMON_TEST'}|Opts] + end. + +test_defined([{d, 'COMMON_TEST'}|_]) -> true; +test_defined([{d, 'COMMON_TEST', true}|_]) -> true; +test_defined([_|Rest]) -> test_defined(Rest); +test_defined([]) -> false. + append({error, _} = Error, _) -> Error; append(_, {error, _} = Error) -> Error; append(A, B) -> A ++ B. 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. -- cgit v1.1